diff --git a/.gitignore b/.gitignore index 0be90bb6..78b366e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,17 @@ build/ node_modules/ contracts/.flattened +deployments/ +typechain/ .openzeppelin/.session .env +env/* +coverage/* +coverage.json +cache/ +yarn.lock +coverage/ +coverage.json +typechain +deployments/hardhat +deployments/localhost diff --git a/.waffle.json b/.waffle.json deleted file mode 100644 index fc41d4f6..00000000 --- a/.waffle.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "compilerVersion": "./node_modules/solc", - "outputType": "all", - "compilerOptions": { - "outputSelection": { - "*": { - "*": [ - "evm.bytecode.object", - "evm.deployedBytecode.object", - "abi", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.sourceMap" - ], - "": ["ast"] - } - }, - "evmVersion": "istanbul", - "optimizer": { - "enabled": true, - "runs": 200 - } - } -} diff --git a/build/AddressStringUtil.json b/build/AddressStringUtil.json deleted file mode 100644 index c9c1a2a5..00000000 --- a/build/AddressStringUtil.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220de9f1782172d3db4f67097663320a7b47813836ebd840eb22b899391bbdb7d6164736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE SWAP16 OR DUP3 OR 0x2D RETURNDATASIZE 0xB4 0xF6 PUSH17 0x97663320A7B47813836EBD840EB22B8993 SWAP2 0xBB 0xDB PUSH30 0x6164736F6C63430006060033000000000000000000000000000000000000 ", - "sourceMap": "26:1303:16:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220de9f1782172d3db4f67097663320a7b47813836ebd840eb22b899391bbdb7d6164736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE SWAP16 OR DUP3 OR 0x2D RETURNDATASIZE 0xB4 0xF6 PUSH17 0x97663320A7B47813836EBD840EB22B8993 SWAP2 0xBB 0xDB PUSH30 0x6164736F6C63430006060033000000000000000000000000000000000000 ", - "sourceMap": "26:1303:16:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220de9f1782172d3db4f67097663320a7b47813836ebd840eb22b899391bbdb7d6164736f6c63430006060033" -} \ No newline at end of file diff --git a/build/Babylonian.json b/build/Babylonian.json deleted file mode 100644 index bde9d3ff..00000000 --- a/build/Babylonian.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c0515507b61f5765f079e1275a0d5b9c7057434eb9e795ad428bf72888644064736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xC0 MLOAD SSTORE SMOD 0xB6 0x1F JUMPI PUSH6 0xF079E1275A0D JUMPDEST SWAP13 PUSH17 0x57434EB9E795AD428BF72888644064736F PUSH13 0x63430006060033000000000000 ", - "sourceMap": "164:341:17:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c0515507b61f5765f079e1275a0d5b9c7057434eb9e795ad428bf72888644064736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xC0 MLOAD SSTORE SMOD 0xB6 0x1F JUMPI PUSH6 0xF079E1275A0D JUMPDEST SWAP13 PUSH17 0x57434EB9E795AD428BF72888644064736F PUSH13 0x63430006060033000000000000 ", - "sourceMap": "164:341:17:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c0515507b61f5765f079e1275a0d5b9c7057434eb9e795ad428bf72888644064736f6c63430006060033" -} \ No newline at end of file diff --git a/build/Combined-Json.json b/build/Combined-Json.json deleted file mode 100644 index 46f7c9c8..00000000 --- a/build/Combined-Json.json +++ /dev/null @@ -1,219199 +0,0 @@ -{ - "contracts": { - "@swapr/core/contracts/interfaces/IDXswapFactory.sol:IDXswapFactory": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "PairCreated", - "type": "event" - }, - { - "inputs": [], - "name": "INIT_CODE_PAIR_HASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "allPairs", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "allPairsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "createPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeTo", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeToSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "getPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "protocolFeeDenominator", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeToSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_protocolFee", - "type": "uint8" - } - ], - "name": "setProtocolFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "swapFee", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "PairCreated", - "type": "event" - }, - { - "inputs": [], - "name": "INIT_CODE_PAIR_HASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "allPairs", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "allPairsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "createPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeTo", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeToSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "getPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "protocolFeeDenominator", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeToSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_protocolFee", - "type": "uint8" - } - ], - "name": "setProtocolFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "swapFee", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "@swapr/core/contracts/interfaces/IDXswapPair.sol:IDXswapPair": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/.flattened/DXswapLibrary.sol:DXswapLibrary": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b6754cc895ce7aaab364b540370372c3b583da5f7030d0b091b61aa9b954c5f64736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST PUSH8 0x54CC895CE7AAAB36 0x4B SLOAD SUB PUSH17 0x372C3B583DA5F7030D0B091B61AA9B954C 0x5F PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "3261:4738:2:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b6754cc895ce7aaab364b540370372c3b583da5f7030d0b091b61aa9b954c5f64736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST PUSH8 0x54CC895CE7AAAB36 0x4B SLOAD SUB PUSH17 0x372C3B583DA5F7030D0B091B61AA9B954C 0x5F PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "3261:4738:2:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b6754cc895ce7aaab364b540370372c3b583da5f7030d0b091b61aa9b954c5f64736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b6754cc895ce7aaab364b540370372c3b583da5f7030d0b091b61aa9b954c5f64736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b6754cc895ce7aaab364b540370372c3b583da5f7030d0b091b61aa9b954c5f64736f6c63430006060033", - "srcmap": "3261:4738:2:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "3261:4738:2:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/.flattened/DXswapLibrary.sol:IDXswapPair": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/.flattened/DXswapLibrary.sol:SafeMath": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e6ddb703d1fbd41dc9f5cc34ec26f7a5397dd63e96199a3a66bbea06d03376f64736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E PUSH14 0xDB703D1FBD41DC9F5CC34EC26F7A MSTORE8 SWAP8 0xDD PUSH4 0xE96199A3 0xA6 PUSH12 0xBEA06D03376F64736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "2753:430:2:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e6ddb703d1fbd41dc9f5cc34ec26f7a5397dd63e96199a3a66bbea06d03376f64736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E PUSH14 0xDB703D1FBD41DC9F5CC34EC26F7A MSTORE8 SWAP8 0xDD PUSH4 0xE96199A3 0xA6 PUSH12 0xBEA06D03376F64736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "2753:430:2:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e6ddb703d1fbd41dc9f5cc34ec26f7a5397dd63e96199a3a66bbea06d03376f64736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e6ddb703d1fbd41dc9f5cc34ec26f7a5397dd63e96199a3a66bbea06d03376f64736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e6ddb703d1fbd41dc9f5cc34ec26f7a5397dd63e96199a3a66bbea06d03376f64736f6c63430006060033", - "srcmap": "2753:430:2:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "2753:430:2:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/.flattened/DXswapOracleLibrary.sol:DXswapOracleLibrary": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ded92c0c32dc2cca5a6e4874f1919231b9e6c40c81873a1df695536b7694510e64736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE 0xD9 0x2C 0xC ORIGIN 0xDC 0x2C 0xCA GAS PUSH15 0x4874F1919231B9E6C40C81873A1DF6 SWAP6 MSTORE8 PUSH12 0x7694510E64736F6C63430006 MOD STOP CALLER ", - "sourceMap": "4981:1432:3:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ded92c0c32dc2cca5a6e4874f1919231b9e6c40c81873a1df695536b7694510e64736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE 0xD9 0x2C 0xC ORIGIN 0xDC 0x2C 0xCA GAS PUSH15 0x4874F1919231B9E6C40C81873A1DF6 SWAP6 MSTORE8 PUSH12 0x7694510E64736F6C63430006 MOD STOP CALLER ", - "sourceMap": "4981:1432:3:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ded92c0c32dc2cca5a6e4874f1919231b9e6c40c81873a1df695536b7694510e64736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ded92c0c32dc2cca5a6e4874f1919231b9e6c40c81873a1df695536b7694510e64736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ded92c0c32dc2cca5a6e4874f1919231b9e6c40c81873a1df695536b7694510e64736f6c63430006060033", - "srcmap": "4981:1432:3:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "4981:1432:3:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/.flattened/DXswapOracleLibrary.sol:FixedPoint": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c3d6b2aba2e9b9faab9cdefa0db2bcb588d7015c9b1e27a18e5301ba8ec810264736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC RETURNDATASIZE PUSH12 0x2ABA2E9B9FAAB9CDEFA0DB2B 0xCB PC DUP14 PUSH17 0x15C9B1E27A18E5301BA8EC810264736F6C PUSH4 0x43000606 STOP CALLER ", - "sourceMap": "2753:2052:3:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c3d6b2aba2e9b9faab9cdefa0db2bcb588d7015c9b1e27a18e5301ba8ec810264736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC RETURNDATASIZE PUSH12 0x2ABA2E9B9FAAB9CDEFA0DB2B 0xCB PC DUP14 PUSH17 0x15C9B1E27A18E5301BA8EC810264736F6C PUSH4 0x43000606 STOP CALLER ", - "sourceMap": "2753:2052:3:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c3d6b2aba2e9b9faab9cdefa0db2bcb588d7015c9b1e27a18e5301ba8ec810264736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c3d6b2aba2e9b9faab9cdefa0db2bcb588d7015c9b1e27a18e5301ba8ec810264736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c3d6b2aba2e9b9faab9cdefa0db2bcb588d7015c9b1e27a18e5301ba8ec810264736f6c63430006060033", - "srcmap": "2753:2052:3:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "2753:2052:3:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/.flattened/DXswapOracleLibrary.sol:IDXswapPair": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/.flattened/DXswapRouter.sol:DXswapLibrary": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208a18c257dc54294ce44797de80e23136ed9e193fd9c2a3a76b6495787164c3cb64736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP11 XOR 0xC2 JUMPI 0xDC SLOAD 0x29 0x4C 0xE4 SELFBALANCE SWAP8 0xDE DUP1 0xE2 BALANCE CALLDATASIZE 0xED SWAP15 NOT EXTCODEHASH 0xD9 0xC2 LOG3 0xA7 PUSH12 0x6495787164C3CB64736F6C63 NUMBER STOP MOD MOD STOP CALLER ", - "sourceMap": "10549:4738:4:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208a18c257dc54294ce44797de80e23136ed9e193fd9c2a3a76b6495787164c3cb64736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP11 XOR 0xC2 JUMPI 0xDC SLOAD 0x29 0x4C 0xE4 SELFBALANCE SWAP8 0xDE DUP1 0xE2 BALANCE CALLDATASIZE 0xED SWAP15 NOT EXTCODEHASH 0xD9 0xC2 LOG3 0xA7 PUSH12 0x6495787164C3CB64736F6C63 NUMBER STOP MOD MOD STOP CALLER ", - "sourceMap": "10549:4738:4:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208a18c257dc54294ce44797de80e23136ed9e193fd9c2a3a76b6495787164c3cb64736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208a18c257dc54294ce44797de80e23136ed9e193fd9c2a3a76b6495787164c3cb64736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208a18c257dc54294ce44797de80e23136ed9e193fd9c2a3a76b6495787164c3cb64736f6c63430006060033", - "srcmap": "10549:4738:4:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "10549:4738:4:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/.flattened/DXswapRouter.sol:DXswapRouter": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - }, - { - "internalType": "address", - "name": "_WETH", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60c060405234801561001057600080fd5b50604051620048d9380380620048d98339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614754620001856000398061015f5280610cf05280610d2b5280610e0d528061102b52806113b5528061154052806119075280611a015280611ab75280611b855280611ccb5280611d535280611f8b528061200e52806120bd5280612189528061221e528061229252806127905280612a035280612a595280612a8d5280612b015280612ca15280612de45280612e6c525080610e9b5280610f7252806110f1528061112a52806112655280611443528061151e528061168e5280611c185280611d855280611edb52806122c4528061251d5280612715528061273e528061276e52806128db5280612a375280612d345280612e9e528061368952806136cc5280613bd75280613dc1528061410152806141af528061422f52506147546000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a2646970667358221220e9b429bd1d57acd866d9fea8002a8a0bc150ca7722db552e6aa9dbf609d0390a64736f6c63430006060033", - "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x48D9 CODESIZE SUB DUP1 PUSH3 0x48D9 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0x80 MSTORE SWAP2 SHL AND PUSH1 0xA0 MSTORE PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x4754 PUSH3 0x185 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x15F MSTORE DUP1 PUSH2 0xCF0 MSTORE DUP1 PUSH2 0xD2B MSTORE DUP1 PUSH2 0xE0D MSTORE DUP1 PUSH2 0x102B MSTORE DUP1 PUSH2 0x13B5 MSTORE DUP1 PUSH2 0x1540 MSTORE DUP1 PUSH2 0x1907 MSTORE DUP1 PUSH2 0x1A01 MSTORE DUP1 PUSH2 0x1AB7 MSTORE DUP1 PUSH2 0x1B85 MSTORE DUP1 PUSH2 0x1CCB MSTORE DUP1 PUSH2 0x1D53 MSTORE DUP1 PUSH2 0x1F8B MSTORE DUP1 PUSH2 0x200E MSTORE DUP1 PUSH2 0x20BD MSTORE DUP1 PUSH2 0x2189 MSTORE DUP1 PUSH2 0x221E MSTORE DUP1 PUSH2 0x2292 MSTORE DUP1 PUSH2 0x2790 MSTORE DUP1 PUSH2 0x2A03 MSTORE DUP1 PUSH2 0x2A59 MSTORE DUP1 PUSH2 0x2A8D MSTORE DUP1 PUSH2 0x2B01 MSTORE DUP1 PUSH2 0x2CA1 MSTORE DUP1 PUSH2 0x2DE4 MSTORE DUP1 PUSH2 0x2E6C MSTORE POP DUP1 PUSH2 0xE9B MSTORE DUP1 PUSH2 0xF72 MSTORE DUP1 PUSH2 0x10F1 MSTORE DUP1 PUSH2 0x112A MSTORE DUP1 PUSH2 0x1265 MSTORE DUP1 PUSH2 0x1443 MSTORE DUP1 PUSH2 0x151E MSTORE DUP1 PUSH2 0x168E MSTORE DUP1 PUSH2 0x1C18 MSTORE DUP1 PUSH2 0x1D85 MSTORE DUP1 PUSH2 0x1EDB MSTORE DUP1 PUSH2 0x22C4 MSTORE DUP1 PUSH2 0x251D MSTORE DUP1 PUSH2 0x2715 MSTORE DUP1 PUSH2 0x273E MSTORE DUP1 PUSH2 0x276E MSTORE DUP1 PUSH2 0x28DB MSTORE DUP1 PUSH2 0x2A37 MSTORE DUP1 PUSH2 0x2D34 MSTORE DUP1 PUSH2 0x2E9E MSTORE DUP1 PUSH2 0x3689 MSTORE DUP1 PUSH2 0x36CC MSTORE DUP1 PUSH2 0x3BD7 MSTORE DUP1 PUSH2 0x3DC1 MSTORE DUP1 PUSH2 0x4101 MSTORE DUP1 PUSH2 0x41AF MSTORE DUP1 PUSH2 0x422F MSTORE POP PUSH2 0x4754 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8803DBEE GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xA1C JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0xA31 JUMPI DUP1 PUSH4 0xDED9382A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8E33700 EQ PUSH2 0xB59 JUMPI DUP1 PUSH4 0xF305D719 EQ PUSH2 0xBD9 JUMPI DUP1 PUSH4 0xFB3BDB41 EQ PUSH2 0xC1F JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x8803DBEE EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xAF2979EB EQ PUSH2 0x8E8 JUMPI DUP1 PUSH4 0xB6F9DE95 EQ PUSH2 0x93B JUMPI DUP1 PUSH4 0xBAA2ABDE EQ PUSH2 0x9BF JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x52707D8C GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x52707D8C EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0x571FD012 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x5B0D5984 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x5C11D795 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x791AC947 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0x7FF36AB5 EQ PUSH2 0x767 JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x2751CEC EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x18CBAFE5 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x2195995C EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x38ED1739 EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x4A25D94A EQ PUSH2 0x4A8 JUMPI PUSH2 0x188 JUMP JUMPDEST CALLDATASIZE PUSH2 0x188 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x186 JUMPI INVALID JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B3 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x10EA SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x160 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH2 0x100 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x140 ADD CALLDATALOAD PUSH2 0x1120 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x121A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1365 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x1508 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x5EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x1516 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x65E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x6B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x6F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x71A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x72C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x18B9 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x77D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x79E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1B3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x80E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1E90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x1FAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x1FC2 JUMP JUMPDEST PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x9E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x24CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x2713 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x2737 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0xB0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x2764 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x2878 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0xBEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x29B4 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xC35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xC56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xC89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2C59 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xCEA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP10 PUSH32 0x0 DUP11 DUP11 DUP11 ADDRESS DUP11 PUSH2 0x24CF JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP PUSH2 0xD29 DUP10 DUP7 DUP6 PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xDB1 DUP6 DUP4 PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0xE03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0xE3D JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEF4 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0xF07 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFEA DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0xFD0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF9E JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x33BD JUMP JUMPDEST DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFDD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x347D JUMP JUMPDEST PUSH2 0x1029 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1068 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x10D2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3820 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1150 PUSH32 0x0 DUP16 DUP16 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x115F JUMPI DUP13 PUSH2 0x1163 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1200 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 PUSH2 0x24CF JUMP JUMPDEST DUP1 SWAP5 POP DUP2 SWAP6 POP POP POP POP POP SWAP12 POP SWAP12 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1260 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x12BE PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x12D1 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1326 DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST PUSH2 0x10DF DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x13AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x13E5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x143E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x149C PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x14AC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x397F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x3A80 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1564 PUSH32 0x0 DUP14 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x1573 JUMPI DUP12 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1613 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x1FC2 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1668 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x16DD DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x16D7 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST DUP11 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x16EF JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x177E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP9 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x17C0 SWAP3 SWAP1 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1872 DUP3 DUP9 DUP9 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x17D5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x184E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST LT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x18FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1937 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1990 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19A0 DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST PUSH2 0x19DE DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP7 DUP2 LT ISZERO PUSH2 0x1AB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x18AF DUP5 DUP3 PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1B83 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1BBA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C13 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C71 PUSH32 0x0 CALLVALUE DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1C84 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1D05 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1DB1 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1DBE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E29 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x1E47 JUMPI INVALID JUMPDEST PUSH2 0x1E86 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1ED6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1F34 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1F44 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FBA DUP5 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2008 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2037 DUP9 PUSH32 0x0 DUP10 DUP10 DUP10 ADDRESS DUP10 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0x20BB SWAP3 POP DUP11 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2135 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH2 0x3145 JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x21BE JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2217 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLVALUE SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x228B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x22F0 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x236A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2372 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2384 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP10 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP10 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x2455 SWAP3 SWAP1 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP8 PUSH2 0x1872 DUP3 DUP10 DUP10 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x246A JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2543 PUSH32 0x0 DUP13 DUP13 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH4 0x23B872DD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x259E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x226BF2D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 SWAP3 DUP7 AND SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2615 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2629 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x263F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x2659 DUP15 DUP15 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x267C JUMPI DUP2 DUP4 PUSH2 0x267F JUMP JUMPDEST DUP3 DUP3 JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP11 DUP8 LT ISZERO PUSH2 0x26C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP7 LT ISZERO PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B4 PUSH32 0x0 DUP15 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x27C3 JUMPI DUP13 PUSH2 0x27C7 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x283D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2863 DUP15 DUP15 DUP15 DUP15 DUP15 DUP15 PUSH2 0xCA3 JUMP JUMPDEST SWAP1 SWAP16 SWAP1 SWAP15 POP SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x28C1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28CF DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2901 PUSH32 0x0 DUP15 DUP15 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x290F DUP14 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH2 0x291B DUP13 CALLER DUP4 DUP8 PUSH2 0x347D JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2973 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2987 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x299D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 SWAP14 SWAP4 SWAP13 POP SWAP4 SWAP11 POP SWAP2 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x29FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A2B DUP11 PUSH32 0x0 DUP12 CALLVALUE DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2A7D PUSH32 0x0 DUP13 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x2A8B DUP12 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2AE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2BB1 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP CALLVALUE DUP5 LT ISZERO PUSH2 0x2C4B JUMPI PUSH2 0x2C4B CALLER DUP6 CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2C9F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2CD6 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D2F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D8D PUSH32 0x0 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP CALLVALUE DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D9D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x2DE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2E1E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2ECA PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2ED7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2F60 JUMPI INVALID JUMPDEST PUSH2 0x2F9F DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FAC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE GT ISZERO PUSH2 0x1E86 JUMPI PUSH2 0x1E86 CALLER DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FCC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3058 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3039 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x30ED JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x30ED JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x30EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x313E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3191 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3172 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x31F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x31F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4641 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3296 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x32AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x32D8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x32E9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x333B DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3317 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3391 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x334E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x338C DUP12 DUP11 DUP10 DUP2 MLOAD DUP2 LT PUSH2 0x3368 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x440B JUMP JUMPDEST PUSH2 0x397F JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x33A0 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x32F8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x33CC DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3502 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3564 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3569 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3597 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3597 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46AF PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x35F8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x360F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3627 DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP8 DUP6 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x363B JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3669 JUMPI DUP3 PUSH1 0x0 PUSH2 0x366D JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP11 MLOAD SUB DUP9 LT PUSH2 0x3684 JUMPI DUP9 PUSH2 0x36C5 JUMP JUMPDEST PUSH2 0x36C5 PUSH32 0x0 DUP8 DUP13 DUP12 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x36F2 PUSH32 0x0 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x372F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x37A0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3788 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x37CD JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP10 ADD SWAP9 POP PUSH2 0x35DD SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3879 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x3891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x38BB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x38CF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3911 DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x38FD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x395A DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3924 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3955 DUP12 DUP11 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3941 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH2 0x3A80 JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3969 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x38E1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x39BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4687 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x39CF JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3A0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A2E PUSH2 0x3A21 PUSH2 0x2710 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A42 DUP3 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A68 DUP4 PUSH2 0x3A5C DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 PUSH2 0x3A73 JUMPI INVALID JUMPDEST DIV SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x3AC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4618 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x3AD0 JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3B0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3B2F PUSH2 0x2710 PUSH2 0x3B23 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3B58 PUSH2 0x3B48 PUSH2 0x2710 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST PUSH2 0x3B23 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST SWAP1 POP PUSH2 0x3B75 PUSH1 0x1 DUP3 DUP5 DUP2 PUSH2 0x3B68 JUMPI INVALID JUMPDEST DIV SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3238 JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3B9E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3BB5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3BCD DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x3BFD PUSH32 0x0 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP1 DUP10 AND EQ PUSH2 0x3C9E JUMPI DUP3 DUP5 PUSH2 0x3CA1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3CFF DUP3 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH2 0x3D77 DUP7 DUP4 DUP4 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3D54 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x397F JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3DA1 JUMPI DUP3 PUSH1 0x0 PUSH2 0x3DA5 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP13 MLOAD SUB DUP11 LT PUSH2 0x3DBC JUMPI DUP11 PUSH2 0x3DF0 JUMP JUMPDEST PUSH2 0x3DF0 PUSH32 0x0 DUP10 DUP15 DUP14 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x24 DUP3 ADD DUP8 DUP2 MSTORE PUSH1 0x44 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x64 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x84 DUP6 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0xA4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP8 POP SWAP1 DUP13 AND SWAP6 PUSH4 0x22C0D9F SWAP6 DUP11 SWAP6 DUP11 SWAP6 DUP11 SWAP6 SWAP2 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH1 0xC4 DUP7 ADD SWAP3 SWAP1 SWAP2 DUP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E7A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E62 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3EA7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3EDD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP12 ADD SWAP11 POP PUSH2 0x3B83 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3F86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x456E PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3F96 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x3FD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x3FE2 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST DUP2 PUSH2 0x3FE9 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4046 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x454C PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x4066 JUMPI DUP3 DUP5 PUSH2 0x4069 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x40C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xE6A43905 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x414A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x415E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4227 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH4 0x64E329CB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC9C65396 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x420E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4255 PUSH32 0x0 DUP12 DUP12 PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x4267 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4277 JUMPI DUP8 SWAP4 POP DUP7 SWAP3 POP PUSH2 0x4337 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4284 DUP10 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP8 DUP2 GT PUSH2 0x42D7 JUMPI DUP6 DUP2 LT ISZERO PUSH2 0x42CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 SWAP5 POP SWAP3 POP DUP3 PUSH2 0x4335 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42E4 DUP10 DUP5 DUP7 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP10 DUP2 GT ISZERO PUSH2 0x42F0 JUMPI INVALID JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x432F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 POP DUP8 SWAP4 POP JUMPDEST POP JUMPDEST POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4353 DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x4364 DUP9 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x439C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x43B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x43F9 JUMPI DUP1 DUP3 PUSH2 0x43FC JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4418 DUP5 DUP5 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x4426 DUP6 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x445E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4472 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x44B4 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x44B1 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455850495245440000 STOP STOP STOP STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E56414C49445F50 COINBASE SLOAD 0x48 STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A204554485F54 MSTORE COINBASE 0x4E MSTORE8 CHAINID GASLIMIT MSTORE 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F TIMESTAMP 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455843455353495645 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 0xB4 0x29 0xBD SAR JUMPI 0xAC 0xD8 PUSH7 0xD9FEA8002A8A0B 0xC1 POP 0xCA PUSH24 0x22DB552E6AA9DBF609D0390A64736F6C6343000606003300 ", - "sourceMap": "16462:17960:4:-:0;;;16755:109;5:9:-1;2:2;;;27:1;24;17:12;2:2;16755:109:4;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16755:109:4;;;;;;;-1:-1:-1;;;;;;16817:18:4;;;;;;;;16845:12;;;;;16462:17960;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "3343": [ - { - "length": 32, - "start": 3739 - }, - { - "length": 32, - "start": 3954 - }, - { - "length": 32, - "start": 4337 - }, - { - "length": 32, - "start": 4394 - }, - { - "length": 32, - "start": 4709 - }, - { - "length": 32, - "start": 5187 - }, - { - "length": 32, - "start": 5406 - }, - { - "length": 32, - "start": 5774 - }, - { - "length": 32, - "start": 7192 - }, - { - "length": 32, - "start": 7557 - }, - { - "length": 32, - "start": 7899 - }, - { - "length": 32, - "start": 8900 - }, - { - "length": 32, - "start": 9501 - }, - { - "length": 32, - "start": 10005 - }, - { - "length": 32, - "start": 10046 - }, - { - "length": 32, - "start": 10094 - }, - { - "length": 32, - "start": 10459 - }, - { - "length": 32, - "start": 10807 - }, - { - "length": 32, - "start": 11572 - }, - { - "length": 32, - "start": 11934 - }, - { - "length": 32, - "start": 13961 - }, - { - "length": 32, - "start": 14028 - }, - { - "length": 32, - "start": 15319 - }, - { - "length": 32, - "start": 15809 - }, - { - "length": 32, - "start": 16641 - }, - { - "length": 32, - "start": 16815 - }, - { - "length": 32, - "start": 16943 - } - ], - "3346": [ - { - "length": 32, - "start": 351 - }, - { - "length": 32, - "start": 3312 - }, - { - "length": 32, - "start": 3371 - }, - { - "length": 32, - "start": 3597 - }, - { - "length": 32, - "start": 4139 - }, - { - "length": 32, - "start": 5045 - }, - { - "length": 32, - "start": 5440 - }, - { - "length": 32, - "start": 6407 - }, - { - "length": 32, - "start": 6657 - }, - { - "length": 32, - "start": 6839 - }, - { - "length": 32, - "start": 7045 - }, - { - "length": 32, - "start": 7371 - }, - { - "length": 32, - "start": 7507 - }, - { - "length": 32, - "start": 8075 - }, - { - "length": 32, - "start": 8206 - }, - { - "length": 32, - "start": 8381 - }, - { - "length": 32, - "start": 8585 - }, - { - "length": 32, - "start": 8734 - }, - { - "length": 32, - "start": 8850 - }, - { - "length": 32, - "start": 10128 - }, - { - "length": 32, - "start": 10755 - }, - { - "length": 32, - "start": 10841 - }, - { - "length": 32, - "start": 10893 - }, - { - "length": 32, - "start": 11009 - }, - { - "length": 32, - "start": 11425 - }, - { - "length": 32, - "start": 11748 - }, - { - "length": 32, - "start": 11884 - } - ] - }, - "linkReferences": {}, - "object": "60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a2646970667358221220e9b429bd1d57acd866d9fea8002a8a0bc150ca7722db552e6aa9dbf609d0390a64736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8803DBEE GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xA1C JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0xA31 JUMPI DUP1 PUSH4 0xDED9382A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8E33700 EQ PUSH2 0xB59 JUMPI DUP1 PUSH4 0xF305D719 EQ PUSH2 0xBD9 JUMPI DUP1 PUSH4 0xFB3BDB41 EQ PUSH2 0xC1F JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x8803DBEE EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xAF2979EB EQ PUSH2 0x8E8 JUMPI DUP1 PUSH4 0xB6F9DE95 EQ PUSH2 0x93B JUMPI DUP1 PUSH4 0xBAA2ABDE EQ PUSH2 0x9BF JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x52707D8C GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x52707D8C EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0x571FD012 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x5B0D5984 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x5C11D795 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x791AC947 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0x7FF36AB5 EQ PUSH2 0x767 JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x2751CEC EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x18CBAFE5 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x2195995C EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x38ED1739 EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x4A25D94A EQ PUSH2 0x4A8 JUMPI PUSH2 0x188 JUMP JUMPDEST CALLDATASIZE PUSH2 0x188 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x186 JUMPI INVALID JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B3 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x10EA SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x160 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH2 0x100 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x140 ADD CALLDATALOAD PUSH2 0x1120 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x121A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1365 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x1508 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x5EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x1516 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x65E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x6B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x6F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x71A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x72C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x18B9 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x77D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x79E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1B3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x80E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1E90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x1FAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x1FC2 JUMP JUMPDEST PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x9E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x24CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x2713 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x2737 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0xB0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x2764 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x2878 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0xBEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x29B4 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xC35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xC56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xC89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2C59 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xCEA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP10 PUSH32 0x0 DUP11 DUP11 DUP11 ADDRESS DUP11 PUSH2 0x24CF JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP PUSH2 0xD29 DUP10 DUP7 DUP6 PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xDB1 DUP6 DUP4 PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0xE03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0xE3D JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEF4 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0xF07 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFEA DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0xFD0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF9E JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x33BD JUMP JUMPDEST DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFDD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x347D JUMP JUMPDEST PUSH2 0x1029 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1068 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x10D2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3820 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1150 PUSH32 0x0 DUP16 DUP16 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x115F JUMPI DUP13 PUSH2 0x1163 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1200 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 PUSH2 0x24CF JUMP JUMPDEST DUP1 SWAP5 POP DUP2 SWAP6 POP POP POP POP POP SWAP12 POP SWAP12 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1260 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x12BE PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x12D1 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1326 DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST PUSH2 0x10DF DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x13AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x13E5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x143E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x149C PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x14AC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x397F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x3A80 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1564 PUSH32 0x0 DUP14 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x1573 JUMPI DUP12 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1613 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x1FC2 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1668 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x16DD DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x16D7 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST DUP11 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x16EF JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x177E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP9 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x17C0 SWAP3 SWAP1 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1872 DUP3 DUP9 DUP9 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x17D5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x184E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST LT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x18FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1937 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1990 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19A0 DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST PUSH2 0x19DE DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP7 DUP2 LT ISZERO PUSH2 0x1AB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x18AF DUP5 DUP3 PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1B83 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1BBA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C13 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C71 PUSH32 0x0 CALLVALUE DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1C84 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1D05 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1DB1 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1DBE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E29 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x1E47 JUMPI INVALID JUMPDEST PUSH2 0x1E86 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1ED6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1F34 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1F44 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FBA DUP5 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2008 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2037 DUP9 PUSH32 0x0 DUP10 DUP10 DUP10 ADDRESS DUP10 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0x20BB SWAP3 POP DUP11 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2135 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH2 0x3145 JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x21BE JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2217 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLVALUE SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x228B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x22F0 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x236A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2372 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2384 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP10 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP10 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x2455 SWAP3 SWAP1 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP8 PUSH2 0x1872 DUP3 DUP10 DUP10 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x246A JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2543 PUSH32 0x0 DUP13 DUP13 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH4 0x23B872DD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x259E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x226BF2D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 SWAP3 DUP7 AND SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2615 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2629 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x263F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x2659 DUP15 DUP15 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x267C JUMPI DUP2 DUP4 PUSH2 0x267F JUMP JUMPDEST DUP3 DUP3 JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP11 DUP8 LT ISZERO PUSH2 0x26C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP7 LT ISZERO PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B4 PUSH32 0x0 DUP15 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x27C3 JUMPI DUP13 PUSH2 0x27C7 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x283D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2863 DUP15 DUP15 DUP15 DUP15 DUP15 DUP15 PUSH2 0xCA3 JUMP JUMPDEST SWAP1 SWAP16 SWAP1 SWAP15 POP SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x28C1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28CF DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2901 PUSH32 0x0 DUP15 DUP15 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x290F DUP14 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH2 0x291B DUP13 CALLER DUP4 DUP8 PUSH2 0x347D JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2973 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2987 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x299D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 SWAP14 SWAP4 SWAP13 POP SWAP4 SWAP11 POP SWAP2 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x29FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A2B DUP11 PUSH32 0x0 DUP12 CALLVALUE DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2A7D PUSH32 0x0 DUP13 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x2A8B DUP12 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2AE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2BB1 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP CALLVALUE DUP5 LT ISZERO PUSH2 0x2C4B JUMPI PUSH2 0x2C4B CALLER DUP6 CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2C9F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2CD6 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D2F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D8D PUSH32 0x0 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP CALLVALUE DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D9D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x2DE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2E1E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2ECA PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2ED7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2F60 JUMPI INVALID JUMPDEST PUSH2 0x2F9F DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FAC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE GT ISZERO PUSH2 0x1E86 JUMPI PUSH2 0x1E86 CALLER DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FCC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3058 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3039 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x30ED JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x30ED JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x30EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x313E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3191 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3172 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x31F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x31F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4641 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3296 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x32AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x32D8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x32E9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x333B DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3317 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3391 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x334E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x338C DUP12 DUP11 DUP10 DUP2 MLOAD DUP2 LT PUSH2 0x3368 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x440B JUMP JUMPDEST PUSH2 0x397F JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x33A0 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x32F8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x33CC DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3502 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3564 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3569 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3597 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3597 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46AF PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x35F8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x360F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3627 DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP8 DUP6 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x363B JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3669 JUMPI DUP3 PUSH1 0x0 PUSH2 0x366D JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP11 MLOAD SUB DUP9 LT PUSH2 0x3684 JUMPI DUP9 PUSH2 0x36C5 JUMP JUMPDEST PUSH2 0x36C5 PUSH32 0x0 DUP8 DUP13 DUP12 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x36F2 PUSH32 0x0 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x372F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x37A0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3788 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x37CD JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP10 ADD SWAP9 POP PUSH2 0x35DD SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3879 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x3891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x38BB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x38CF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3911 DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x38FD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x395A DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3924 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3955 DUP12 DUP11 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3941 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH2 0x3A80 JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3969 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x38E1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x39BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4687 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x39CF JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3A0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A2E PUSH2 0x3A21 PUSH2 0x2710 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A42 DUP3 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A68 DUP4 PUSH2 0x3A5C DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 PUSH2 0x3A73 JUMPI INVALID JUMPDEST DIV SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x3AC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4618 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x3AD0 JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3B0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3B2F PUSH2 0x2710 PUSH2 0x3B23 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3B58 PUSH2 0x3B48 PUSH2 0x2710 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST PUSH2 0x3B23 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST SWAP1 POP PUSH2 0x3B75 PUSH1 0x1 DUP3 DUP5 DUP2 PUSH2 0x3B68 JUMPI INVALID JUMPDEST DIV SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3238 JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3B9E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3BB5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3BCD DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x3BFD PUSH32 0x0 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP1 DUP10 AND EQ PUSH2 0x3C9E JUMPI DUP3 DUP5 PUSH2 0x3CA1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3CFF DUP3 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH2 0x3D77 DUP7 DUP4 DUP4 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3D54 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x397F JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3DA1 JUMPI DUP3 PUSH1 0x0 PUSH2 0x3DA5 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP13 MLOAD SUB DUP11 LT PUSH2 0x3DBC JUMPI DUP11 PUSH2 0x3DF0 JUMP JUMPDEST PUSH2 0x3DF0 PUSH32 0x0 DUP10 DUP15 DUP14 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x24 DUP3 ADD DUP8 DUP2 MSTORE PUSH1 0x44 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x64 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x84 DUP6 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0xA4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP8 POP SWAP1 DUP13 AND SWAP6 PUSH4 0x22C0D9F SWAP6 DUP11 SWAP6 DUP11 SWAP6 DUP11 SWAP6 SWAP2 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH1 0xC4 DUP7 ADD SWAP3 SWAP1 SWAP2 DUP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E7A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E62 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3EA7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3EDD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP12 ADD SWAP11 POP PUSH2 0x3B83 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3F86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x456E PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3F96 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x3FD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x3FE2 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST DUP2 PUSH2 0x3FE9 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4046 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x454C PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x4066 JUMPI DUP3 DUP5 PUSH2 0x4069 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x40C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xE6A43905 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x414A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x415E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4227 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH4 0x64E329CB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC9C65396 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x420E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4255 PUSH32 0x0 DUP12 DUP12 PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x4267 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4277 JUMPI DUP8 SWAP4 POP DUP7 SWAP3 POP PUSH2 0x4337 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4284 DUP10 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP8 DUP2 GT PUSH2 0x42D7 JUMPI DUP6 DUP2 LT ISZERO PUSH2 0x42CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 SWAP5 POP SWAP3 POP DUP3 PUSH2 0x4335 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42E4 DUP10 DUP5 DUP7 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP10 DUP2 GT ISZERO PUSH2 0x42F0 JUMPI INVALID JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x432F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 POP DUP8 SWAP4 POP JUMPDEST POP JUMPDEST POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4353 DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x4364 DUP9 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x439C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x43B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x43F9 JUMPI DUP1 DUP3 PUSH2 0x43FC JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4418 DUP5 DUP5 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x4426 DUP6 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x445E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4472 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x44B4 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x44B1 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455850495245440000 STOP STOP STOP STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E56414C49445F50 COINBASE SLOAD 0x48 STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A204554485F54 MSTORE COINBASE 0x4E MSTORE8 CHAINID GASLIMIT MSTORE 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F TIMESTAMP 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455843455353495645 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 0xB4 0x29 0xBD SAR JUMPI 0xAC 0xD8 PUSH7 0xD9FEA8002A8A0B 0xC1 POP 0xCA PUSH24 0x22DB552E6AA9DBF609D0390A64736F6C6343000606003300 ", - "sourceMap": "16462:17960:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16914:10;-1:-1:-1;;;;;16928:4:4;16914:18;;16907:26;;;;16462:17960;;12:1:-1;9;2:12;20922:653:4;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20922:653:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;20922:653:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;27855:822;;5:9:-1;2:2;;;27:1;24;17:12;2:2;27855:822:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;27855:822:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;27855:822:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;27855:822:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;27855:822:4;;-1:-1:-1;27855:822:4;-1:-1:-1;;;;;;27855:822:4;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;27855:822:4;;;;;;;;;;;;;;;;;34178:242;;5:9:-1;2:2;;;27:1;24;17:12;2:2;34178:242:4;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;34178:242:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;34178:242:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;34178:242:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;34178:242:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;34178:242:4;;-1:-1:-1;34178:242:4;;-1:-1:-1;;;;;34178:242:4:i;21580:657::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21580:657:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;21580:657:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;25174:606::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;25174:606:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;25174:606:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;25174:606:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;25174:606:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;25174:606:4;;-1:-1:-1;25174:606:4;-1:-1:-1;;;;;;25174:606:4;;;;;;;;:::i;27050:800::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;27050:800:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;27050:800:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;27050:800:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;27050:800:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;27050:800:4;;-1:-1:-1;27050:800:4;-1:-1:-1;;;;;;27050:800:4;;;;;;;;:::i;33371:274::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33371:274:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;33371:274:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;33651:273;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33651:273:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;33651:273:4;;;;;;;;;;;;;;;;;:::i;23653:697::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;23653:697:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;23653:697:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;30807:692::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30807:692:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;30807:692:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;30807:692:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;30807:692:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;30807:692:4;;-1:-1:-1;30807:692:4;-1:-1:-1;;;;;;30807:692:4;;;;;;;;:::i;32328:813::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32328:813:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;32328:813:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;32328:813:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;32328:813:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;32328:813:4;;-1:-1:-1;32328:813:4;-1:-1:-1;;;;;;32328:813:4;;;;;;;;:::i;26374:671::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;26374:671:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;26374:671:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;26374:671:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;26374:671:4;;-1:-1:-1;26374:671:4;-1:-1:-1;;;;;;26374:671:4;;;;;;;;:::i;25785:584::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;25785:584:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;25785:584:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;25785:584:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;25785:584:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;25785:584:4;;-1:-1:-1;25785:584:4;-1:-1:-1;;;;;;25785:584:4;;;;;;;;:::i;16584:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16584:38:4;;;:::i;:::-;;;;-1:-1:-1;;;;;16584:38:4;;;;;;;;;;;;;;33182:183;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33182:183:4;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;33182:183:4;;;;;;;;;;;;:::i;22968:680::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22968:680:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;22968:680:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;31504:819::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;31504:819:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;31504:819:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;31504:819:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;31504:819:4;;-1:-1:-1;31504:819:4;-1:-1:-1;;;;;;31504:819:4;;;;;;;;:::i;20086:831::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20086:831:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;20086:831:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16537:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16537:41:4;;;:::i;33930:242::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33930:242:4;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;33930:242:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;33930:242:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;33930:242:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;33930:242:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;33930:242:4;;-1:-1:-1;33930:242:4;;-1:-1:-1;;;;;33930:242:4:i;22242:650::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22242:650:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;22242:650:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18379:717::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18379:717:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;18379:717:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;19101:945;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;19101:945:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;28682:782::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;28682:782:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;28682:782:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;28682:782:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;28682:782:4;;-1:-1:-1;28682:782:4;-1:-1:-1;;;;;;28682:782:4;;;;;;;;:::i;20922:653::-;21152:16;21170:14;21133:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;21223:188:::1;21252:5;21271:4;21289:9;21312:14;21340:12;21374:4;21393:8;21223:15;:188::i;:::-;21196:215:::0;;-1:-1:-1;21196:215:4;-1:-1:-1;21421:51:4::1;21449:5:::0;21456:2;21196:215;21421:27:::1;:51::i;:::-;21488:4;-1:-1:-1::0;;;;;21482:20:4::1;;21503:9;21482:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;21482:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;21482:31:4;;;;21523:45;21554:2;21558:9;21523:30;:45::i;:::-;20922:653:::0;;;;;;;;;;:::o;27855:822::-;28064:21;28037:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;28134:4:4::1;28109:29;:4:::0;;-1:-1:-1;;28114:15:4;;28109:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;28109:21:4::1;-1:-1:-1::0;;;;;28109:29:4::1;;28101:68;;;::::0;;-1:-1:-1;;;28101:68:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;28101:68:4;;;;;;;;;;;;;::::1;;28189:52;28217:7;28226:8;28236:4;;28189:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;28189:27:4::1;::::0;-1:-1:-1;;;28189:52:4:i:1;:::-;28179:62;;28290:12;28259:7;28284:1;28267:7;:14;:18;28259:27;;;;;;;;;;;;;;:43;;28251:96;;;;-1:-1:-1::0;;;28251:96:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28357:136;28402:4;;28407:1;28402:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;28402:7:4::1;28411:10;28423:48;28445:7;28454:4;;28459:1;28454:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;28454:7:4::1;28463:4;;28468:1;28463:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;28463:7:4::1;28423:21;:48::i;:::-;28473:7;28481:1;28473:10;;;;;;;;;;;;;;28357:31;:136::i;:::-;28503:35;28509:7;28518:4;;28503:35;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;28532:4:4::1;::::0;-1:-1:-1;28503:5:4::1;::::0;-1:-1:-1;;28503:35:4:i:1;:::-;28554:4;-1:-1:-1::0;;;;;28548:20:4::1;;28569:7;28594:1;28577:7;:14;:18;28569:27;;;;;;;;;;;;;;28548:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;28548:49:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;28548:49:4;;;;28607:63;28638:2;28642:7;28667:1;28650:7;:14;:18;28642:27;;;;;;;;;;;;;;28607:30;:63::i;:::-;27855:822:::0;;;;;;;;;:::o;34178:242::-;34317:21;34361:52;34388:7;34397:9;34408:4;34361:26;:52::i;:::-;34354:59;;34178:242;;;;;:::o;21580:657::-;21877:12;21891;21915;21930:46;21952:7;21961:6;21969;21930:21;:46::i;:::-;21915:61;;21986:10;21999;:33;;22023:9;21999:33;;;-1:-1:-1;;21999:33:4;22042:77;;;-1:-1:-1;;;22042:77:4;;22067:10;22042:77;;;;22087:4;22042:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21986:46;;-1:-1:-1;;;;;;22042:24:4;;;;;:77;;;;;-1:-1:-1;;22042:77:4;;;;;;;;-1:-1:-1;22042:24:4;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;22042:77:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22042:77:4;;;;22150:80;22166:6;22174;22182:9;22193:10;22205;22217:2;22221:8;22150:15;:80::i;:::-;22129:101;;;;;;;;21580:657;;;;;;;;;;;;;;;;:::o;25174:606::-;25392:21;25373:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;25435:52:::1;25463:7;25472:8;25482:4;;25435:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;25435:27:4::1;::::0;-1:-1:-1;;;25435:52:4:i:1;:::-;25425:62;;25536:12;25505:7;25530:1;25513:7;:14;:18;25505:27;;;;;;;;;;;;;;:43;;25497:96;;;;-1:-1:-1::0;;;25497:96:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25603:136;25648:4;;25653:1;25648:7;;;;;;25603:136;25749:24;25755:7;25764:4;;25749:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;25770:2:4;;-1:-1:-1;25749:5:4::1;::::0;-1:-1:-1;;25749:24:4:i:1;27050:800::-:0;27259:21;27232:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;27329:4:4::1;27304:29;:4:::0;;-1:-1:-1;;27309:15:4;;27304:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;27304:21:4::1;-1:-1:-1::0;;;;;27304:29:4::1;;27296:68;;;::::0;;-1:-1:-1;;;27296:68:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;27296:68:4;;;;;;;;;;;;;::::1;;27384:52;27411:7;27420:9;27431:4;;27384:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;27384:26:4::1;::::0;-1:-1:-1;;;27384:52:4:i:1;:::-;27374:62;;27468:11;27454:7;27462:1;27454:10;;;;;;;;;;;;;;:25;;27446:74;;;;-1:-1:-1::0;;;27446:74:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33371:274:::0;33533:14;33570:68;33597:8;33607:9;33618:10;33630:7;33570:26;:68::i;:::-;33563:75;33371:274;-1:-1:-1;;;;;33371:274:4:o;33651:273::-;33813:13;33849:68;33875:9;33886;33897:10;33909:7;33849:25;:68::i;23653:697::-;23963:14;23989:12;24004:43;24026:7;24035:5;24042:4;24004:21;:43::i;:::-;23989:58;;24057:10;24070;:33;;24094:9;24070:33;;;-1:-1:-1;;24070:33:4;24113:77;;;-1:-1:-1;;;24113:77:4;;24138:10;24113:77;;;;24158:4;24113:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24057:46;;-1:-1:-1;;;;;;24113:24:4;;;;;:77;;;;;-1:-1:-1;;24113:77:4;;;;;;;;-1:-1:-1;24113:24:4;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;24113:77:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24113:77:4;;;;24212:131;24273:5;24280:9;24291:14;24307:12;24321:2;24325:8;24212:47;:131::i;:::-;24200:143;23653:697;-1:-1:-1;;;;;;;;;;;;;23653:697:4:o;30807:692::-;31035:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;31055:134:::1;31100:4;;31105:1;31100:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;31100:7:4::1;31109:10;31121:48;31143:7;31152:4;;31157:1;31152:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;31152:7:4::1;31161:4;;31166:1;31161:7;;;;;;31121:48;31171:8;31055:31;:134::i;:::-;31199:18;31227:4:::0;;-1:-1:-1;;31232:15:4;;31227:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;31227:21:4::1;-1:-1:-1::0;;;;;31220:39:4::1;;31260:2;31220:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;31220:43:4::1;-1:-1:-1::0;;;;;31220:43:4::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;31220:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;31220:43:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;31220:43:4;31273:44:::1;::::0;;31220:43:::1;31273:44:::0;;::::1;::::0;;;;;;;;;;;31220:43;;-1:-1:-1;31273:44:4::1;::::0;;;31308:4;;;;;;31273:44;::::1;::::0;31308:4;;31273:44;31308:4;31273:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;31314:2:4;;-1:-1:-1;31273:34:4::1;::::0;-1:-1:-1;;31273:44:4:i:1;:::-;31414:12:::0;31348:62:::1;31396:13:::0;31355:4;;-1:-1:-1;;31360:15:4;;31355:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;31355:21:4::1;-1:-1:-1::0;;;;;31348:39:4::1;;31388:2;31348:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;31348:43:4::1;-1:-1:-1::0;;;;;31348:43:4::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;31348:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;31348:43:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;31348:43:4;;:62:::1;:47;:62;:::i;:::-;:78;;31327:165;;;;-1:-1:-1::0;;;31327:165:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16741:1;30807:692:::0;;;;;;;:::o;32328:813::-;32585:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;32642:4:4::1;32617:29;:4:::0;;-1:-1:-1;;32622:15:4;;32617:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;32617:21:4::1;-1:-1:-1::0;;;;;32617:29:4::1;;32609:68;;;::::0;;-1:-1:-1;;;32609:68:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;32609:68:4;;;;;;;;;;;;;::::1;;32687:134;32732:4;;32737:1;32732:7;;;;;;32687:134;32831:55;32866:4;;32831:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;32880:4:4::1;::::0;-1:-1:-1;32831:34:4::1;::::0;-1:-1:-1;;32831:55:4:i:1;:::-;32913:37;::::0;;-1:-1:-1;;;32913:37:4;;32944:4:::1;32913:37;::::0;::::1;::::0;;;32896:14:::1;::::0;-1:-1:-1;;;;;32920:4:4::1;32913:22;::::0;::::1;::::0;:37;;;;;::::1;::::0;;;;;;;;;:22;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;32913:37:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;32913:37:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;32913:37:4;;-1:-1:-1;32968:25:4;;::::1;;32960:78;;;;-1:-1:-1::0;;;32960:78:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33054:4;-1:-1:-1::0;;;;;33048:20:4::1;;33069:9;33048:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;33048:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;33048:31:4;;;;33089:45;33120:2;33124:9;33089:30;:45::i;26374:671::-:0;26584:21;26557:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;26640:4:::1;-1:-1:-1::0;;;;;26629:15:4::1;:4;;26634:1;26629:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;26629:7:4::1;-1:-1:-1::0;;;;;26629:15:4::1;;26621:54;;;::::0;;-1:-1:-1;;;26621:54:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;26621:54:4;;;;;;;;;;;;;::::1;;26695:53;26723:7;26732:9;26743:4;;26695:53;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;26695:27:4::1;::::0;-1:-1:-1;;;26695:53:4:i:1;:::-;26685:63;;26797:12;26766:7;26791:1;26774:7;:14;:18;26766:27;;;;;;;;;;;;;;:43;;26758:96;;;;-1:-1:-1::0;;;26758:96:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26870:4;-1:-1:-1::0;;;;;26864:19:4::1;;26891:7;26899:1;26891:10;;;;;;;;;;;;;;26864:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;26864:40:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;26864:40:4;;;;;26927:4;-1:-1:-1::0;;;;;26921:20:4::1;;26942:48;26964:7;26973:4;;26978:1;26973:7;;;;;;26942:48;26992:7;27000:1;26992:10;;;;;;;;;;;;;;26921:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;26921:82:4::1;-1:-1:-1::0;;;;;26921:82:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;26921:82:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;26921:82:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;26921:82:4;26914:90:::1;;;;27014:24;27020:7;27029:4;;27014:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;27035:2:4;;-1:-1:-1;27014:5:4::1;::::0;-1:-1:-1;;27014:24:4:i:1;:::-;26374:671:::0;;;;;;;;:::o;25785:584::-;26003:21;25984:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;26046:52:::1;26073:7;26082:9;26093:4;;26046:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;26046:26:4::1;::::0;-1:-1:-1;;;26046:52:4:i:1;:::-;26036:62;;26130:11;26116:7;26124:1;26116:10;;;;;;;;;;;;;;:25;;26108:74;;;;-1:-1:-1::0;;;26108:74:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16584:38:::0;;;:::o;33182:183::-;33279:12;33310:48;33330:7;33339:8;33349;33310:19;:48::i;:::-;33303:55;33182:183;-1:-1:-1;;;;33182:183:4:o;22968:680::-;23227:14;23208:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;23269:188:::1;23298:5;23317:4;23335:9;23358:14;23386:12;23420:4;23439:8;23269:15;:188::i;:::-;23506:38;::::0;;-1:-1:-1;;;23506:38:4;;23538:4:::1;23506:38;::::0;::::1;::::0;;;23253:204;;-1:-1:-1;23467:78:4::1;::::0;-1:-1:-1;23495:5:4;;23502:2;;-1:-1:-1;;;;;23506:23:4;::::1;::::0;::::1;::::0;:38;;;;;::::1;::::0;;;;;;;;;:23;:38;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;23506:38:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;23506:38:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;23506:38:4;23467:27:::1;:78::i;:::-;23561:4;-1:-1:-1::0;;;;;23555:20:4::1;;23576:9;23555:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;23555:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;23555:31:4;;;;23596:45;23627:2;23631:9;23596:30;:45::i;31504:819::-:0;31754:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;31797:4:::1;-1:-1:-1::0;;;;;31786:15:4::1;:4;;31791:1;31786:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;31786:7:4::1;-1:-1:-1::0;;;;;31786:15:4::1;;31778:54;;;::::0;;-1:-1:-1;;;31778:54:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;31778:54:4;;;;;;;;;;;;;::::1;;31842:13;31858:9;31842:25;;31883:4;-1:-1:-1::0;;;;;31877:19:4::1;;31904:8;31877:38;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;31877:38:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;31877:38:4;;;;;31938:4;-1:-1:-1::0;;;;;31932:20:4::1;;31953:48;31975:7;31984:4;;31989:1;31984:7;;;;;;31953:48;32003:8;31932:80;;;;;;;;;;;;;-1:-1:-1::0;;;;;31932:80:4::1;-1:-1:-1::0;;;;;31932:80:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;31932:80:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;31932:80:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;31932:80:4;31925:88:::1;;;;32023:18;32051:4:::0;;-1:-1:-1;;32056:15:4;;32051:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;32051:21:4::1;-1:-1:-1::0;;;;;32044:39:4::1;;32084:2;32044:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;32044:43:4::1;-1:-1:-1::0;;;;;32044:43:4::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;32044:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;32044:43:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;32044:43:4;32097:44:::1;::::0;;32044:43:::1;32097:44:::0;;::::1;::::0;;;;;;;;;;;32044:43;;-1:-1:-1;32097:44:4::1;::::0;;;32132:4;;;;;;32097:44;::::1;::::0;32132:4;;32097:44;32132:4;32097:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;32138:2:4;;-1:-1:-1;32097:34:4::1;::::0;-1:-1:-1;;32097:44:4:i:1;:::-;32238:12:::0;32172:62:::1;32220:13:::0;32179:4;;-1:-1:-1;;32184:15:4;;32179:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;32179:21:4::1;-1:-1:-1::0;;;;;32172:39:4::1;;32212:2;32172:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;32172:43:4::1;-1:-1:-1::0;;;;;32172:43:4::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;20086:831:4::0;20332:12;20346;20313:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;20370:12:::1;20385:46;20407:7;20416:6;20424;20385:21;:46::i;:::-;20441:59;::::0;;-1:-1:-1;;;20441:59:4;;20472:10:::1;20441:59;::::0;::::1;::::0;-1:-1:-1;;;;;20441:30:4;::::1;:59:::0;;;;;;;;;;;;;;20370:61;;-1:-1:-1;20441:30:4;;::::1;::::0;:59;;;;;::::1;::::0;;;;;;;;;-1:-1:-1;20441:30:4;:59;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;20441:59:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;20441:59:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;20567:26:4::1;::::0;;-1:-1:-1;;;20567:26:4;;-1:-1:-1;;;;;20567:26:4;;::::1;;::::0;::::1;::::0;;;20537:12:::1;::::0;;;20567:22;;::::1;::::0;::::1;::::0;:26;;;;;;;;;;;20537:12;20567:22;:26;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;20567:26:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;20567:26:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;20567:26:4;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;20567:26:4;-1:-1:-1;20604:14:4::1;20623:40;20648:6:::0;20656;20623:24:::1;:40::i;:::-;20603:60;;;20704:6;-1:-1:-1::0;;;;;20694:16:4::1;:6;-1:-1:-1::0;;;;;20694:16:4::1;;:58;;20735:7;20744;20694:58;;;20714:7;20723;20694:58;20673:79:::0;;-1:-1:-1;20673:79:4;-1:-1:-1;20770:21:4;;::::1;;20762:69;;;;-1:-1:-1::0;;;20762:69:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20860:10;20849:7;:21;;20841:69;;;;-1:-1:-1::0;;;20841:69:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16741:1;;;;20086:831:::0;;;;;;;;;;;:::o;16537:41::-;;;:::o;33930:242::-;34069:21;34113:52;34141:7;34150:8;34160:4;34113:27;:52::i;22242:650::-;22523:16;22541:14;22567:12;22582:43;22604:7;22613:5;22620:4;22582:21;:43::i;:::-;22567:58;;22635:10;22648;:33;;22672:9;22648:33;;;-1:-1:-1;;22648:33:4;22691:77;;;-1:-1:-1;;;22691:77:4;;22716:10;22691:77;;;;22736:4;22691:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22635:46;;-1:-1:-1;;;;;;22691:24:4;;;;;:77;;;;;-1:-1:-1;;22691:77:4;;;;;;;;-1:-1:-1;22691:24:4;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;22691:77:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22691:77:4;;;;22805:80;22824:5;22831:9;22842:14;22858:12;22872:2;22876:8;22805:18;:80::i;:::-;22778:107;;;;-1:-1:-1;22242:650:4;-1:-1:-1;;;;;;;;;;;;;22242:650:4:o;18379:717::-;18658:12;18672;18686:14;18639:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;18733:85:::1;18747:6;18755;18763:14;18779;18795:10;18807;18733:13;:85::i;:::-;18712:106:::0;;-1:-1:-1;18712:106:4;-1:-1:-1;18828:12:4::1;18843:46;18865:7;18874:6:::0;18882;18843:21:::1;:46::i;:::-;18828:61;;18899:66;18931:6;18939:10;18951:4;18957:7;18899:31;:66::i;:::-;18975;19007:6;19015:10;19027:4;19033:7;18975:31;:66::i;:::-;19075:4;-1:-1:-1::0;;;;;19063:22:4::1;;19086:2;19063:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;19063:26:4::1;-1:-1:-1::0;;;;;19063:26:4::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;19063:26:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19063:26:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;19063:26:4;18379:717;;;;-1:-1:-1;19063:26:4;;-1:-1:-1;18379:717:4;;-1:-1:-1;;;;;;;;;18379:717:4:o;19101:945::-;19347:16;19365:14;19381;19328:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;19434:169:::1;19461:5;19480:4;19498:18;19530:9;19553:14;19581:12;19434:13;:169::i;:::-;19407:196:::0;;-1:-1:-1;19407:196:4;-1:-1:-1;19613:12:4::1;19628:43;19650:7;19659:5:::0;19666:4:::1;19628:21;:43::i;:::-;19613:58;;19681:69;19713:5;19720:10;19732:4;19738:11;19681:31;:69::i;:::-;19766:4;-1:-1:-1::0;;;;;19760:19:4::1;;19787:9;19760:39;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;19760:39:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19760:39:4;;;;;19822:4;-1:-1:-1::0;;;;;19816:20:4::1;;19837:4;19843:9;19816:37;;;;;;;;;;;;;-1:-1:-1::0;;;;;19816:37:4::1;-1:-1:-1::0;;;;;19816:37:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;19816:37:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19816:37:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;19816:37:4;19809:45:::1;;;;19888:4;-1:-1:-1::0;;;;;19876:22:4::1;;19899:2;19876:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;19876:26:4::1;-1:-1:-1::0;;;;;19876:26:4::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;19876:26:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19876:26:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;19876:26:4;;-1:-1:-1;19951:9:4::1;:21:::0;-1:-1:-1;19947:92:4::1;;;19974:65;20005:10;20029:9;20017;:21;19974:30;:65::i;:::-;16741:1;19101:945:::0;;;;;;;;;;;:::o;28682:782::-;28889:21;28862:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;28945:4:::1;-1:-1:-1::0;;;;;28934:15:4::1;:4;;28939:1;28934:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;28934:7:4::1;-1:-1:-1::0;;;;;28934:15:4::1;;28926:54;;;::::0;;-1:-1:-1;;;28926:54:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;28926:54:4;;;;;;;;;;;;;::::1;;29000:52;29027:7;29036:9;29047:4;;29000:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;29000:26:4::1;::::0;-1:-1:-1;;;29000:52:4:i:1;:::-;28990:62;;29084:9;29070:7;29078:1;29070:10;;;;;;;;;;;;;;:23;;29062:72;;;;-1:-1:-1::0;;;29062:72:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29150:4;-1:-1:-1::0;;;;;29144:19:4::1;;29171:7;29179:1;29171:10;;;;;;;;;;;;;;29144:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;29144:40:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;29144:40:4;;;;;29207:4;-1:-1:-1::0;;;;;29201:20:4::1;;29222:48;29244:7;29253:4;;29258:1;29253:7;;;;;;29222:48;29272:7;29280:1;29272:10;;;;;;;;;;;;;;29201:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;29201:82:4::1;-1:-1:-1::0;;;;;29201:82:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;29201:82:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;29201:82:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;29201:82:4;29194:90:::1;;;;29294:24;29300:7;29309:4;;29294:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;29315:2:4;;-1:-1:-1;29294:5:4::1;::::0;-1:-1:-1;;29294:24:4:i:1;:::-;29379:7;29387:1;29379:10;;;;;;;;;;;;;;29367:9;:22;29363:94;;;29391:66;29422:10;29446:7;29454:1;29446:10;;;;;;;;;;;;;;29434:9;:22;29391:30;:66::i;1556:357::-:0;1749:45;;;-1:-1:-1;;;;;1749:45:4;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1749:45:4;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1738:57:4;;;;1703:12;;1717:17;;1738:10;;;;1749:45;1738:57;;;25:18:-1;1738:57:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1738:57:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1702:93:4;;;;1813:7;:57;;;;-1:-1:-1;1825:11:4;;:16;;:44;;;1856:4;1845:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1845:24:4;1825:44;1805:101;;;;;-1:-1:-1;;;1805:101:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1556:357;;;;;:::o;2323:192::-;2430:12;;;2392;2430;;;;;;;;;-1:-1:-1;;;;;2409:7:4;;;2423:5;;2409:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2409:34:4;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2391:52:4;;;2461:7;2453:55;;;;-1:-1:-1;;;2453:55:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:192;;;:::o;14100:543::-;14201:21;14257:1;14242:4;:11;:16;;14234:56;;;;;-1:-1:-1;;;14234:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;14321:4;:11;14310:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14310:23:4;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;14310:23:4;;14300:33;;14356:8;14343:7;14351:1;14343:10;;;;;;;;;;;;;:21;;;;;14379:6;14374:263;14405:1;14391:4;:11;:15;14387:1;:19;14374:263;;;14428:14;14444:15;14463:42;14475:7;14484:4;14489:1;14484:7;;;;;;;;;;;;;;14493:4;14498:1;14502;14498:5;14493:11;;;;;;;;;;;;;;14463;:42::i;:::-;14427:78;;;;14536:90;14549:7;14557:1;14549:10;;;;;;;;;;;;;;14561:9;14572:10;14584:41;14595:7;14604:4;14609:1;14604:7;;;;;;;;;;;;;;14613:4;14618:1;14622;14618:5;14613:11;;;;;;;;;;;;;;14584:10;:41::i;:::-;14536:12;:90::i;:::-;14519:7;14527:1;14531;14527:5;14519:14;;;;;;;;;;;;;;;;;:107;-1:-1:-1;;14408:3:4;;14374:263;;;;14100:543;;;;;:::o;11135:450::-;11224:12;11249:14;11265;11283:26;11294:6;11302;11283:10;:26::i;:::-;11431:32;;;-1:-1:-1;;11431:32:4;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;11431:32:4;;;;;11421:43;;;;;;-1:-1:-1;;;;;;11349:226:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;11349:226:4;;;;;;;11339:237;;;;;;;;;11135:450;-1:-1:-1;;;;;11135:450:4:o;1919:398::-;2142:51;;;-1:-1:-1;;;;;2142:51:4;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2142:51:4;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;2131:63:4;;;;2096:12;;2110:17;;2131:10;;;;2142:51;2131:63;;;25:18:-1;2131:63:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2131:63:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2095:99:4;;;;2212:7;:57;;;;-1:-1:-1;2224:11:4;;:16;;:44;;;2255:4;2244:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2244:24:4;2224:44;2204:106;;;;-1:-1:-1;;;2204:106:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1919:398;;;;;;:::o;24457:712::-;24563:6;24558:605;24589:1;24575:4;:11;:15;24571:1;:19;24558:605;;;24612:13;24627:14;24646:4;24651:1;24646:7;;;;;;;;;;;;;;24655:4;24660:1;24664;24660:5;24655:11;;;;;;;;;;;;;;24611:56;;;;24682:14;24701:39;24726:5;24733:6;24701:24;:39::i;:::-;24681:59;;;24754:14;24771:7;24779:1;24783;24779:5;24771:14;;;;;;;;;;;;;;24754:31;;24800:15;24817;24845:6;-1:-1:-1;;;;;24836:15:4;:5;-1:-1:-1;;;;;24836:15:4;;:61;;24878:9;24894:1;24836:61;;;24860:1;24864:9;24836:61;24799:98;;;;24911:10;24942:1;24928:4;:11;:15;24924:1;:19;:79;;25000:3;24924:79;;;24946:51;24968:7;24977:6;24985:4;24990:1;24994;24990:5;24985:11;;;;;;;;;;;;;;24946:21;:51::i;:::-;24911:92;;25029:45;25051:7;25060:5;25067:6;25029:21;:45::i;:::-;-1:-1:-1;;;;;25017:63:4;;25098:10;25110;25122:2;25136:1;25126:12;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;108:14;25126:12:4;87:42:-1;143:17;;-1:-1;25126:12:4;;25017:135;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25017:135:4;-1:-1:-1;;;;;25017:135:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;25017:135:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;25017:135:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;24592:3:4;;;;;-1:-1:-1;24558:605:4;;-1:-1:-1;;;;;;;;24558:605:4;;;24457:712;;;:::o;14721:564::-;14822:21;14878:1;14863:4;:11;:16;;14855:56;;;;;-1:-1:-1;;;14855:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;14942:4;:11;14931:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14931:23:4;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;14931:23:4;;14921:33;;14994:9;14964:7;14989:1;14972:7;:14;:18;14964:27;;;;;;;;;;;;;;;;;:39;15027:11;;-1:-1:-1;;15027:15:4;15013:266;15044:5;;15013:266;;15071:14;15087:15;15106:42;15118:7;15127:4;15136:1;15132;:5;15127:11;;;;;;;;;;;;;;15140:4;15145:1;15140:7;;;;;;;15106:42;15070:78;;;;15179:89;15191:7;15199:1;15191:10;;;;;;;;;;;;;;15203:9;15214:10;15226:41;15237:7;15246:4;15255:1;15251;:5;15246:11;;;;;;;;;;;;;;15259:4;15264:1;15259:7;;;;;;;15226:41;15179:11;:89::i;:::-;15162:7;15174:1;15170;:5;15162:14;;;;;;;;;;;;;;;;;:106;-1:-1:-1;;;;15051:3:4;15013:266;;12867:540;12974:14;13019:1;13008:8;:12;13000:65;;;;-1:-1:-1;;;13000:65:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13095:1;13083:9;:13;:31;;;;;13113:1;13100:10;:14;13083:31;13075:81;;;;-1:-1:-1;;;13075:81:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13166:20;13189:38;13202:24;13207:5;13218:7;13202:24;:15;:24;:::i;:::-;13189:8;;:38;:12;:38;:::i;:::-;13166:61;-1:-1:-1;13237:14:4;13254:31;13166:61;13274:10;13254:31;:19;:31;:::i;:::-;13237:48;-1:-1:-1;13295:16:4;13314:41;13339:15;13314:20;:9;13328:5;13314:20;:13;:20;:::i;:::-;:24;:41;:24;:41;:::i;:::-;13295:60;;13389:11;13377:9;:23;;;;;;;12867:540;-1:-1:-1;;;;;;;;12867:540:4:o;13525:496::-;13632:13;13677:1;13665:9;:13;13657:67;;;;-1:-1:-1;;;13657:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13754:1;13742:9;:13;:31;;;;;13772:1;13759:10;:14;13742:31;13734:81;;;;-1:-1:-1;;;13734:81:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13825:14;13842:35;13871:5;13842:24;:9;13856;13842:24;:13;:24;:::i;:::-;:28;:35;:28;:35;:::i;:::-;13825:52;-1:-1:-1;13887:16:4;13906:55;13936:24;13941:5;13952:7;13936:24;:15;:24;:::i;:::-;13906:25;:10;13921:9;13906:25;:14;:25;:::i;:55::-;13887:74;;13982:32;14012:1;13995:11;13983:9;:23;;;;;;;13982:32;:29;:32;:::i;:::-;13971:43;13525:496;-1:-1:-1;;;;;;;13525:496:4:o;29607:1195::-;29719:6;29714:1082;29745:1;29731:4;:11;:15;29727:1;:19;29714:1082;;;29768:13;29783:14;29802:4;29807:1;29802:7;;;;;;;;;;;;;;29811:4;29816:1;29820;29816:5;29811:11;;;;;;;;;;;;;;29767:56;;;;29838:14;29857:39;29882:5;29889:6;29857:24;:39::i;:::-;29837:59;;;29910:16;29941:45;29963:7;29972:5;29979:6;29941:21;:45::i;:::-;29910:77;;30001:16;30031:17;30117:13;30132;30150:4;-1:-1:-1;;;;;30150:16:4;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30150:18:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30150:18:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30150:18:4;;;;;;;-1:-1:-1;;;;;30116:52:4;;;;-1:-1:-1;30116:52:4;;-1:-1:-1;30183:17:4;;-1:-1:-1;;;;;30224:15:4;;;;;;;:61;;30266:8;30276;30224:61;;;30243:8;30253;30224:61;30182:103;;;;30313:56;30356:12;30320:5;-1:-1:-1;;;;;30313:23:4;;30345:4;30313:38;;;;;;;;;;;;;-1:-1:-1;;;;;30313:38:4;-1:-1:-1;;;;;30313:38:4;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;30313:56:4;30299:70;;30398:84;30425:11;30438:12;30452:13;30467:4;-1:-1:-1;;;;;30467:12:4;;:14;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30467:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30467:14:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30467:14:4;30398:84;;:26;:84::i;:::-;30383:99;;29714:1082;;;;30511:15;30528;30556:6;-1:-1:-1;;;;;30547:15:4;:5;-1:-1:-1;;;;;30547:15:4;;:67;;30592:12;30611:1;30547:67;;;30571:1;30575:12;30547:67;30510:104;;;;30628:10;30659:1;30645:4;:11;:15;30641:1;:19;:79;;30717:3;30641:79;;;30663:51;30685:7;30694:6;30702:4;30707:1;30711;30707:5;30702:11;;;;;;;30663:51;30772:12;;;30782:1;30772:12;;;;;;;;;;-1:-1:-1;;;30734:51:4;;;;;;;;;;;;;;-1:-1:-1;;;;;30734:51:4;;;;;;;;;;;;;;;;;;;;;;30628:92;;-1:-1:-1;30734:9:4;;;;;;30744:10;;30756;;30628:92;;30772:12;;30734:51;;;;;;;;30772:12;;30734:51;;;;30772:12;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;30734:51:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30734:51:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;29748:3:4;;;;;-1:-1:-1;29714:1082:4;;-1:-1:-1;;;;;;;;;;29714:1082:4;10196:127;10279:5;;;10274:16;;;;10266:50;;;;;-1:-1:-1;;;10266:50:4;;;;;;;;;;;;-1:-1:-1;;;10266:50:4;;;;;;;;;;;;;;12437:311;12519:12;12561:1;12551:7;:11;12543:58;;;;-1:-1:-1;;;12543:58:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12630:1;12619:8;:12;:28;;;;;12646:1;12635:8;:12;12619:28;12611:78;;;;-1:-1:-1;;;12611:78:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12733:8;12709:21;:7;12721:8;12709:21;:11;:21;:::i;:::-;:32;;;;;;;12437:311;-1:-1:-1;;;;12437:311:4:o;10707:339::-;10782:14;10798;10842:6;-1:-1:-1;;;;;10832:16:4;:6;-1:-1:-1;;;;;10832:16:4;;;10824:63;;;;-1:-1:-1;;;10824:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10925:6;-1:-1:-1;;;;;10916:15:4;:6;-1:-1:-1;;;;;10916:15:4;;:53;;10954:6;10962;10916:53;;;10935:6;10943;10916:53;10897:72;;-1:-1:-1;10897:72:4;-1:-1:-1;;;;;;10987:20:4;;10979:60;;;;;-1:-1:-1;;;10979:60:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10707:339;;;;;:::o;17032:1342::-;17336:47;;;-1:-1:-1;;;17336:47:4;;-1:-1:-1;;;;;17336:47:4;;;;;;;;;;;;;;;;17243:12;;;;;;17351:7;17336:31;;;;;;:47;;;;;;;;;;;;;;;:31;:47;;;2:2:-1;;;;27:1;24;17:12;2:2;17336:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17336:47:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17336:47:4;-1:-1:-1;;;;;17336:61:4;;17332:142;;;17413:50;;;-1:-1:-1;;;17413:50:4;;-1:-1:-1;;;;;17413:50:4;;;;;;;;;;;;;;;;17428:7;17413:34;;;;;;:50;;;;;;;;;;;;;;;-1:-1:-1;17413:34:4;:50;;;2:2:-1;;;;27:1;24;17:12;2:2;17413:50:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17413:50:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;17332:142:4;17484:13;17499;17516:50;17542:7;17551:6;17559;17516:25;:50::i;:::-;17483:83;;;;17580:8;17592:1;17580:13;:30;;;;-1:-1:-1;17597:13:4;;17580:30;17576:792;;;17648:14;;-1:-1:-1;17664:14:4;;-1:-1:-1;17576:792:4;;;17710:19;17732:55;17752:14;17768:8;17778;17732:19;:55::i;:::-;17710:77;;17823:14;17805;:32;17801:557;;17883:10;17865:14;:28;;17857:76;;;;-1:-1:-1;;;17857:76:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17973:14;;-1:-1:-1;17989:14:4;-1:-1:-1;17989:14:4;17801:557;;;18043:19;18065:55;18085:14;18101:8;18111;18065:19;:55::i;:::-;18043:77;;18163:14;18145;:32;;18138:40;;;;18222:10;18204:14;:28;;18196:76;;;;-1:-1:-1;;;18196:76:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18312:14;-1:-1:-1;18328:14:4;;-1:-1:-1;17801:557:4;17576:792;;17032:1342;;;;;;;;;;;:::o;11640:384::-;11733:13;11748;11774:14;11793:26;11804:6;11812;11793:10;:26::i;:::-;11773:46;;;11830:13;11845;11875:32;11883:7;11892:6;11900;11875:7;:32::i;:::-;-1:-1:-1;;;;;11863:57:4;;:59;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11863:59:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11863:59:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11863:59:4;;;;;;;-1:-1:-1;;;;;11829:93:4;;;;-1:-1:-1;11829:93:4;;-1:-1:-1;;;;;;11955:16:4;;;;;;;:62;;11998:8;12008;11955:62;;;11975:8;11985;11955:62;11932:85;;;;-1:-1:-1;11640:384:4;-1:-1:-1;;;;;;;11640:384:4:o;12083:244::-;12175:12;12200:14;12219:26;12230:6;12238;12219:10;:26::i;:::-;12199:46;;;12277:32;12285:7;12294:6;12302;12277:7;:32::i;:::-;-1:-1:-1;;;;;12265:53:4;;:55;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12265:55:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12265:55:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12265:55:4;12255:65;;;12083:244;-1:-1:-1;;;;;12083:244:4:o;10329:140::-;10381:6;10407;;;:30;;-1:-1:-1;;10422:5:4;;;10436:1;10431;10422:5;10431:1;10417:15;;;;;:20;10407:30;10399:63;;;;;-1:-1:-1;;;10399:63:4;;;;;;;;;;;;-1:-1:-1;;;10399:63:4;;;;;;;;;;;;;;10064:126;10147:5;;;10142:16;;;;10134:49;;;;;-1:-1:-1;;;10134:49:4;;;;;;;;;;;;-1:-1:-1;;;10134:49:4;;;;;;;;;;;;;" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - }, - { - "internalType": "address", - "name": "_WETH", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "60c060405234801561001057600080fd5b50604051620048d9380380620048d98339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614754620001856000398061015f5280610cf05280610d2b5280610e0d528061102b52806113b5528061154052806119075280611a015280611ab75280611b855280611ccb5280611d535280611f8b528061200e52806120bd5280612189528061221e528061229252806127905280612a035280612a595280612a8d5280612b015280612ca15280612de45280612e6c525080610e9b5280610f7252806110f1528061112a52806112655280611443528061151e528061168e5280611c185280611d855280611edb52806122c4528061251d5280612715528061273e528061276e52806128db5280612a375280612d345280612e9e528061368952806136cc5280613bd75280613dc1528061410152806141af528061422f52506147546000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a2646970667358221220e9b429bd1d57acd866d9fea8002a8a0bc150ca7722db552e6aa9dbf609d0390a64736f6c63430006060033", - "bin": "60c060405234801561001057600080fd5b50604051620048d9380380620048d98339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614754620001856000398061015f5280610cf05280610d2b5280610e0d528061102b52806113b5528061154052806119075280611a015280611ab75280611b855280611ccb5280611d535280611f8b528061200e52806120bd5280612189528061221e528061229252806127905280612a035280612a595280612a8d5280612b015280612ca15280612de45280612e6c525080610e9b5280610f7252806110f1528061112a52806112655280611443528061151e528061168e5280611c185280611d855280611edb52806122c4528061251d5280612715528061273e528061276e52806128db5280612a375280612d345280612e9e528061368952806136cc5280613bd75280613dc1528061410152806141af528061422f52506147546000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a2646970667358221220e9b429bd1d57acd866d9fea8002a8a0bc150ca7722db552e6aa9dbf609d0390a64736f6c63430006060033", - "bin-runtime": "60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a2646970667358221220e9b429bd1d57acd866d9fea8002a8a0bc150ca7722db552e6aa9dbf609d0390a64736f6c63430006060033", - "srcmap": "16462:17960:4:-:0;;;16755:109;5:9:-1;2:2;;;27:1;24;17:12;2:2;16755:109:4;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16755:109:4;;;;;;;-1:-1:-1;;;;;;16817:18:4;;;;;;;;16845:12;;;;;16462:17960;;;;;;;;;;;;;;;;", - "srcmap-runtime": "16462:17960:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16914:10;-1:-1:-1;;;;;16928:4:4;16914:18;;16907:26;;;;16462:17960;;12:1:-1;9;2:12;20922:653:4;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20922:653:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;20922:653:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;27855:822;;5:9:-1;2:2;;;27:1;24;17:12;2:2;27855:822:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;27855:822:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;27855:822:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;27855:822:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;27855:822:4;;-1:-1:-1;27855:822:4;-1:-1:-1;;;;;;27855:822:4;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;27855:822:4;;;;;;;;;;;;;;;;;34178:242;;5:9:-1;2:2;;;27:1;24;17:12;2:2;34178:242:4;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;34178:242:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;34178:242:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;34178:242:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;34178:242:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;34178:242:4;;-1:-1:-1;34178:242:4;;-1:-1:-1;;;;;34178:242:4:i;21580:657::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21580:657:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;21580:657:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;25174:606::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;25174:606:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;25174:606:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;25174:606:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;25174:606:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;25174:606:4;;-1:-1:-1;25174:606:4;-1:-1:-1;;;;;;25174:606:4;;;;;;;;:::i;27050:800::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;27050:800:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;27050:800:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;27050:800:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;27050:800:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;27050:800:4;;-1:-1:-1;27050:800:4;-1:-1:-1;;;;;;27050:800:4;;;;;;;;:::i;33371:274::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33371:274:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;33371:274:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;33651:273;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33651:273:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;33651:273:4;;;;;;;;;;;;;;;;;:::i;23653:697::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;23653:697:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;23653:697:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;30807:692::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30807:692:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;30807:692:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;30807:692:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;30807:692:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;30807:692:4;;-1:-1:-1;30807:692:4;-1:-1:-1;;;;;;30807:692:4;;;;;;;;:::i;32328:813::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;32328:813:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;32328:813:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;32328:813:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;32328:813:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;32328:813:4;;-1:-1:-1;32328:813:4;-1:-1:-1;;;;;;32328:813:4;;;;;;;;:::i;26374:671::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;26374:671:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;26374:671:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;26374:671:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;26374:671:4;;-1:-1:-1;26374:671:4;-1:-1:-1;;;;;;26374:671:4;;;;;;;;:::i;25785:584::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;25785:584:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;25785:584:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;25785:584:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;25785:584:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;25785:584:4;;-1:-1:-1;25785:584:4;-1:-1:-1;;;;;;25785:584:4;;;;;;;;:::i;16584:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16584:38:4;;;:::i;:::-;;;;-1:-1:-1;;;;;16584:38:4;;;;;;;;;;;;;;33182:183;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33182:183:4;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;33182:183:4;;;;;;;;;;;;:::i;22968:680::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22968:680:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;22968:680:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;31504:819::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;31504:819:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;31504:819:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;31504:819:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;31504:819:4;;-1:-1:-1;31504:819:4;-1:-1:-1;;;;;;31504:819:4;;;;;;;;:::i;20086:831::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20086:831:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;20086:831:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16537:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16537:41:4;;;:::i;33930:242::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33930:242:4;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;33930:242:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;33930:242:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;33930:242:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;33930:242:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;33930:242:4;;-1:-1:-1;33930:242:4;;-1:-1:-1;;;;;33930:242:4:i;22242:650::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22242:650:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;22242:650:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18379:717::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18379:717:4;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;18379:717:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;19101:945;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;19101:945:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;28682:782::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;28682:782:4;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;28682:782:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;28682:782:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;28682:782:4;;-1:-1:-1;28682:782:4;-1:-1:-1;;;;;;28682:782:4;;;;;;;;:::i;20922:653::-;21152:16;21170:14;21133:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;21223:188:::1;21252:5;21271:4;21289:9;21312:14;21340:12;21374:4;21393:8;21223:15;:188::i;:::-;21196:215:::0;;-1:-1:-1;21196:215:4;-1:-1:-1;21421:51:4::1;21449:5:::0;21456:2;21196:215;21421:27:::1;:51::i;:::-;21488:4;-1:-1:-1::0;;;;;21482:20:4::1;;21503:9;21482:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;21482:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;21482:31:4;;;;21523:45;21554:2;21558:9;21523:30;:45::i;:::-;20922:653:::0;;;;;;;;;;:::o;27855:822::-;28064:21;28037:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;28134:4:4::1;28109:29;:4:::0;;-1:-1:-1;;28114:15:4;;28109:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;28109:21:4::1;-1:-1:-1::0;;;;;28109:29:4::1;;28101:68;;;::::0;;-1:-1:-1;;;28101:68:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;28101:68:4;;;;;;;;;;;;;::::1;;28189:52;28217:7;28226:8;28236:4;;28189:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;28189:27:4::1;::::0;-1:-1:-1;;;28189:52:4:i:1;:::-;28179:62;;28290:12;28259:7;28284:1;28267:7;:14;:18;28259:27;;;;;;;;;;;;;;:43;;28251:96;;;;-1:-1:-1::0;;;28251:96:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28357:136;28402:4;;28407:1;28402:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;28402:7:4::1;28411:10;28423:48;28445:7;28454:4;;28459:1;28454:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;28454:7:4::1;28463:4;;28468:1;28463:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;28463:7:4::1;28423:21;:48::i;:::-;28473:7;28481:1;28473:10;;;;;;;;;;;;;;28357:31;:136::i;:::-;28503:35;28509:7;28518:4;;28503:35;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;28532:4:4::1;::::0;-1:-1:-1;28503:5:4::1;::::0;-1:-1:-1;;28503:35:4:i:1;:::-;28554:4;-1:-1:-1::0;;;;;28548:20:4::1;;28569:7;28594:1;28577:7;:14;:18;28569:27;;;;;;;;;;;;;;28548:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;28548:49:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;28548:49:4;;;;28607:63;28638:2;28642:7;28667:1;28650:7;:14;:18;28642:27;;;;;;;;;;;;;;28607:30;:63::i;:::-;27855:822:::0;;;;;;;;;:::o;34178:242::-;34317:21;34361:52;34388:7;34397:9;34408:4;34361:26;:52::i;:::-;34354:59;;34178:242;;;;;:::o;21580:657::-;21877:12;21891;21915;21930:46;21952:7;21961:6;21969;21930:21;:46::i;:::-;21915:61;;21986:10;21999;:33;;22023:9;21999:33;;;-1:-1:-1;;21999:33:4;22042:77;;;-1:-1:-1;;;22042:77:4;;22067:10;22042:77;;;;22087:4;22042:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21986:46;;-1:-1:-1;;;;;;22042:24:4;;;;;:77;;;;;-1:-1:-1;;22042:77:4;;;;;;;;-1:-1:-1;22042:24:4;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;22042:77:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22042:77:4;;;;22150:80;22166:6;22174;22182:9;22193:10;22205;22217:2;22221:8;22150:15;:80::i;:::-;22129:101;;;;;;;;21580:657;;;;;;;;;;;;;;;;:::o;25174:606::-;25392:21;25373:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;25435:52:::1;25463:7;25472:8;25482:4;;25435:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;25435:27:4::1;::::0;-1:-1:-1;;;25435:52:4:i:1;:::-;25425:62;;25536:12;25505:7;25530:1;25513:7;:14;:18;25505:27;;;;;;;;;;;;;;:43;;25497:96;;;;-1:-1:-1::0;;;25497:96:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25603:136;25648:4;;25653:1;25648:7;;;;;;25603:136;25749:24;25755:7;25764:4;;25749:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;25770:2:4;;-1:-1:-1;25749:5:4::1;::::0;-1:-1:-1;;25749:24:4:i:1;27050:800::-:0;27259:21;27232:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;27329:4:4::1;27304:29;:4:::0;;-1:-1:-1;;27309:15:4;;27304:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;27304:21:4::1;-1:-1:-1::0;;;;;27304:29:4::1;;27296:68;;;::::0;;-1:-1:-1;;;27296:68:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;27296:68:4;;;;;;;;;;;;;::::1;;27384:52;27411:7;27420:9;27431:4;;27384:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;27384:26:4::1;::::0;-1:-1:-1;;;27384:52:4:i:1;:::-;27374:62;;27468:11;27454:7;27462:1;27454:10;;;;;;;;;;;;;;:25;;27446:74;;;;-1:-1:-1::0;;;27446:74:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33371:274:::0;33533:14;33570:68;33597:8;33607:9;33618:10;33630:7;33570:26;:68::i;:::-;33563:75;33371:274;-1:-1:-1;;;;;33371:274:4:o;33651:273::-;33813:13;33849:68;33875:9;33886;33897:10;33909:7;33849:25;:68::i;23653:697::-;23963:14;23989:12;24004:43;24026:7;24035:5;24042:4;24004:21;:43::i;:::-;23989:58;;24057:10;24070;:33;;24094:9;24070:33;;;-1:-1:-1;;24070:33:4;24113:77;;;-1:-1:-1;;;24113:77:4;;24138:10;24113:77;;;;24158:4;24113:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24057:46;;-1:-1:-1;;;;;;24113:24:4;;;;;:77;;;;;-1:-1:-1;;24113:77:4;;;;;;;;-1:-1:-1;24113:24:4;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;24113:77:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24113:77:4;;;;24212:131;24273:5;24280:9;24291:14;24307:12;24321:2;24325:8;24212:47;:131::i;:::-;24200:143;23653:697;-1:-1:-1;;;;;;;;;;;;;23653:697:4:o;30807:692::-;31035:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;31055:134:::1;31100:4;;31105:1;31100:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;31100:7:4::1;31109:10;31121:48;31143:7;31152:4;;31157:1;31152:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;31152:7:4::1;31161:4;;31166:1;31161:7;;;;;;31121:48;31171:8;31055:31;:134::i;:::-;31199:18;31227:4:::0;;-1:-1:-1;;31232:15:4;;31227:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;31227:21:4::1;-1:-1:-1::0;;;;;31220:39:4::1;;31260:2;31220:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;31220:43:4::1;-1:-1:-1::0;;;;;31220:43:4::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;31220:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;31220:43:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;31220:43:4;31273:44:::1;::::0;;31220:43:::1;31273:44:::0;;::::1;::::0;;;;;;;;;;;31220:43;;-1:-1:-1;31273:44:4::1;::::0;;;31308:4;;;;;;31273:44;::::1;::::0;31308:4;;31273:44;31308:4;31273:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;31314:2:4;;-1:-1:-1;31273:34:4::1;::::0;-1:-1:-1;;31273:44:4:i:1;:::-;31414:12:::0;31348:62:::1;31396:13:::0;31355:4;;-1:-1:-1;;31360:15:4;;31355:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;31355:21:4::1;-1:-1:-1::0;;;;;31348:39:4::1;;31388:2;31348:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;31348:43:4::1;-1:-1:-1::0;;;;;31348:43:4::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;31348:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;31348:43:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;31348:43:4;;:62:::1;:47;:62;:::i;:::-;:78;;31327:165;;;;-1:-1:-1::0;;;31327:165:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16741:1;30807:692:::0;;;;;;;:::o;32328:813::-;32585:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;32642:4:4::1;32617:29;:4:::0;;-1:-1:-1;;32622:15:4;;32617:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;32617:21:4::1;-1:-1:-1::0;;;;;32617:29:4::1;;32609:68;;;::::0;;-1:-1:-1;;;32609:68:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;32609:68:4;;;;;;;;;;;;;::::1;;32687:134;32732:4;;32737:1;32732:7;;;;;;32687:134;32831:55;32866:4;;32831:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;32880:4:4::1;::::0;-1:-1:-1;32831:34:4::1;::::0;-1:-1:-1;;32831:55:4:i:1;:::-;32913:37;::::0;;-1:-1:-1;;;32913:37:4;;32944:4:::1;32913:37;::::0;::::1;::::0;;;32896:14:::1;::::0;-1:-1:-1;;;;;32920:4:4::1;32913:22;::::0;::::1;::::0;:37;;;;;::::1;::::0;;;;;;;;;:22;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;32913:37:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;32913:37:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;32913:37:4;;-1:-1:-1;32968:25:4;;::::1;;32960:78;;;;-1:-1:-1::0;;;32960:78:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33054:4;-1:-1:-1::0;;;;;33048:20:4::1;;33069:9;33048:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;33048:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;33048:31:4;;;;33089:45;33120:2;33124:9;33089:30;:45::i;26374:671::-:0;26584:21;26557:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;26640:4:::1;-1:-1:-1::0;;;;;26629:15:4::1;:4;;26634:1;26629:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;26629:7:4::1;-1:-1:-1::0;;;;;26629:15:4::1;;26621:54;;;::::0;;-1:-1:-1;;;26621:54:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;26621:54:4;;;;;;;;;;;;;::::1;;26695:53;26723:7;26732:9;26743:4;;26695:53;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;26695:27:4::1;::::0;-1:-1:-1;;;26695:53:4:i:1;:::-;26685:63;;26797:12;26766:7;26791:1;26774:7;:14;:18;26766:27;;;;;;;;;;;;;;:43;;26758:96;;;;-1:-1:-1::0;;;26758:96:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26870:4;-1:-1:-1::0;;;;;26864:19:4::1;;26891:7;26899:1;26891:10;;;;;;;;;;;;;;26864:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;26864:40:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;26864:40:4;;;;;26927:4;-1:-1:-1::0;;;;;26921:20:4::1;;26942:48;26964:7;26973:4;;26978:1;26973:7;;;;;;26942:48;26992:7;27000:1;26992:10;;;;;;;;;;;;;;26921:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;26921:82:4::1;-1:-1:-1::0;;;;;26921:82:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;26921:82:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;26921:82:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;26921:82:4;26914:90:::1;;;;27014:24;27020:7;27029:4;;27014:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;27035:2:4;;-1:-1:-1;27014:5:4::1;::::0;-1:-1:-1;;27014:24:4:i:1;:::-;26374:671:::0;;;;;;;;:::o;25785:584::-;26003:21;25984:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;26046:52:::1;26073:7;26082:9;26093:4;;26046:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;26046:26:4::1;::::0;-1:-1:-1;;;26046:52:4:i:1;:::-;26036:62;;26130:11;26116:7;26124:1;26116:10;;;;;;;;;;;;;;:25;;26108:74;;;;-1:-1:-1::0;;;26108:74:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16584:38:::0;;;:::o;33182:183::-;33279:12;33310:48;33330:7;33339:8;33349;33310:19;:48::i;:::-;33303:55;33182:183;-1:-1:-1;;;;33182:183:4:o;22968:680::-;23227:14;23208:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;23269:188:::1;23298:5;23317:4;23335:9;23358:14;23386:12;23420:4;23439:8;23269:15;:188::i;:::-;23506:38;::::0;;-1:-1:-1;;;23506:38:4;;23538:4:::1;23506:38;::::0;::::1;::::0;;;23253:204;;-1:-1:-1;23467:78:4::1;::::0;-1:-1:-1;23495:5:4;;23502:2;;-1:-1:-1;;;;;23506:23:4;::::1;::::0;::::1;::::0;:38;;;;;::::1;::::0;;;;;;;;;:23;:38;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;23506:38:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;23506:38:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;23506:38:4;23467:27:::1;:78::i;:::-;23561:4;-1:-1:-1::0;;;;;23555:20:4::1;;23576:9;23555:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;23555:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;23555:31:4;;;;23596:45;23627:2;23631:9;23596:30;:45::i;31504:819::-:0;31754:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;31797:4:::1;-1:-1:-1::0;;;;;31786:15:4::1;:4;;31791:1;31786:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;31786:7:4::1;-1:-1:-1::0;;;;;31786:15:4::1;;31778:54;;;::::0;;-1:-1:-1;;;31778:54:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;31778:54:4;;;;;;;;;;;;;::::1;;31842:13;31858:9;31842:25;;31883:4;-1:-1:-1::0;;;;;31877:19:4::1;;31904:8;31877:38;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;31877:38:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;31877:38:4;;;;;31938:4;-1:-1:-1::0;;;;;31932:20:4::1;;31953:48;31975:7;31984:4;;31989:1;31984:7;;;;;;31953:48;32003:8;31932:80;;;;;;;;;;;;;-1:-1:-1::0;;;;;31932:80:4::1;-1:-1:-1::0;;;;;31932:80:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;31932:80:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;31932:80:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;31932:80:4;31925:88:::1;;;;32023:18;32051:4:::0;;-1:-1:-1;;32056:15:4;;32051:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;32051:21:4::1;-1:-1:-1::0;;;;;32044:39:4::1;;32084:2;32044:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;32044:43:4::1;-1:-1:-1::0;;;;;32044:43:4::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;32044:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;32044:43:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;32044:43:4;32097:44:::1;::::0;;32044:43:::1;32097:44:::0;;::::1;::::0;;;;;;;;;;;32044:43;;-1:-1:-1;32097:44:4::1;::::0;;;32132:4;;;;;;32097:44;::::1;::::0;32132:4;;32097:44;32132:4;32097:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;32138:2:4;;-1:-1:-1;32097:34:4::1;::::0;-1:-1:-1;;32097:44:4:i:1;:::-;32238:12:::0;32172:62:::1;32220:13:::0;32179:4;;-1:-1:-1;;32184:15:4;;32179:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;32179:21:4::1;-1:-1:-1::0;;;;;32172:39:4::1;;32212:2;32172:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;32172:43:4::1;-1:-1:-1::0;;;;;32172:43:4::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;20086:831:4::0;20332:12;20346;20313:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;20370:12:::1;20385:46;20407:7;20416:6;20424;20385:21;:46::i;:::-;20441:59;::::0;;-1:-1:-1;;;20441:59:4;;20472:10:::1;20441:59;::::0;::::1;::::0;-1:-1:-1;;;;;20441:30:4;::::1;:59:::0;;;;;;;;;;;;;;20370:61;;-1:-1:-1;20441:30:4;;::::1;::::0;:59;;;;;::::1;::::0;;;;;;;;;-1:-1:-1;20441:30:4;:59;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;20441:59:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;20441:59:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;20567:26:4::1;::::0;;-1:-1:-1;;;20567:26:4;;-1:-1:-1;;;;;20567:26:4;;::::1;;::::0;::::1;::::0;;;20537:12:::1;::::0;;;20567:22;;::::1;::::0;::::1;::::0;:26;;;;;;;;;;;20537:12;20567:22;:26;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;20567:26:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;20567:26:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;20567:26:4;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;20567:26:4;-1:-1:-1;20604:14:4::1;20623:40;20648:6:::0;20656;20623:24:::1;:40::i;:::-;20603:60;;;20704:6;-1:-1:-1::0;;;;;20694:16:4::1;:6;-1:-1:-1::0;;;;;20694:16:4::1;;:58;;20735:7;20744;20694:58;;;20714:7;20723;20694:58;20673:79:::0;;-1:-1:-1;20673:79:4;-1:-1:-1;20770:21:4;;::::1;;20762:69;;;;-1:-1:-1::0;;;20762:69:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20860:10;20849:7;:21;;20841:69;;;;-1:-1:-1::0;;;20841:69:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16741:1;;;;20086:831:::0;;;;;;;;;;;:::o;16537:41::-;;;:::o;33930:242::-;34069:21;34113:52;34141:7;34150:8;34160:4;34113:27;:52::i;22242:650::-;22523:16;22541:14;22567:12;22582:43;22604:7;22613:5;22620:4;22582:21;:43::i;:::-;22567:58;;22635:10;22648;:33;;22672:9;22648:33;;;-1:-1:-1;;22648:33:4;22691:77;;;-1:-1:-1;;;22691:77:4;;22716:10;22691:77;;;;22736:4;22691:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22635:46;;-1:-1:-1;;;;;;22691:24:4;;;;;:77;;;;;-1:-1:-1;;22691:77:4;;;;;;;;-1:-1:-1;22691:24:4;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;22691:77:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22691:77:4;;;;22805:80;22824:5;22831:9;22842:14;22858:12;22872:2;22876:8;22805:18;:80::i;:::-;22778:107;;;;-1:-1:-1;22242:650:4;-1:-1:-1;;;;;;;;;;;;;22242:650:4:o;18379:717::-;18658:12;18672;18686:14;18639:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;18733:85:::1;18747:6;18755;18763:14;18779;18795:10;18807;18733:13;:85::i;:::-;18712:106:::0;;-1:-1:-1;18712:106:4;-1:-1:-1;18828:12:4::1;18843:46;18865:7;18874:6:::0;18882;18843:21:::1;:46::i;:::-;18828:61;;18899:66;18931:6;18939:10;18951:4;18957:7;18899:31;:66::i;:::-;18975;19007:6;19015:10;19027:4;19033:7;18975:31;:66::i;:::-;19075:4;-1:-1:-1::0;;;;;19063:22:4::1;;19086:2;19063:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;19063:26:4::1;-1:-1:-1::0;;;;;19063:26:4::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;19063:26:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19063:26:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;19063:26:4;18379:717;;;;-1:-1:-1;19063:26:4;;-1:-1:-1;18379:717:4;;-1:-1:-1;;;;;;;;;18379:717:4:o;19101:945::-;19347:16;19365:14;19381;19328:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;19434:169:::1;19461:5;19480:4;19498:18;19530:9;19553:14;19581:12;19434:13;:169::i;:::-;19407:196:::0;;-1:-1:-1;19407:196:4;-1:-1:-1;19613:12:4::1;19628:43;19650:7;19659:5:::0;19666:4:::1;19628:21;:43::i;:::-;19613:58;;19681:69;19713:5;19720:10;19732:4;19738:11;19681:31;:69::i;:::-;19766:4;-1:-1:-1::0;;;;;19760:19:4::1;;19787:9;19760:39;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;19760:39:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19760:39:4;;;;;19822:4;-1:-1:-1::0;;;;;19816:20:4::1;;19837:4;19843:9;19816:37;;;;;;;;;;;;;-1:-1:-1::0;;;;;19816:37:4::1;-1:-1:-1::0;;;;;19816:37:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;19816:37:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19816:37:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;19816:37:4;19809:45:::1;;;;19888:4;-1:-1:-1::0;;;;;19876:22:4::1;;19899:2;19876:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;19876:26:4::1;-1:-1:-1::0;;;;;19876:26:4::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;19876:26:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19876:26:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;19876:26:4;;-1:-1:-1;19951:9:4::1;:21:::0;-1:-1:-1;19947:92:4::1;;;19974:65;20005:10;20029:9;20017;:21;19974:30;:65::i;:::-;16741:1;19101:945:::0;;;;;;;;;;;:::o;28682:782::-;28889:21;28862:8;16690:15;16678:8;:27;;16670:61;;;;;-1:-1:-1;;;16670:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16670:61:4;;;;;;;;;;;;;;;28945:4:::1;-1:-1:-1::0;;;;;28934:15:4::1;:4;;28939:1;28934:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;28934:7:4::1;-1:-1:-1::0;;;;;28934:15:4::1;;28926:54;;;::::0;;-1:-1:-1;;;28926:54:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;28926:54:4;;;;;;;;;;;;;::::1;;29000:52;29027:7;29036:9;29047:4;;29000:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;29000:26:4::1;::::0;-1:-1:-1;;;29000:52:4:i:1;:::-;28990:62;;29084:9;29070:7;29078:1;29070:10;;;;;;;;;;;;;;:23;;29062:72;;;;-1:-1:-1::0;;;29062:72:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29150:4;-1:-1:-1::0;;;;;29144:19:4::1;;29171:7;29179:1;29171:10;;;;;;;;;;;;;;29144:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;29144:40:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;29144:40:4;;;;;29207:4;-1:-1:-1::0;;;;;29201:20:4::1;;29222:48;29244:7;29253:4;;29258:1;29253:7;;;;;;29222:48;29272:7;29280:1;29272:10;;;;;;;;;;;;;;29201:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;29201:82:4::1;-1:-1:-1::0;;;;;29201:82:4::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;29201:82:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;29201:82:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;29201:82:4;29194:90:::1;;;;29294:24;29300:7;29309:4;;29294:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;29315:2:4;;-1:-1:-1;29294:5:4::1;::::0;-1:-1:-1;;29294:24:4:i:1;:::-;29379:7;29387:1;29379:10;;;;;;;;;;;;;;29367:9;:22;29363:94;;;29391:66;29422:10;29446:7;29454:1;29446:10;;;;;;;;;;;;;;29434:9;:22;29391:30;:66::i;1556:357::-:0;1749:45;;;-1:-1:-1;;;;;1749:45:4;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1749:45:4;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1738:57:4;;;;1703:12;;1717:17;;1738:10;;;;1749:45;1738:57;;;25:18:-1;1738:57:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1738:57:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1702:93:4;;;;1813:7;:57;;;;-1:-1:-1;1825:11:4;;:16;;:44;;;1856:4;1845:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1845:24:4;1825:44;1805:101;;;;;-1:-1:-1;;;1805:101:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1556:357;;;;;:::o;2323:192::-;2430:12;;;2392;2430;;;;;;;;;-1:-1:-1;;;;;2409:7:4;;;2423:5;;2409:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2409:34:4;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2391:52:4;;;2461:7;2453:55;;;;-1:-1:-1;;;2453:55:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:192;;;:::o;14100:543::-;14201:21;14257:1;14242:4;:11;:16;;14234:56;;;;;-1:-1:-1;;;14234:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;14321:4;:11;14310:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14310:23:4;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;14310:23:4;;14300:33;;14356:8;14343:7;14351:1;14343:10;;;;;;;;;;;;;:21;;;;;14379:6;14374:263;14405:1;14391:4;:11;:15;14387:1;:19;14374:263;;;14428:14;14444:15;14463:42;14475:7;14484:4;14489:1;14484:7;;;;;;;;;;;;;;14493:4;14498:1;14502;14498:5;14493:11;;;;;;;;;;;;;;14463;:42::i;:::-;14427:78;;;;14536:90;14549:7;14557:1;14549:10;;;;;;;;;;;;;;14561:9;14572:10;14584:41;14595:7;14604:4;14609:1;14604:7;;;;;;;;;;;;;;14613:4;14618:1;14622;14618:5;14613:11;;;;;;;;;;;;;;14584:10;:41::i;:::-;14536:12;:90::i;:::-;14519:7;14527:1;14531;14527:5;14519:14;;;;;;;;;;;;;;;;;:107;-1:-1:-1;;14408:3:4;;14374:263;;;;14100:543;;;;;:::o;11135:450::-;11224:12;11249:14;11265;11283:26;11294:6;11302;11283:10;:26::i;:::-;11431:32;;;-1:-1:-1;;11431:32:4;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;11431:32:4;;;;;11421:43;;;;;;-1:-1:-1;;;;;;11349:226:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;11349:226:4;;;;;;;11339:237;;;;;;;;;11135:450;-1:-1:-1;;;;;11135:450:4:o;1919:398::-;2142:51;;;-1:-1:-1;;;;;2142:51:4;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2142:51:4;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;2131:63:4;;;;2096:12;;2110:17;;2131:10;;;;2142:51;2131:63;;;25:18:-1;2131:63:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2131:63:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2095:99:4;;;;2212:7;:57;;;;-1:-1:-1;2224:11:4;;:16;;:44;;;2255:4;2244:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2244:24:4;2224:44;2204:106;;;;-1:-1:-1;;;2204:106:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1919:398;;;;;;:::o;24457:712::-;24563:6;24558:605;24589:1;24575:4;:11;:15;24571:1;:19;24558:605;;;24612:13;24627:14;24646:4;24651:1;24646:7;;;;;;;;;;;;;;24655:4;24660:1;24664;24660:5;24655:11;;;;;;;;;;;;;;24611:56;;;;24682:14;24701:39;24726:5;24733:6;24701:24;:39::i;:::-;24681:59;;;24754:14;24771:7;24779:1;24783;24779:5;24771:14;;;;;;;;;;;;;;24754:31;;24800:15;24817;24845:6;-1:-1:-1;;;;;24836:15:4;:5;-1:-1:-1;;;;;24836:15:4;;:61;;24878:9;24894:1;24836:61;;;24860:1;24864:9;24836:61;24799:98;;;;24911:10;24942:1;24928:4;:11;:15;24924:1;:19;:79;;25000:3;24924:79;;;24946:51;24968:7;24977:6;24985:4;24990:1;24994;24990:5;24985:11;;;;;;;;;;;;;;24946:21;:51::i;:::-;24911:92;;25029:45;25051:7;25060:5;25067:6;25029:21;:45::i;:::-;-1:-1:-1;;;;;25017:63:4;;25098:10;25110;25122:2;25136:1;25126:12;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;108:14;25126:12:4;87:42:-1;143:17;;-1:-1;25126:12:4;;25017:135;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25017:135:4;-1:-1:-1;;;;;25017:135:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;25017:135:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;25017:135:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;24592:3:4;;;;;-1:-1:-1;24558:605:4;;-1:-1:-1;;;;;;;;24558:605:4;;;24457:712;;;:::o;14721:564::-;14822:21;14878:1;14863:4;:11;:16;;14855:56;;;;;-1:-1:-1;;;14855:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;14942:4;:11;14931:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14931:23:4;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;14931:23:4;;14921:33;;14994:9;14964:7;14989:1;14972:7;:14;:18;14964:27;;;;;;;;;;;;;;;;;:39;15027:11;;-1:-1:-1;;15027:15:4;15013:266;15044:5;;15013:266;;15071:14;15087:15;15106:42;15118:7;15127:4;15136:1;15132;:5;15127:11;;;;;;;;;;;;;;15140:4;15145:1;15140:7;;;;;;;15106:42;15070:78;;;;15179:89;15191:7;15199:1;15191:10;;;;;;;;;;;;;;15203:9;15214:10;15226:41;15237:7;15246:4;15255:1;15251;:5;15246:11;;;;;;;;;;;;;;15259:4;15264:1;15259:7;;;;;;;15226:41;15179:11;:89::i;:::-;15162:7;15174:1;15170;:5;15162:14;;;;;;;;;;;;;;;;;:106;-1:-1:-1;;;;15051:3:4;15013:266;;12867:540;12974:14;13019:1;13008:8;:12;13000:65;;;;-1:-1:-1;;;13000:65:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13095:1;13083:9;:13;:31;;;;;13113:1;13100:10;:14;13083:31;13075:81;;;;-1:-1:-1;;;13075:81:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13166:20;13189:38;13202:24;13207:5;13218:7;13202:24;:15;:24;:::i;:::-;13189:8;;:38;:12;:38;:::i;:::-;13166:61;-1:-1:-1;13237:14:4;13254:31;13166:61;13274:10;13254:31;:19;:31;:::i;:::-;13237:48;-1:-1:-1;13295:16:4;13314:41;13339:15;13314:20;:9;13328:5;13314:20;:13;:20;:::i;:::-;:24;:41;:24;:41;:::i;:::-;13295:60;;13389:11;13377:9;:23;;;;;;;12867:540;-1:-1:-1;;;;;;;;12867:540:4:o;13525:496::-;13632:13;13677:1;13665:9;:13;13657:67;;;;-1:-1:-1;;;13657:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13754:1;13742:9;:13;:31;;;;;13772:1;13759:10;:14;13742:31;13734:81;;;;-1:-1:-1;;;13734:81:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13825:14;13842:35;13871:5;13842:24;:9;13856;13842:24;:13;:24;:::i;:::-;:28;:35;:28;:35;:::i;:::-;13825:52;-1:-1:-1;13887:16:4;13906:55;13936:24;13941:5;13952:7;13936:24;:15;:24;:::i;:::-;13906:25;:10;13921:9;13906:25;:14;:25;:::i;:55::-;13887:74;;13982:32;14012:1;13995:11;13983:9;:23;;;;;;;13982:32;:29;:32;:::i;:::-;13971:43;13525:496;-1:-1:-1;;;;;;;13525:496:4:o;29607:1195::-;29719:6;29714:1082;29745:1;29731:4;:11;:15;29727:1;:19;29714:1082;;;29768:13;29783:14;29802:4;29807:1;29802:7;;;;;;;;;;;;;;29811:4;29816:1;29820;29816:5;29811:11;;;;;;;;;;;;;;29767:56;;;;29838:14;29857:39;29882:5;29889:6;29857:24;:39::i;:::-;29837:59;;;29910:16;29941:45;29963:7;29972:5;29979:6;29941:21;:45::i;:::-;29910:77;;30001:16;30031:17;30117:13;30132;30150:4;-1:-1:-1;;;;;30150:16:4;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30150:18:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30150:18:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30150:18:4;;;;;;;-1:-1:-1;;;;;30116:52:4;;;;-1:-1:-1;30116:52:4;;-1:-1:-1;30183:17:4;;-1:-1:-1;;;;;30224:15:4;;;;;;;:61;;30266:8;30276;30224:61;;;30243:8;30253;30224:61;30182:103;;;;30313:56;30356:12;30320:5;-1:-1:-1;;;;;30313:23:4;;30345:4;30313:38;;;;;;;;;;;;;-1:-1:-1;;;;;30313:38:4;-1:-1:-1;;;;;30313:38:4;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;30313:56:4;30299:70;;30398:84;30425:11;30438:12;30452:13;30467:4;-1:-1:-1;;;;;30467:12:4;;:14;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30467:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30467:14:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30467:14:4;30398:84;;:26;:84::i;:::-;30383:99;;29714:1082;;;;30511:15;30528;30556:6;-1:-1:-1;;;;;30547:15:4;:5;-1:-1:-1;;;;;30547:15:4;;:67;;30592:12;30611:1;30547:67;;;30571:1;30575:12;30547:67;30510:104;;;;30628:10;30659:1;30645:4;:11;:15;30641:1;:19;:79;;30717:3;30641:79;;;30663:51;30685:7;30694:6;30702:4;30707:1;30711;30707:5;30702:11;;;;;;;30663:51;30772:12;;;30782:1;30772:12;;;;;;;;;;-1:-1:-1;;;30734:51:4;;;;;;;;;;;;;;-1:-1:-1;;;;;30734:51:4;;;;;;;;;;;;;;;;;;;;;;30628:92;;-1:-1:-1;30734:9:4;;;;;;30744:10;;30756;;30628:92;;30772:12;;30734:51;;;;;;;;30772:12;;30734:51;;;;30772:12;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;30734:51:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30734:51:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;29748:3:4;;;;;-1:-1:-1;29714:1082:4;;-1:-1:-1;;;;;;;;;;29714:1082:4;10196:127;10279:5;;;10274:16;;;;10266:50;;;;;-1:-1:-1;;;10266:50:4;;;;;;;;;;;;-1:-1:-1;;;10266:50:4;;;;;;;;;;;;;;12437:311;12519:12;12561:1;12551:7;:11;12543:58;;;;-1:-1:-1;;;12543:58:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12630:1;12619:8;:12;:28;;;;;12646:1;12635:8;:12;12619:28;12611:78;;;;-1:-1:-1;;;12611:78:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12733:8;12709:21;:7;12721:8;12709:21;:11;:21;:::i;:::-;:32;;;;;;;12437:311;-1:-1:-1;;;;12437:311:4:o;10707:339::-;10782:14;10798;10842:6;-1:-1:-1;;;;;10832:16:4;:6;-1:-1:-1;;;;;10832:16:4;;;10824:63;;;;-1:-1:-1;;;10824:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10925:6;-1:-1:-1;;;;;10916:15:4;:6;-1:-1:-1;;;;;10916:15:4;;:53;;10954:6;10962;10916:53;;;10935:6;10943;10916:53;10897:72;;-1:-1:-1;10897:72:4;-1:-1:-1;;;;;;10987:20:4;;10979:60;;;;;-1:-1:-1;;;10979:60:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10707:339;;;;;:::o;17032:1342::-;17336:47;;;-1:-1:-1;;;17336:47:4;;-1:-1:-1;;;;;17336:47:4;;;;;;;;;;;;;;;;17243:12;;;;;;17351:7;17336:31;;;;;;:47;;;;;;;;;;;;;;;:31;:47;;;2:2:-1;;;;27:1;24;17:12;2:2;17336:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17336:47:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17336:47:4;-1:-1:-1;;;;;17336:61:4;;17332:142;;;17413:50;;;-1:-1:-1;;;17413:50:4;;-1:-1:-1;;;;;17413:50:4;;;;;;;;;;;;;;;;17428:7;17413:34;;;;;;:50;;;;;;;;;;;;;;;-1:-1:-1;17413:34:4;:50;;;2:2:-1;;;;27:1;24;17:12;2:2;17413:50:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17413:50:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;17332:142:4;17484:13;17499;17516:50;17542:7;17551:6;17559;17516:25;:50::i;:::-;17483:83;;;;17580:8;17592:1;17580:13;:30;;;;-1:-1:-1;17597:13:4;;17580:30;17576:792;;;17648:14;;-1:-1:-1;17664:14:4;;-1:-1:-1;17576:792:4;;;17710:19;17732:55;17752:14;17768:8;17778;17732:19;:55::i;:::-;17710:77;;17823:14;17805;:32;17801:557;;17883:10;17865:14;:28;;17857:76;;;;-1:-1:-1;;;17857:76:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17973:14;;-1:-1:-1;17989:14:4;-1:-1:-1;17989:14:4;17801:557;;;18043:19;18065:55;18085:14;18101:8;18111;18065:19;:55::i;:::-;18043:77;;18163:14;18145;:32;;18138:40;;;;18222:10;18204:14;:28;;18196:76;;;;-1:-1:-1;;;18196:76:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18312:14;-1:-1:-1;18328:14:4;;-1:-1:-1;17801:557:4;17576:792;;17032:1342;;;;;;;;;;;:::o;11640:384::-;11733:13;11748;11774:14;11793:26;11804:6;11812;11793:10;:26::i;:::-;11773:46;;;11830:13;11845;11875:32;11883:7;11892:6;11900;11875:7;:32::i;:::-;-1:-1:-1;;;;;11863:57:4;;:59;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11863:59:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11863:59:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11863:59:4;;;;;;;-1:-1:-1;;;;;11829:93:4;;;;-1:-1:-1;11829:93:4;;-1:-1:-1;;;;;;11955:16:4;;;;;;;:62;;11998:8;12008;11955:62;;;11975:8;11985;11955:62;11932:85;;;;-1:-1:-1;11640:384:4;-1:-1:-1;;;;;;;11640:384:4:o;12083:244::-;12175:12;12200:14;12219:26;12230:6;12238;12219:10;:26::i;:::-;12199:46;;;12277:32;12285:7;12294:6;12302;12277:7;:32::i;:::-;-1:-1:-1;;;;;12265:53:4;;:55;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12265:55:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12265:55:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12265:55:4;12255:65;;;12083:244;-1:-1:-1;;;;;12083:244:4:o;10329:140::-;10381:6;10407;;;:30;;-1:-1:-1;;10422:5:4;;;10436:1;10431;10422:5;10431:1;10417:15;;;;;:20;10407:30;10399:63;;;;;-1:-1:-1;;;10399:63:4;;;;;;;;;;;;-1:-1:-1;;;10399:63:4;;;;;;;;;;;;;;10064:126;10147:5;;;10142:16;;;;10134:49;;;;;-1:-1:-1;;;10134:49:4;;;;;;;;;;;;-1:-1:-1;;;10134:49:4;;;;;;;;;;;;;" - }, - "contracts/.flattened/DXswapRouter.sol:IDXswapFactory": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "PairCreated", - "type": "event" - }, - { - "inputs": [], - "name": "INIT_CODE_PAIR_HASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "allPairs", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "allPairsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "createPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeTo", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeToSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "getPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "protocolFeeDenominator", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeToSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_protocolFee", - "type": "uint8" - } - ], - "name": "setProtocolFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "swapFee", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "PairCreated", - "type": "event" - }, - { - "inputs": [], - "name": "INIT_CODE_PAIR_HASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "allPairs", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "allPairsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "createPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeTo", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeToSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "getPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "protocolFeeDenominator", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeToSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_protocolFee", - "type": "uint8" - } - ], - "name": "setProtocolFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "swapFee", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/.flattened/DXswapRouter.sol:IDXswapPair": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/.flattened/DXswapRouter.sol:IDXswapRouter": { - "abi": [ - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/.flattened/DXswapRouter.sol:IERC20": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/.flattened/DXswapRouter.sol:IWETH": { - "abi": [ - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/.flattened/DXswapRouter.sol:SafeMath": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207c41297346dc623b8f4b8e3b1a7abe246cbbc0113900a99c4528d3b91008eb9364736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0x41297346DC623B8F4B8E3B1A7ABE246CBBC0113900A99C4528D3B91008 0xEB SWAP4 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "10041:430:4:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207c41297346dc623b8f4b8e3b1a7abe246cbbc0113900a99c4528d3b91008eb9364736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0x41297346DC623B8F4B8E3B1A7ABE246CBBC0113900A99C4528D3B91008 0xEB SWAP4 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "10041:430:4:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207c41297346dc623b8f4b8e3b1a7abe246cbbc0113900a99c4528d3b91008eb9364736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207c41297346dc623b8f4b8e3b1a7abe246cbbc0113900a99c4528d3b91008eb9364736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207c41297346dc623b8f4b8e3b1a7abe246cbbc0113900a99c4528d3b91008eb9364736f6c63430006060033", - "srcmap": "10041:430:4:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "10041:430:4:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/.flattened/DXswapRouter.sol:TransferHelper": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220391c9c1d88e7c66ad4d728ca602c0e3fd6989ef9d0b5b6bf210c442b9572c26864736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY SHR SWAP13 SAR DUP9 0xE7 0xC6 PUSH11 0xD4D728CA602C0E3FD6989E 0xF9 0xD0 0xB5 0xB6 0xBF 0x21 0xC DIFFICULTY 0x2B SWAP6 PUSH19 0xC26864736F6C63430006060033000000000000 ", - "sourceMap": "1167:1350:4:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220391c9c1d88e7c66ad4d728ca602c0e3fd6989ef9d0b5b6bf210c442b9572c26864736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY SHR SWAP13 SAR DUP9 0xE7 0xC6 PUSH11 0xD4D728CA602C0E3FD6989E 0xF9 0xD0 0xB5 0xB6 0xBF 0x21 0xC DIFFICULTY 0x2B SWAP6 PUSH19 0xC26864736F6C63430006060033000000000000 ", - "sourceMap": "1167:1350:4:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220391c9c1d88e7c66ad4d728ca602c0e3fd6989ef9d0b5b6bf210c442b9572c26864736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220391c9c1d88e7c66ad4d728ca602c0e3fd6989ef9d0b5b6bf210c442b9572c26864736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220391c9c1d88e7c66ad4d728ca602c0e3fd6989ef9d0b5b6bf210c442b9572c26864736f6c63430006060033", - "srcmap": "1167:1350:4:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "1167:1350:4:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/DXswapRouter.sol:DXswapRouter": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - }, - { - "internalType": "address", - "name": "_WETH", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60c060405234801561001057600080fd5b50604051620048d9380380620048d98339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614754620001856000398061015f5280610cf05280610d2b5280610e0d528061102b52806113b5528061154052806119075280611a015280611ab75280611b855280611ccb5280611d535280611f8b528061200e52806120bd5280612189528061221e528061229252806127905280612a035280612a595280612a8d5280612b015280612ca15280612de45280612e6c525080610e9b5280610f7252806110f1528061112a52806112655280611443528061151e528061168e5280611c185280611d855280611edb52806122c4528061251d5280612715528061273e528061276e52806128db5280612a375280612d345280612e9e528061368952806136cc5280613bd75280613dc1528061410152806141af528061422f52506147546000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a264697066735822122049f12134b93be9f071e2d709d91dd1986fcb03120573d2fce354a1171396944364736f6c63430006060033", - "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x48D9 CODESIZE SUB DUP1 PUSH3 0x48D9 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0x80 MSTORE SWAP2 SHL AND PUSH1 0xA0 MSTORE PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x4754 PUSH3 0x185 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x15F MSTORE DUP1 PUSH2 0xCF0 MSTORE DUP1 PUSH2 0xD2B MSTORE DUP1 PUSH2 0xE0D MSTORE DUP1 PUSH2 0x102B MSTORE DUP1 PUSH2 0x13B5 MSTORE DUP1 PUSH2 0x1540 MSTORE DUP1 PUSH2 0x1907 MSTORE DUP1 PUSH2 0x1A01 MSTORE DUP1 PUSH2 0x1AB7 MSTORE DUP1 PUSH2 0x1B85 MSTORE DUP1 PUSH2 0x1CCB MSTORE DUP1 PUSH2 0x1D53 MSTORE DUP1 PUSH2 0x1F8B MSTORE DUP1 PUSH2 0x200E MSTORE DUP1 PUSH2 0x20BD MSTORE DUP1 PUSH2 0x2189 MSTORE DUP1 PUSH2 0x221E MSTORE DUP1 PUSH2 0x2292 MSTORE DUP1 PUSH2 0x2790 MSTORE DUP1 PUSH2 0x2A03 MSTORE DUP1 PUSH2 0x2A59 MSTORE DUP1 PUSH2 0x2A8D MSTORE DUP1 PUSH2 0x2B01 MSTORE DUP1 PUSH2 0x2CA1 MSTORE DUP1 PUSH2 0x2DE4 MSTORE DUP1 PUSH2 0x2E6C MSTORE POP DUP1 PUSH2 0xE9B MSTORE DUP1 PUSH2 0xF72 MSTORE DUP1 PUSH2 0x10F1 MSTORE DUP1 PUSH2 0x112A MSTORE DUP1 PUSH2 0x1265 MSTORE DUP1 PUSH2 0x1443 MSTORE DUP1 PUSH2 0x151E MSTORE DUP1 PUSH2 0x168E MSTORE DUP1 PUSH2 0x1C18 MSTORE DUP1 PUSH2 0x1D85 MSTORE DUP1 PUSH2 0x1EDB MSTORE DUP1 PUSH2 0x22C4 MSTORE DUP1 PUSH2 0x251D MSTORE DUP1 PUSH2 0x2715 MSTORE DUP1 PUSH2 0x273E MSTORE DUP1 PUSH2 0x276E MSTORE DUP1 PUSH2 0x28DB MSTORE DUP1 PUSH2 0x2A37 MSTORE DUP1 PUSH2 0x2D34 MSTORE DUP1 PUSH2 0x2E9E MSTORE DUP1 PUSH2 0x3689 MSTORE DUP1 PUSH2 0x36CC MSTORE DUP1 PUSH2 0x3BD7 MSTORE DUP1 PUSH2 0x3DC1 MSTORE DUP1 PUSH2 0x4101 MSTORE DUP1 PUSH2 0x41AF MSTORE DUP1 PUSH2 0x422F MSTORE POP PUSH2 0x4754 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8803DBEE GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xA1C JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0xA31 JUMPI DUP1 PUSH4 0xDED9382A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8E33700 EQ PUSH2 0xB59 JUMPI DUP1 PUSH4 0xF305D719 EQ PUSH2 0xBD9 JUMPI DUP1 PUSH4 0xFB3BDB41 EQ PUSH2 0xC1F JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x8803DBEE EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xAF2979EB EQ PUSH2 0x8E8 JUMPI DUP1 PUSH4 0xB6F9DE95 EQ PUSH2 0x93B JUMPI DUP1 PUSH4 0xBAA2ABDE EQ PUSH2 0x9BF JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x52707D8C GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x52707D8C EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0x571FD012 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x5B0D5984 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x5C11D795 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x791AC947 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0x7FF36AB5 EQ PUSH2 0x767 JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x2751CEC EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x18CBAFE5 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x2195995C EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x38ED1739 EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x4A25D94A EQ PUSH2 0x4A8 JUMPI PUSH2 0x188 JUMP JUMPDEST CALLDATASIZE PUSH2 0x188 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x186 JUMPI INVALID JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B3 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x10EA SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x160 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH2 0x100 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x140 ADD CALLDATALOAD PUSH2 0x1120 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x121A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1365 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x1508 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x5EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x1516 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x65E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x6B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x6F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x71A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x72C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x18B9 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x77D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x79E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1B3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x80E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1E90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x1FAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x1FC2 JUMP JUMPDEST PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x9E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x24CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x2713 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x2737 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0xB0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x2764 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x2878 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0xBEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x29B4 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xC35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xC56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xC89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2C59 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xCEA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP10 PUSH32 0x0 DUP11 DUP11 DUP11 ADDRESS DUP11 PUSH2 0x24CF JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP PUSH2 0xD29 DUP10 DUP7 DUP6 PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xDB1 DUP6 DUP4 PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0xE03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0xE3D JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEF4 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0xF07 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFEA DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0xFD0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF9E JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x33BD JUMP JUMPDEST DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFDD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x347D JUMP JUMPDEST PUSH2 0x1029 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1068 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x10D2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3820 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1150 PUSH32 0x0 DUP16 DUP16 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x115F JUMPI DUP13 PUSH2 0x1163 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1200 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 PUSH2 0x24CF JUMP JUMPDEST DUP1 SWAP5 POP DUP2 SWAP6 POP POP POP POP POP SWAP12 POP SWAP12 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1260 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x12BE PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x12D1 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1326 DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST PUSH2 0x10DF DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x13AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x13E5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x143E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x149C PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x14AC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x397F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x3A80 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1564 PUSH32 0x0 DUP14 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x1573 JUMPI DUP12 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1613 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x1FC2 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1668 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x16DD DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x16D7 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST DUP11 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x16EF JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x177E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP9 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x17C0 SWAP3 SWAP1 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1872 DUP3 DUP9 DUP9 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x17D5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x184E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST LT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x18FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1937 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1990 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19A0 DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST PUSH2 0x19DE DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP7 DUP2 LT ISZERO PUSH2 0x1AB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x18AF DUP5 DUP3 PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1B83 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1BBA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C13 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C71 PUSH32 0x0 CALLVALUE DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1C84 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1D05 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1DB1 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1DBE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E29 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x1E47 JUMPI INVALID JUMPDEST PUSH2 0x1E86 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1ED6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1F34 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1F44 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FBA DUP5 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2008 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2037 DUP9 PUSH32 0x0 DUP10 DUP10 DUP10 ADDRESS DUP10 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0x20BB SWAP3 POP DUP11 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2135 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH2 0x3145 JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x21BE JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2217 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLVALUE SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x228B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x22F0 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x236A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2372 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2384 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP10 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP10 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x2455 SWAP3 SWAP1 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP8 PUSH2 0x1872 DUP3 DUP10 DUP10 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x246A JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2543 PUSH32 0x0 DUP13 DUP13 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH4 0x23B872DD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x259E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x226BF2D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 SWAP3 DUP7 AND SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2615 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2629 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x263F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x2659 DUP15 DUP15 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x267C JUMPI DUP2 DUP4 PUSH2 0x267F JUMP JUMPDEST DUP3 DUP3 JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP11 DUP8 LT ISZERO PUSH2 0x26C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP7 LT ISZERO PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B4 PUSH32 0x0 DUP15 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x27C3 JUMPI DUP13 PUSH2 0x27C7 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x283D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2863 DUP15 DUP15 DUP15 DUP15 DUP15 DUP15 PUSH2 0xCA3 JUMP JUMPDEST SWAP1 SWAP16 SWAP1 SWAP15 POP SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x28C1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28CF DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2901 PUSH32 0x0 DUP15 DUP15 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x290F DUP14 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH2 0x291B DUP13 CALLER DUP4 DUP8 PUSH2 0x347D JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2973 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2987 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x299D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 SWAP14 SWAP4 SWAP13 POP SWAP4 SWAP11 POP SWAP2 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x29FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A2B DUP11 PUSH32 0x0 DUP12 CALLVALUE DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2A7D PUSH32 0x0 DUP13 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x2A8B DUP12 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2AE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2BB1 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP CALLVALUE DUP5 LT ISZERO PUSH2 0x2C4B JUMPI PUSH2 0x2C4B CALLER DUP6 CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2C9F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2CD6 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D2F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D8D PUSH32 0x0 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP CALLVALUE DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D9D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x2DE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2E1E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2ECA PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2ED7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2F60 JUMPI INVALID JUMPDEST PUSH2 0x2F9F DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FAC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE GT ISZERO PUSH2 0x1E86 JUMPI PUSH2 0x1E86 CALLER DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FCC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3058 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3039 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x30ED JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x30ED JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x30EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x313E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3191 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3172 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x31F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x31F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4641 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3296 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x32AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x32D8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x32E9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x333B DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3317 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3391 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x334E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x338C DUP12 DUP11 DUP10 DUP2 MLOAD DUP2 LT PUSH2 0x3368 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x440B JUMP JUMPDEST PUSH2 0x397F JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x33A0 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x32F8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x33CC DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3502 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3564 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3569 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3597 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3597 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46AF PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x35F8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x360F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3627 DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP8 DUP6 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x363B JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3669 JUMPI DUP3 PUSH1 0x0 PUSH2 0x366D JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP11 MLOAD SUB DUP9 LT PUSH2 0x3684 JUMPI DUP9 PUSH2 0x36C5 JUMP JUMPDEST PUSH2 0x36C5 PUSH32 0x0 DUP8 DUP13 DUP12 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x36F2 PUSH32 0x0 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x372F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x37A0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3788 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x37CD JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP10 ADD SWAP9 POP PUSH2 0x35DD SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3879 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x3891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x38BB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x38CF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3911 DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x38FD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x395A DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3924 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3955 DUP12 DUP11 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3941 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH2 0x3A80 JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3969 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x38E1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x39BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4687 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x39CF JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3A0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A2E PUSH2 0x3A21 PUSH2 0x2710 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A42 DUP3 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A68 DUP4 PUSH2 0x3A5C DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 PUSH2 0x3A73 JUMPI INVALID JUMPDEST DIV SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x3AC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4618 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x3AD0 JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3B0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3B2F PUSH2 0x2710 PUSH2 0x3B23 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3B58 PUSH2 0x3B48 PUSH2 0x2710 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST PUSH2 0x3B23 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST SWAP1 POP PUSH2 0x3B75 PUSH1 0x1 DUP3 DUP5 DUP2 PUSH2 0x3B68 JUMPI INVALID JUMPDEST DIV SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3238 JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3B9E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3BB5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3BCD DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x3BFD PUSH32 0x0 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP1 DUP10 AND EQ PUSH2 0x3C9E JUMPI DUP3 DUP5 PUSH2 0x3CA1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3CFF DUP3 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH2 0x3D77 DUP7 DUP4 DUP4 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3D54 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x397F JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3DA1 JUMPI DUP3 PUSH1 0x0 PUSH2 0x3DA5 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP13 MLOAD SUB DUP11 LT PUSH2 0x3DBC JUMPI DUP11 PUSH2 0x3DF0 JUMP JUMPDEST PUSH2 0x3DF0 PUSH32 0x0 DUP10 DUP15 DUP14 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x24 DUP3 ADD DUP8 DUP2 MSTORE PUSH1 0x44 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x64 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x84 DUP6 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0xA4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP8 POP SWAP1 DUP13 AND SWAP6 PUSH4 0x22C0D9F SWAP6 DUP11 SWAP6 DUP11 SWAP6 DUP11 SWAP6 SWAP2 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH1 0xC4 DUP7 ADD SWAP3 SWAP1 SWAP2 DUP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E7A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E62 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3EA7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3EDD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP12 ADD SWAP11 POP PUSH2 0x3B83 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3F86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x456E PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3F96 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x3FD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x3FE2 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST DUP2 PUSH2 0x3FE9 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4046 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x454C PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x4066 JUMPI DUP3 DUP5 PUSH2 0x4069 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x40C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xE6A43905 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x414A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x415E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4227 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH4 0x64E329CB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC9C65396 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x420E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4255 PUSH32 0x0 DUP12 DUP12 PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x4267 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4277 JUMPI DUP8 SWAP4 POP DUP7 SWAP3 POP PUSH2 0x4337 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4284 DUP10 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP8 DUP2 GT PUSH2 0x42D7 JUMPI DUP6 DUP2 LT ISZERO PUSH2 0x42CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 SWAP5 POP SWAP3 POP DUP3 PUSH2 0x4335 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42E4 DUP10 DUP5 DUP7 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP10 DUP2 GT ISZERO PUSH2 0x42F0 JUMPI INVALID JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x432F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 POP DUP8 SWAP4 POP JUMPDEST POP JUMPDEST POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4353 DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x4364 DUP9 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x439C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x43B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x43F9 JUMPI DUP1 DUP3 PUSH2 0x43FC JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4418 DUP5 DUP5 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x4426 DUP6 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x445E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4472 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x44B4 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x44B1 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455850495245440000 STOP STOP STOP STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E56414C49445F50 COINBASE SLOAD 0x48 STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A204554485F54 MSTORE COINBASE 0x4E MSTORE8 CHAINID GASLIMIT MSTORE 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F TIMESTAMP 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455843455353495645 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x49 CALL 0x21 CALLVALUE 0xB9 EXTCODESIZE 0xE9 CREATE PUSH18 0xE2D709D91DD1986FCB03120573D2FCE354A1 OR SGT SWAP7 SWAP5 NUMBER PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "313:17960:5:-:0;;;606:109;5:9:-1;2:2;;;27:1;24;17:12;2:2;606:109:5;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;606:109:5;;;;;;;-1:-1:-1;;;;;;668:18:5;;;;;;;;696:12;;;;;313:17960;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "5390": [ - { - "length": 32, - "start": 3739 - }, - { - "length": 32, - "start": 3954 - }, - { - "length": 32, - "start": 4337 - }, - { - "length": 32, - "start": 4394 - }, - { - "length": 32, - "start": 4709 - }, - { - "length": 32, - "start": 5187 - }, - { - "length": 32, - "start": 5406 - }, - { - "length": 32, - "start": 5774 - }, - { - "length": 32, - "start": 7192 - }, - { - "length": 32, - "start": 7557 - }, - { - "length": 32, - "start": 7899 - }, - { - "length": 32, - "start": 8900 - }, - { - "length": 32, - "start": 9501 - }, - { - "length": 32, - "start": 10005 - }, - { - "length": 32, - "start": 10046 - }, - { - "length": 32, - "start": 10094 - }, - { - "length": 32, - "start": 10459 - }, - { - "length": 32, - "start": 10807 - }, - { - "length": 32, - "start": 11572 - }, - { - "length": 32, - "start": 11934 - }, - { - "length": 32, - "start": 13961 - }, - { - "length": 32, - "start": 14028 - }, - { - "length": 32, - "start": 15319 - }, - { - "length": 32, - "start": 15809 - }, - { - "length": 32, - "start": 16641 - }, - { - "length": 32, - "start": 16815 - }, - { - "length": 32, - "start": 16943 - } - ], - "5393": [ - { - "length": 32, - "start": 351 - }, - { - "length": 32, - "start": 3312 - }, - { - "length": 32, - "start": 3371 - }, - { - "length": 32, - "start": 3597 - }, - { - "length": 32, - "start": 4139 - }, - { - "length": 32, - "start": 5045 - }, - { - "length": 32, - "start": 5440 - }, - { - "length": 32, - "start": 6407 - }, - { - "length": 32, - "start": 6657 - }, - { - "length": 32, - "start": 6839 - }, - { - "length": 32, - "start": 7045 - }, - { - "length": 32, - "start": 7371 - }, - { - "length": 32, - "start": 7507 - }, - { - "length": 32, - "start": 8075 - }, - { - "length": 32, - "start": 8206 - }, - { - "length": 32, - "start": 8381 - }, - { - "length": 32, - "start": 8585 - }, - { - "length": 32, - "start": 8734 - }, - { - "length": 32, - "start": 8850 - }, - { - "length": 32, - "start": 10128 - }, - { - "length": 32, - "start": 10755 - }, - { - "length": 32, - "start": 10841 - }, - { - "length": 32, - "start": 10893 - }, - { - "length": 32, - "start": 11009 - }, - { - "length": 32, - "start": 11425 - }, - { - "length": 32, - "start": 11748 - }, - { - "length": 32, - "start": 11884 - } - ] - }, - "linkReferences": {}, - "object": "60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a264697066735822122049f12134b93be9f071e2d709d91dd1986fcb03120573d2fce354a1171396944364736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8803DBEE GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xA1C JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0xA31 JUMPI DUP1 PUSH4 0xDED9382A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8E33700 EQ PUSH2 0xB59 JUMPI DUP1 PUSH4 0xF305D719 EQ PUSH2 0xBD9 JUMPI DUP1 PUSH4 0xFB3BDB41 EQ PUSH2 0xC1F JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x8803DBEE EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xAF2979EB EQ PUSH2 0x8E8 JUMPI DUP1 PUSH4 0xB6F9DE95 EQ PUSH2 0x93B JUMPI DUP1 PUSH4 0xBAA2ABDE EQ PUSH2 0x9BF JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x52707D8C GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x52707D8C EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0x571FD012 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x5B0D5984 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x5C11D795 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x791AC947 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0x7FF36AB5 EQ PUSH2 0x767 JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x2751CEC EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x18CBAFE5 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x2195995C EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x38ED1739 EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x4A25D94A EQ PUSH2 0x4A8 JUMPI PUSH2 0x188 JUMP JUMPDEST CALLDATASIZE PUSH2 0x188 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x186 JUMPI INVALID JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B3 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x10EA SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x160 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH2 0x100 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x140 ADD CALLDATALOAD PUSH2 0x1120 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x121A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1365 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x1508 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x5EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x1516 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x65E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x6B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x6F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x71A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x72C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x18B9 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x77D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x79E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1B3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x80E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1E90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x1FAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x1FC2 JUMP JUMPDEST PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x9E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x24CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x2713 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x2737 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0xB0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x2764 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x2878 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0xBEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x29B4 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xC35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xC56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xC89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2C59 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xCEA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP10 PUSH32 0x0 DUP11 DUP11 DUP11 ADDRESS DUP11 PUSH2 0x24CF JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP PUSH2 0xD29 DUP10 DUP7 DUP6 PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xDB1 DUP6 DUP4 PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0xE03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0xE3D JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEF4 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0xF07 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFEA DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0xFD0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF9E JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x33BD JUMP JUMPDEST DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFDD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x347D JUMP JUMPDEST PUSH2 0x1029 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1068 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x10D2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3820 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1150 PUSH32 0x0 DUP16 DUP16 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x115F JUMPI DUP13 PUSH2 0x1163 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1200 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 PUSH2 0x24CF JUMP JUMPDEST DUP1 SWAP5 POP DUP2 SWAP6 POP POP POP POP POP SWAP12 POP SWAP12 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1260 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x12BE PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x12D1 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1326 DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST PUSH2 0x10DF DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x13AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x13E5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x143E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x149C PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x14AC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x397F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x3A80 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1564 PUSH32 0x0 DUP14 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x1573 JUMPI DUP12 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1613 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x1FC2 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1668 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x16DD DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x16D7 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST DUP11 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x16EF JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x177E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP9 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x17C0 SWAP3 SWAP1 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1872 DUP3 DUP9 DUP9 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x17D5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x184E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST LT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x18FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1937 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1990 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19A0 DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST PUSH2 0x19DE DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP7 DUP2 LT ISZERO PUSH2 0x1AB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x18AF DUP5 DUP3 PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1B83 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1BBA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C13 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C71 PUSH32 0x0 CALLVALUE DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1C84 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1D05 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1DB1 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1DBE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E29 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x1E47 JUMPI INVALID JUMPDEST PUSH2 0x1E86 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1ED6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1F34 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1F44 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FBA DUP5 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2008 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2037 DUP9 PUSH32 0x0 DUP10 DUP10 DUP10 ADDRESS DUP10 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0x20BB SWAP3 POP DUP11 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2135 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH2 0x3145 JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x21BE JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2217 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLVALUE SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x228B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x22F0 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x236A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2372 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2384 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP10 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP10 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x2455 SWAP3 SWAP1 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP8 PUSH2 0x1872 DUP3 DUP10 DUP10 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x246A JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2543 PUSH32 0x0 DUP13 DUP13 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH4 0x23B872DD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x259E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x226BF2D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 SWAP3 DUP7 AND SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2615 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2629 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x263F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x2659 DUP15 DUP15 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x267C JUMPI DUP2 DUP4 PUSH2 0x267F JUMP JUMPDEST DUP3 DUP3 JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP11 DUP8 LT ISZERO PUSH2 0x26C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP7 LT ISZERO PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B4 PUSH32 0x0 DUP15 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x27C3 JUMPI DUP13 PUSH2 0x27C7 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x283D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2863 DUP15 DUP15 DUP15 DUP15 DUP15 DUP15 PUSH2 0xCA3 JUMP JUMPDEST SWAP1 SWAP16 SWAP1 SWAP15 POP SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x28C1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28CF DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2901 PUSH32 0x0 DUP15 DUP15 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x290F DUP14 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH2 0x291B DUP13 CALLER DUP4 DUP8 PUSH2 0x347D JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2973 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2987 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x299D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 SWAP14 SWAP4 SWAP13 POP SWAP4 SWAP11 POP SWAP2 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x29FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A2B DUP11 PUSH32 0x0 DUP12 CALLVALUE DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2A7D PUSH32 0x0 DUP13 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x2A8B DUP12 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2AE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2BB1 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP CALLVALUE DUP5 LT ISZERO PUSH2 0x2C4B JUMPI PUSH2 0x2C4B CALLER DUP6 CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2C9F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2CD6 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D2F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D8D PUSH32 0x0 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP CALLVALUE DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D9D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x2DE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2E1E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2ECA PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2ED7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2F60 JUMPI INVALID JUMPDEST PUSH2 0x2F9F DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FAC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE GT ISZERO PUSH2 0x1E86 JUMPI PUSH2 0x1E86 CALLER DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FCC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3058 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3039 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x30ED JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x30ED JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x30EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x313E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3191 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3172 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x31F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x31F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4641 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3296 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x32AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x32D8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x32E9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x333B DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3317 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3391 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x334E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x338C DUP12 DUP11 DUP10 DUP2 MLOAD DUP2 LT PUSH2 0x3368 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x440B JUMP JUMPDEST PUSH2 0x397F JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x33A0 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x32F8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x33CC DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3502 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3564 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3569 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3597 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3597 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46AF PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x35F8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x360F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3627 DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP8 DUP6 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x363B JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3669 JUMPI DUP3 PUSH1 0x0 PUSH2 0x366D JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP11 MLOAD SUB DUP9 LT PUSH2 0x3684 JUMPI DUP9 PUSH2 0x36C5 JUMP JUMPDEST PUSH2 0x36C5 PUSH32 0x0 DUP8 DUP13 DUP12 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x36F2 PUSH32 0x0 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x372F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x37A0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3788 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x37CD JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP10 ADD SWAP9 POP PUSH2 0x35DD SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3879 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x3891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x38BB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x38CF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3911 DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x38FD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x395A DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3924 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3955 DUP12 DUP11 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3941 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH2 0x3A80 JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3969 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x38E1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x39BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4687 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x39CF JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3A0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A2E PUSH2 0x3A21 PUSH2 0x2710 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A42 DUP3 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A68 DUP4 PUSH2 0x3A5C DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 PUSH2 0x3A73 JUMPI INVALID JUMPDEST DIV SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x3AC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4618 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x3AD0 JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3B0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3B2F PUSH2 0x2710 PUSH2 0x3B23 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3B58 PUSH2 0x3B48 PUSH2 0x2710 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST PUSH2 0x3B23 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST SWAP1 POP PUSH2 0x3B75 PUSH1 0x1 DUP3 DUP5 DUP2 PUSH2 0x3B68 JUMPI INVALID JUMPDEST DIV SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3238 JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3B9E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3BB5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3BCD DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x3BFD PUSH32 0x0 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP1 DUP10 AND EQ PUSH2 0x3C9E JUMPI DUP3 DUP5 PUSH2 0x3CA1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3CFF DUP3 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH2 0x3D77 DUP7 DUP4 DUP4 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3D54 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x397F JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3DA1 JUMPI DUP3 PUSH1 0x0 PUSH2 0x3DA5 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP13 MLOAD SUB DUP11 LT PUSH2 0x3DBC JUMPI DUP11 PUSH2 0x3DF0 JUMP JUMPDEST PUSH2 0x3DF0 PUSH32 0x0 DUP10 DUP15 DUP14 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x24 DUP3 ADD DUP8 DUP2 MSTORE PUSH1 0x44 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x64 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x84 DUP6 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0xA4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP8 POP SWAP1 DUP13 AND SWAP6 PUSH4 0x22C0D9F SWAP6 DUP11 SWAP6 DUP11 SWAP6 DUP11 SWAP6 SWAP2 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH1 0xC4 DUP7 ADD SWAP3 SWAP1 SWAP2 DUP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E7A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E62 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3EA7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3EDD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP12 ADD SWAP11 POP PUSH2 0x3B83 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3F86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x456E PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3F96 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x3FD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x3FE2 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST DUP2 PUSH2 0x3FE9 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4046 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x454C PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x4066 JUMPI DUP3 DUP5 PUSH2 0x4069 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x40C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xE6A43905 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x414A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x415E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4227 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH4 0x64E329CB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC9C65396 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x420E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4255 PUSH32 0x0 DUP12 DUP12 PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x4267 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4277 JUMPI DUP8 SWAP4 POP DUP7 SWAP3 POP PUSH2 0x4337 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4284 DUP10 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP8 DUP2 GT PUSH2 0x42D7 JUMPI DUP6 DUP2 LT ISZERO PUSH2 0x42CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 SWAP5 POP SWAP3 POP DUP3 PUSH2 0x4335 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42E4 DUP10 DUP5 DUP7 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP10 DUP2 GT ISZERO PUSH2 0x42F0 JUMPI INVALID JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x432F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 POP DUP8 SWAP4 POP JUMPDEST POP JUMPDEST POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4353 DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x4364 DUP9 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x439C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x43B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x43F9 JUMPI DUP1 DUP3 PUSH2 0x43FC JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4418 DUP5 DUP5 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x4426 DUP6 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x445E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4472 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x44B4 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x44B1 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455850495245440000 STOP STOP STOP STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E56414C49445F50 COINBASE SLOAD 0x48 STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A204554485F54 MSTORE COINBASE 0x4E MSTORE8 CHAINID GASLIMIT MSTORE 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F TIMESTAMP 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455843455353495645 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x49 CALL 0x21 CALLVALUE 0xB9 EXTCODESIZE 0xE9 CREATE PUSH18 0xE2D709D91DD1986FCB03120573D2FCE354A1 OR SGT SWAP7 SWAP5 NUMBER PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "313:17960:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;765:10;-1:-1:-1;;;;;779:4:5;765:18;;758:26;;;;313:17960;;12:1:-1;9;2:12;4773:653:5;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4773:653:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;4773:653:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11706:822;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11706:822:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;11706:822:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;11706:822:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;11706:822:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11706:822:5;;-1:-1:-1;11706:822:5;-1:-1:-1;;;;;;11706:822:5;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11706:822:5;;;;;;;;;;;;;;;;;18029:242;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18029:242:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18029:242:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;18029:242:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;18029:242:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18029:242:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18029:242:5;;-1:-1:-1;18029:242:5;;-1:-1:-1;;;;;18029:242:5:i;5431:657::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5431:657:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;5431:657:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9025:606::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9025:606:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9025:606:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;9025:606:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9025:606:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9025:606:5;;-1:-1:-1;9025:606:5;-1:-1:-1;;;;;;9025:606:5;;;;;;;;:::i;10901:800::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10901:800:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10901:800:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;10901:800:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10901:800:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10901:800:5;;-1:-1:-1;10901:800:5;-1:-1:-1;;;;;;10901:800:5;;;;;;;;:::i;17222:274::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17222:274:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;17222:274:5;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17502:273;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17502:273:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;17502:273:5;;;;;;;;;;;;;;;;;:::i;7504:697::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7504:697:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;7504:697:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14658:692::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14658:692:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;14658:692:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;14658:692:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;14658:692:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14658:692:5;;-1:-1:-1;14658:692:5;-1:-1:-1;;;;;;14658:692:5;;;;;;;;:::i;16179:813::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16179:813:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;16179:813:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;16179:813:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;16179:813:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16179:813:5;;-1:-1:-1;16179:813:5;-1:-1:-1;;;;;;16179:813:5;;;;;;;;:::i;10225:671::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10225:671:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;10225:671:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10225:671:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10225:671:5;;-1:-1:-1;10225:671:5;-1:-1:-1;;;;;;10225:671:5;;;;;;;;:::i;9636:584::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9636:584:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9636:584:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;9636:584:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9636:584:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9636:584:5;;-1:-1:-1;9636:584:5;-1:-1:-1;;;;;;9636:584:5;;;;;;;;:::i;435:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;435:38:5;;;:::i;:::-;;;;-1:-1:-1;;;;;435:38:5;;;;;;;;;;;;;;17033:183;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17033:183:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17033:183:5;;;;;;;;;;;;:::i;6819:680::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6819:680:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;6819:680:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15355:819::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;15355:819:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;15355:819:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;15355:819:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15355:819:5;;-1:-1:-1;15355:819:5;-1:-1:-1;;;;;;15355:819:5;;;;;;;;:::i;3937:831::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3937:831:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;3937:831:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;388:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;388:41:5;;;:::i;17781:242::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17781:242:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17781:242:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;17781:242:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;17781:242:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17781:242:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17781:242:5;;-1:-1:-1;17781:242:5;;-1:-1:-1;;;;;17781:242:5:i;6093:650::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6093:650:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;6093:650:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2230:717::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2230:717:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2230:717:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2952:945;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2952:945:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12533:782::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;12533:782:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;12533:782:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;12533:782:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;12533:782:5;;-1:-1:-1;12533:782:5;-1:-1:-1;;;;;;12533:782:5;;;;;;;;:::i;4773:653::-;5003:16;5021:14;4984:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;5074:188:::1;5103:5;5122:4;5140:9;5163:14;5191:12;5225:4;5244:8;5074:15;:188::i;:::-;5047:215:::0;;-1:-1:-1;5047:215:5;-1:-1:-1;5272:51:5::1;5300:5:::0;5307:2;5047:215;5272:27:::1;:51::i;:::-;5339:4;-1:-1:-1::0;;;;;5333:20:5::1;;5354:9;5333:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;5333:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;5333:31:5;;;;5374:45;5405:2;5409:9;5374:30;:45::i;:::-;4773:653:::0;;;;;;;;;;:::o;11706:822::-;11915:21;11888:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;11985:4:5::1;11960:29;:4:::0;;-1:-1:-1;;11965:15:5;;11960:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;11960:21:5::1;-1:-1:-1::0;;;;;11960:29:5::1;;11952:68;;;::::0;;-1:-1:-1;;;11952:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;11952:68:5;;;;;;;;;;;;;::::1;;12040:52;12068:7;12077:8;12087:4;;12040:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12040:27:5::1;::::0;-1:-1:-1;;;12040:52:5:i:1;:::-;12030:62;;12141:12;12110:7;12135:1;12118:7;:14;:18;12110:27;;;;;;;;;;;;;;:43;;12102:96;;;;-1:-1:-1::0;;;12102:96:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12208:136;12253:4;;12258:1;12253:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12253:7:5::1;12262:10;12274:48;12296:7;12305:4;;12310:1;12305:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12305:7:5::1;12314:4;;12319:1;12314:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12314:7:5::1;12274:21;:48::i;:::-;12324:7;12332:1;12324:10;;;;;;;;;;;;;;12208:31;:136::i;:::-;12354:35;12360:7;12369:4;;12354:35;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12383:4:5::1;::::0;-1:-1:-1;12354:5:5::1;::::0;-1:-1:-1;;12354:35:5:i:1;:::-;12405:4;-1:-1:-1::0;;;;;12399:20:5::1;;12420:7;12445:1;12428:7;:14;:18;12420:27;;;;;;;;;;;;;;12399:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12399:49:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12399:49:5;;;;12458:63;12489:2;12493:7;12518:1;12501:7;:14;:18;12493:27;;;;;;;;;;;;;;12458:30;:63::i;:::-;11706:822:::0;;;;;;;;;:::o;18029:242::-;18168:21;18212:52;18239:7;18248:9;18259:4;18212:26;:52::i;:::-;18205:59;;18029:242;;;;;:::o;5431:657::-;5728:12;5742;5766;5781:46;5803:7;5812:6;5820;5781:21;:46::i;:::-;5766:61;;5837:10;5850;:33;;5874:9;5850:33;;;-1:-1:-1;;5850:33:5;5893:77;;;-1:-1:-1;;;5893:77:5;;5918:10;5893:77;;;;5938:4;5893:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5837:46;;-1:-1:-1;;;;;;5893:24:5;;;;;:77;;;;;-1:-1:-1;;5893:77:5;;;;;;;;-1:-1:-1;5893:24:5;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;5893:77:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5893:77:5;;;;6001:80;6017:6;6025;6033:9;6044:10;6056;6068:2;6072:8;6001:15;:80::i;:::-;5980:101;;;;;;;;5431:657;;;;;;;;;;;;;;;;:::o;9025:606::-;9243:21;9224:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;9286:52:::1;9314:7;9323:8;9333:4;;9286:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9286:27:5::1;::::0;-1:-1:-1;;;9286:52:5:i:1;:::-;9276:62;;9387:12;9356:7;9381:1;9364:7;:14;:18;9356:27;;;;;;;;;;;;;;:43;;9348:96;;;;-1:-1:-1::0;;;9348:96:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9454:136;9499:4;;9504:1;9499:7;;;;;;9454:136;9600:24;9606:7;9615:4;;9600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9621:2:5;;-1:-1:-1;9600:5:5::1;::::0;-1:-1:-1;;9600:24:5:i:1;10901:800::-:0;11110:21;11083:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;11180:4:5::1;11155:29;:4:::0;;-1:-1:-1;;11160:15:5;;11155:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;11155:21:5::1;-1:-1:-1::0;;;;;11155:29:5::1;;11147:68;;;::::0;;-1:-1:-1;;;11147:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;11147:68:5;;;;;;;;;;;;;::::1;;11235:52;11262:7;11271:9;11282:4;;11235:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;11235:26:5::1;::::0;-1:-1:-1;;;11235:52:5:i:1;:::-;11225:62;;11319:11;11305:7;11313:1;11305:10;;;;;;;;;;;;;;:25;;11297:74;;;;-1:-1:-1::0;;;11297:74:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17222:274:::0;17384:14;17421:68;17448:8;17458:9;17469:10;17481:7;17421:26;:68::i;:::-;17414:75;17222:274;-1:-1:-1;;;;;17222:274:5:o;17502:273::-;17664:13;17700:68;17726:9;17737;17748:10;17760:7;17700:25;:68::i;7504:697::-;7814:14;7840:12;7855:43;7877:7;7886:5;7893:4;7855:21;:43::i;:::-;7840:58;;7908:10;7921;:33;;7945:9;7921:33;;;-1:-1:-1;;7921:33:5;7964:77;;;-1:-1:-1;;;7964:77:5;;7989:10;7964:77;;;;8009:4;7964:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7908:46;;-1:-1:-1;;;;;;7964:24:5;;;;;:77;;;;;-1:-1:-1;;7964:77:5;;;;;;;;-1:-1:-1;7964:24:5;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;7964:77:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7964:77:5;;;;8063:131;8124:5;8131:9;8142:14;8158:12;8172:2;8176:8;8063:47;:131::i;:::-;8051:143;7504:697;-1:-1:-1;;;;;;;;;;;;;7504:697:5:o;14658:692::-;14886:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;14906:134:::1;14951:4;;14956:1;14951:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;14951:7:5::1;14960:10;14972:48;14994:7;15003:4;;15008:1;15003:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;15003:7:5::1;15012:4;;15017:1;15012:7;;;;;;14972:48;15022:8;14906:31;:134::i;:::-;15050:18;15078:4:::0;;-1:-1:-1;;15083:15:5;;15078:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15078:21:5::1;-1:-1:-1::0;;;;;15071:39:5::1;;15111:2;15071:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15071:43:5::1;-1:-1:-1::0;;;;;15071:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15071:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15071:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15071:43:5;15124:44:::1;::::0;;15071:43:::1;15124:44:::0;;::::1;::::0;;;;;;;;;;;15071:43;;-1:-1:-1;15124:44:5::1;::::0;;;15159:4;;;;;;15124:44;::::1;::::0;15159:4;;15124:44;15159:4;15124:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;15165:2:5;;-1:-1:-1;15124:34:5::1;::::0;-1:-1:-1;;15124:44:5:i:1;:::-;15265:12:::0;15199:62:::1;15247:13:::0;15206:4;;-1:-1:-1;;15211:15:5;;15206:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15206:21:5::1;-1:-1:-1::0;;;;;15199:39:5::1;;15239:2;15199:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15199:43:5::1;-1:-1:-1::0;;;;;15199:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15199:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15199:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15199:43:5;;:62:::1;:47;:62;:::i;:::-;:78;;15178:165;;;;-1:-1:-1::0;;;15178:165:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;592:1;14658:692:::0;;;;;;;:::o;16179:813::-;16436:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;16493:4:5::1;16468:29;:4:::0;;-1:-1:-1;;16473:15:5;;16468:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16468:21:5::1;-1:-1:-1::0;;;;;16468:29:5::1;;16460:68;;;::::0;;-1:-1:-1;;;16460:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;16460:68:5;;;;;;;;;;;;;::::1;;16538:134;16583:4;;16588:1;16583:7;;;;;;16538:134;16682:55;16717:4;;16682:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;16731:4:5::1;::::0;-1:-1:-1;16682:34:5::1;::::0;-1:-1:-1;;16682:55:5:i:1;:::-;16764:37;::::0;;-1:-1:-1;;;16764:37:5;;16795:4:::1;16764:37;::::0;::::1;::::0;;;16747:14:::1;::::0;-1:-1:-1;;;;;16771:4:5::1;16764:22;::::0;::::1;::::0;:37;;;;;::::1;::::0;;;;;;;;;:22;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;16764:37:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16764:37:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;16764:37:5;;-1:-1:-1;16819:25:5;;::::1;;16811:78;;;;-1:-1:-1::0;;;16811:78:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16905:4;-1:-1:-1::0;;;;;16899:20:5::1;;16920:9;16899:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16899:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16899:31:5;;;;16940:45;16971:2;16975:9;16940:30;:45::i;10225:671::-:0;10435:21;10408:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;10491:4:::1;-1:-1:-1::0;;;;;10480:15:5::1;:4;;10485:1;10480:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;10480:7:5::1;-1:-1:-1::0;;;;;10480:15:5::1;;10472:54;;;::::0;;-1:-1:-1;;;10472:54:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;10472:54:5;;;;;;;;;;;;;::::1;;10546:53;10574:7;10583:9;10594:4;;10546:53;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10546:27:5::1;::::0;-1:-1:-1;;;10546:53:5:i:1;:::-;10536:63;;10648:12;10617:7;10642:1;10625:7;:14;:18;10617:27;;;;;;;;;;;;;;:43;;10609:96;;;;-1:-1:-1::0;;;10609:96:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10721:4;-1:-1:-1::0;;;;;10715:19:5::1;;10742:7;10750:1;10742:10;;;;;;;;;;;;;;10715:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10715:40:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10715:40:5;;;;;10778:4;-1:-1:-1::0;;;;;10772:20:5::1;;10793:48;10815:7;10824:4;;10829:1;10824:7;;;;;;10793:48;10843:7;10851:1;10843:10;;;;;;;;;;;;;;10772:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;10772:82:5::1;-1:-1:-1::0;;;;;10772:82:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10772:82:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10772:82:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;10772:82:5;10765:90:::1;;;;10865:24;10871:7;10880:4;;10865:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10886:2:5;;-1:-1:-1;10865:5:5::1;::::0;-1:-1:-1;;10865:24:5:i:1;:::-;10225:671:::0;;;;;;;;:::o;9636:584::-;9854:21;9835:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;9897:52:::1;9924:7;9933:9;9944:4;;9897:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9897:26:5::1;::::0;-1:-1:-1;;;9897:52:5:i:1;:::-;9887:62;;9981:11;9967:7;9975:1;9967:10;;;;;;;;;;;;;;:25;;9959:74;;;;-1:-1:-1::0;;;9959:74:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;435:38:::0;;;:::o;17033:183::-;17130:12;17161:48;17181:7;17190:8;17200;17161:19;:48::i;:::-;17154:55;17033:183;-1:-1:-1;;;;17033:183:5:o;6819:680::-;7078:14;7059:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;7120:188:::1;7149:5;7168:4;7186:9;7209:14;7237:12;7271:4;7290:8;7120:15;:188::i;:::-;7357:38;::::0;;-1:-1:-1;;;7357:38:5;;7389:4:::1;7357:38;::::0;::::1;::::0;;;7104:204;;-1:-1:-1;7318:78:5::1;::::0;-1:-1:-1;7346:5:5;;7353:2;;-1:-1:-1;;;;;7357:23:5;::::1;::::0;::::1;::::0;:38;;;;;::::1;::::0;;;;;;;;;:23;:38;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;7357:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7357:38:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;7357:38:5;7318:27:::1;:78::i;:::-;7412:4;-1:-1:-1::0;;;;;7406:20:5::1;;7427:9;7406:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;7406:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7406:31:5;;;;7447:45;7478:2;7482:9;7447:30;:45::i;15355:819::-:0;15605:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;15648:4:::1;-1:-1:-1::0;;;;;15637:15:5::1;:4;;15642:1;15637:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;15637:7:5::1;-1:-1:-1::0;;;;;15637:15:5::1;;15629:54;;;::::0;;-1:-1:-1;;;15629:54:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;15629:54:5;;;;;;;;;;;;;::::1;;15693:13;15709:9;15693:25;;15734:4;-1:-1:-1::0;;;;;15728:19:5::1;;15755:8;15728:38;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15728:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15728:38:5;;;;;15789:4;-1:-1:-1::0;;;;;15783:20:5::1;;15804:48;15826:7;15835:4;;15840:1;15835:7;;;;;;15804:48;15854:8;15783:80;;;;;;;;;;;;;-1:-1:-1::0;;;;;15783:80:5::1;-1:-1:-1::0;;;;;15783:80:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15783:80:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15783:80:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15783:80:5;15776:88:::1;;;;15874:18;15902:4:::0;;-1:-1:-1;;15907:15:5;;15902:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15902:21:5::1;-1:-1:-1::0;;;;;15895:39:5::1;;15935:2;15895:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15895:43:5::1;-1:-1:-1::0;;;;;15895:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15895:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15895:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15895:43:5;15948:44:::1;::::0;;15895:43:::1;15948:44:::0;;::::1;::::0;;;;;;;;;;;15895:43;;-1:-1:-1;15948:44:5::1;::::0;;;15983:4;;;;;;15948:44;::::1;::::0;15983:4;;15948:44;15983:4;15948:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;15989:2:5;;-1:-1:-1;15948:34:5::1;::::0;-1:-1:-1;;15948:44:5:i:1;:::-;16089:12:::0;16023:62:::1;16071:13:::0;16030:4;;-1:-1:-1;;16035:15:5;;16030:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16030:21:5::1;-1:-1:-1::0;;;;;16023:39:5::1;;16063:2;16023:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;16023:43:5::1;-1:-1:-1::0;;;;;16023:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;3937:831:5::0;4183:12;4197;4164:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;4221:12:::1;4236:46;4258:7;4267:6;4275;4236:21;:46::i;:::-;4292:59;::::0;;-1:-1:-1;;;4292:59:5;;4323:10:::1;4292:59;::::0;::::1;::::0;-1:-1:-1;;;;;4292:30:5;::::1;:59:::0;;;;;;;;;;;;;;4221:61;;-1:-1:-1;4292:30:5;;::::1;::::0;:59;;;;;::::1;::::0;;;;;;;;;-1:-1:-1;4292:30:5;:59;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4292:59:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4292:59:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;4418:26:5::1;::::0;;-1:-1:-1;;;4418:26:5;;-1:-1:-1;;;;;4418:26:5;;::::1;;::::0;::::1;::::0;;;4388:12:::1;::::0;;;4418:22;;::::1;::::0;::::1;::::0;:26;;;;;;;;;;;4388:12;4418:22;:26;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4418:26:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4418:26:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;4418:26:5;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;4418:26:5;-1:-1:-1;4455:14:5::1;4474:40;4499:6:::0;4507;4474:24:::1;:40::i;:::-;4454:60;;;4555:6;-1:-1:-1::0;;;;;4545:16:5::1;:6;-1:-1:-1::0;;;;;4545:16:5::1;;:58;;4586:7;4595;4545:58;;;4565:7;4574;4545:58;4524:79:::0;;-1:-1:-1;4524:79:5;-1:-1:-1;4621:21:5;;::::1;;4613:69;;;;-1:-1:-1::0;;;4613:69:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4711:10;4700:7;:21;;4692:69;;;;-1:-1:-1::0;;;4692:69:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;592:1;;;;3937:831:::0;;;;;;;;;;;:::o;388:41::-;;;:::o;17781:242::-;17920:21;17964:52;17992:7;18001:8;18011:4;17964:27;:52::i;6093:650::-;6374:16;6392:14;6418:12;6433:43;6455:7;6464:5;6471:4;6433:21;:43::i;:::-;6418:58;;6486:10;6499;:33;;6523:9;6499:33;;;-1:-1:-1;;6499:33:5;6542:77;;;-1:-1:-1;;;6542:77:5;;6567:10;6542:77;;;;6587:4;6542:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6486:46;;-1:-1:-1;;;;;;6542:24:5;;;;;:77;;;;;-1:-1:-1;;6542:77:5;;;;;;;;-1:-1:-1;6542:24:5;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;6542:77:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6542:77:5;;;;6656:80;6675:5;6682:9;6693:14;6709:12;6723:2;6727:8;6656:18;:80::i;:::-;6629:107;;;;-1:-1:-1;6093:650:5;-1:-1:-1;;;;;;;;;;;;;6093:650:5:o;2230:717::-;2509:12;2523;2537:14;2490:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;2584:85:::1;2598:6;2606;2614:14;2630;2646:10;2658;2584:13;:85::i;:::-;2563:106:::0;;-1:-1:-1;2563:106:5;-1:-1:-1;2679:12:5::1;2694:46;2716:7;2725:6:::0;2733;2694:21:::1;:46::i;:::-;2679:61;;2750:66;2782:6;2790:10;2802:4;2808:7;2750:31;:66::i;:::-;2826;2858:6;2866:10;2878:4;2884:7;2826:31;:66::i;:::-;2926:4;-1:-1:-1::0;;;;;2914:22:5::1;;2937:2;2914:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;2914:26:5::1;-1:-1:-1::0;;;;;2914:26:5::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;2914:26:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2914:26:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;2914:26:5;2230:717;;;;-1:-1:-1;2914:26:5;;-1:-1:-1;2230:717:5;;-1:-1:-1;;;;;;;;;2230:717:5:o;2952:945::-;3198:16;3216:14;3232;3179:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;3285:169:::1;3312:5;3331:4;3349:18;3381:9;3404:14;3432:12;3285:13;:169::i;:::-;3258:196:::0;;-1:-1:-1;3258:196:5;-1:-1:-1;3464:12:5::1;3479:43;3501:7;3510:5:::0;3517:4:::1;3479:21;:43::i;:::-;3464:58;;3532:69;3564:5;3571:10;3583:4;3589:11;3532:31;:69::i;:::-;3617:4;-1:-1:-1::0;;;;;3611:19:5::1;;3638:9;3611:39;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3611:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3611:39:5;;;;;3673:4;-1:-1:-1::0;;;;;3667:20:5::1;;3688:4;3694:9;3667:37;;;;;;;;;;;;;-1:-1:-1::0;;;;;3667:37:5::1;-1:-1:-1::0;;;;;3667:37:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3667:37:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3667:37:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3667:37:5;3660:45:::1;;;;3739:4;-1:-1:-1::0;;;;;3727:22:5::1;;3750:2;3727:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;3727:26:5::1;-1:-1:-1::0;;;;;3727:26:5::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3727:26:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3727:26:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3727:26:5;;-1:-1:-1;3802:9:5::1;:21:::0;-1:-1:-1;3798:92:5::1;;;3825:65;3856:10;3880:9;3868;:21;3825:30;:65::i;:::-;592:1;2952:945:::0;;;;;;;;;;;:::o;12533:782::-;12740:21;12713:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;12796:4:::1;-1:-1:-1::0;;;;;12785:15:5::1;:4;;12790:1;12785:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12785:7:5::1;-1:-1:-1::0;;;;;12785:15:5::1;;12777:54;;;::::0;;-1:-1:-1;;;12777:54:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;12777:54:5;;;;;;;;;;;;;::::1;;12851:52;12878:7;12887:9;12898:4;;12851:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12851:26:5::1;::::0;-1:-1:-1;;;12851:52:5:i:1;:::-;12841:62;;12935:9;12921:7;12929:1;12921:10;;;;;;;;;;;;;;:23;;12913:72;;;;-1:-1:-1::0;;;12913:72:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13001:4;-1:-1:-1::0;;;;;12995:19:5::1;;13022:7;13030:1;13022:10;;;;;;;;;;;;;;12995:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12995:40:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12995:40:5;;;;;13058:4;-1:-1:-1::0;;;;;13052:20:5::1;;13073:48;13095:7;13104:4;;13109:1;13104:7;;;;;;13073:48;13123:7;13131:1;13123:10;;;;;;;;;;;;;;13052:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;13052:82:5::1;-1:-1:-1::0;;;;;13052:82:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13052:82:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13052:82:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;13052:82:5;13045:90:::1;;;;13145:24;13151:7;13160:4;;13145:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;13166:2:5;;-1:-1:-1;13145:5:5::1;::::0;-1:-1:-1;;13145:24:5:i:1;:::-;13230:7;13238:1;13230:10;;;;;;;;;;;;;;13218:9;:22;13214:94;;;13242:66;13273:10;13297:7;13305:1;13297:10;;;;;;;;;;;;;;13285:9;:22;13242:30;:66::i;526:357:24:-:0;719:45;;;-1:-1:-1;;;;;719:45:24;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;719:45:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;708:57:24;;;;673:12;;687:17;;708:10;;;;719:45;708:57;;;25:18:-1;708:57:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;708:57:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;672:93:24;;;;783:7;:57;;;;-1:-1:-1;795:11:24;;:16;;:44;;;826:4;815:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;815:24:24;795:44;775:101;;;;;-1:-1:-1;;;775:101:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;526:357;;;;;:::o;1293:192::-;1400:12;;;1362;1400;;;;;;;;;-1:-1:-1;;;;;1379:7:24;;;1393:5;;1379:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1379:34:24;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1361:52:24;;;1431:7;1423:55;;;;-1:-1:-1;;;1423:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1293:192;;;:::o;3663:543:18:-;3764:21;3820:1;3805:4;:11;:16;;3797:56;;;;;-1:-1:-1;;;3797:56:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;3884:4;:11;3873:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3873:23:18;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;3873:23:18;;3863:33;;3919:8;3906:7;3914:1;3906:10;;;;;;;;;;;;;:21;;;;;3942:6;3937:263;3968:1;3954:4;:11;:15;3950:1;:19;3937:263;;;3991:14;4007:15;4026:42;4038:7;4047:4;4052:1;4047:7;;;;;;;;;;;;;;4056:4;4061:1;4065;4061:5;4056:11;;;;;;;;;;;;;;4026;:42::i;:::-;3990:78;;;;4099:90;4112:7;4120:1;4112:10;;;;;;;;;;;;;;4124:9;4135:10;4147:41;4158:7;4167:4;4172:1;4167:7;;;;;;;;;;;;;;4176:4;4181:1;4185;4181:5;4176:11;;;;;;;;;;;;;;4147:10;:41::i;:::-;4099:12;:90::i;:::-;4082:7;4090:1;4094;4090:5;4082:14;;;;;;;;;;;;;;;;;:107;-1:-1:-1;;3971:3:18;;3937:263;;;;3663:543;;;;;:::o;698:450::-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;889:398:24:-;1112:51;;;-1:-1:-1;;;;;1112:51:24;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1112:51:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1101:63:24;;;;1066:12;;1080:17;;1101:10;;;;1112:51;1101:63;;;25:18:-1;1101:63:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1101:63:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1065:99:24;;;;1182:7;:57;;;;-1:-1:-1;1194:11:24;;:16;;:44;;;1225:4;1214:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1214:24:24;1194:44;1174:106;;;;-1:-1:-1;;;1174:106:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:398;;;;;;:::o;8308:712:5:-;8414:6;8409:605;8440:1;8426:4;:11;:15;8422:1;:19;8409:605;;;8463:13;8478:14;8497:4;8502:1;8497:7;;;;;;;;;;;;;;8506:4;8511:1;8515;8511:5;8506:11;;;;;;;;;;;;;;8462:56;;;;8533:14;8552:39;8577:5;8584:6;8552:24;:39::i;:::-;8532:59;;;8605:14;8622:7;8630:1;8634;8630:5;8622:14;;;;;;;;;;;;;;8605:31;;8651:15;8668;8696:6;-1:-1:-1;;;;;8687:15:5;:5;-1:-1:-1;;;;;8687:15:5;;:61;;8729:9;8745:1;8687:61;;;8711:1;8715:9;8687:61;8650:98;;;;8762:10;8793:1;8779:4;:11;:15;8775:1;:19;:79;;8851:3;8775:79;;;8797:51;8819:7;8828:6;8836:4;8841:1;8845;8841:5;8836:11;;;;;;;;;;;;;;8797:21;:51::i;:::-;8762:92;;8880:45;8902:7;8911:5;8918:6;8880:21;:45::i;:::-;-1:-1:-1;;;;;8868:63:5;;8949:10;8961;8973:2;8987:1;8977:12;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;108:14;8977:12:5;87:42:-1;143:17;;-1:-1;8977:12:5;;8868:135;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8868:135:5;-1:-1:-1;;;;;8868:135:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8868:135:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8868:135:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8443:3:5;;;;;-1:-1:-1;8409:605:5;;-1:-1:-1;;;;;;;;8409:605:5;;;8308:712;;;:::o;4284:564:18:-;4385:21;4441:1;4426:4;:11;:16;;4418:56;;;;;-1:-1:-1;;;4418:56:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;4505:4;:11;4494:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4494:23:18;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;4494:23:18;;4484:33;;4557:9;4527:7;4552:1;4535:7;:14;:18;4527:27;;;;;;;;;;;;;;;;;:39;4590:11;;-1:-1:-1;;4590:15:18;4576:266;4607:5;;4576:266;;4634:14;4650:15;4669:42;4681:7;4690:4;4699:1;4695;:5;4690:11;;;;;;;;;;;;;;4703:4;4708:1;4703:7;;;;;;;4669:42;4633:78;;;;4742:89;4754:7;4762:1;4754:10;;;;;;;;;;;;;;4766:9;4777:10;4789:41;4800:7;4809:4;4818:1;4814;:5;4809:11;;;;;;;;;;;;;;4822:4;4827:1;4822:7;;;;;;;4789:41;4742:11;:89::i;:::-;4725:7;4737:1;4733;:5;4725:14;;;;;;;;;;;;;;;;;:106;-1:-1:-1;;;;4614:3:18;4576:266;;2430:540;2537:14;2582:1;2571:8;:12;2563:65;;;;-1:-1:-1;;;2563:65:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2658:1;2646:9;:13;:31;;;;;2676:1;2663:10;:14;2646:31;2638:81;;;;-1:-1:-1;;;2638:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2729:20;2752:38;2765:24;2770:5;2781:7;2765:24;:15;:24;:::i;:::-;2752:8;;:38;:12;:38;:::i;:::-;2729:61;-1:-1:-1;2800:14:18;2817:31;2729:61;2837:10;2817:31;:19;:31;:::i;:::-;2800:48;-1:-1:-1;2858:16:18;2877:41;2902:15;2877:20;:9;2891:5;2877:20;:13;:20;:::i;:::-;:24;:41;:24;:41;:::i;:::-;2858:60;;2952:11;2940:9;:23;;;;;;;2430:540;-1:-1:-1;;;;;;;;2430:540:18:o;3088:496::-;3195:13;3240:1;3228:9;:13;3220:67;;;;-1:-1:-1;;;3220:67:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3317:1;3305:9;:13;:31;;;;;3335:1;3322:10;:14;3305:31;3297:81;;;;-1:-1:-1;;;3297:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3388:14;3405:35;3434:5;3405:24;:9;3419;3405:24;:13;:24;:::i;:::-;:28;:35;:28;:35;:::i;:::-;3388:52;-1:-1:-1;3450:16:18;3469:55;3499:24;3504:5;3515:7;3499:24;:15;:24;:::i;:::-;3469:25;:10;3484:9;3469:25;:14;:25;:::i;:55::-;3450:74;;3545:32;3575:1;3558:11;3546:9;:23;;;;;;;3545:32;:29;:32;:::i;:::-;3534:43;3088:496;-1:-1:-1;;;;;;;3088:496:18:o;13458:1195:5:-;13570:6;13565:1082;13596:1;13582:4;:11;:15;13578:1;:19;13565:1082;;;13619:13;13634:14;13653:4;13658:1;13653:7;;;;;;;;;;;;;;13662:4;13667:1;13671;13667:5;13662:11;;;;;;;;;;;;;;13618:56;;;;13689:14;13708:39;13733:5;13740:6;13708:24;:39::i;:::-;13688:59;;;13761:16;13792:45;13814:7;13823:5;13830:6;13792:21;:45::i;:::-;13761:77;;13852:16;13882:17;13968:13;13983;14001:4;-1:-1:-1;;;;;14001:16:5;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14001:18:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14001:18:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14001:18:5;;;;;;;-1:-1:-1;;;;;13967:52:5;;;;-1:-1:-1;13967:52:5;;-1:-1:-1;14034:17:5;;-1:-1:-1;;;;;14075:15:5;;;;;;;:61;;14117:8;14127;14075:61;;;14094:8;14104;14075:61;14033:103;;;;14164:56;14207:12;14171:5;-1:-1:-1;;;;;14164:23:5;;14196:4;14164:38;;;;;;;;;;;;;-1:-1:-1;;;;;14164:38:5;-1:-1:-1;;;;;14164:38:5;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;14164:56:5;14150:70;;14249:84;14276:11;14289:12;14303:13;14318:4;-1:-1:-1;;;;;14318:12:5;;:14;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14318:14:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14318:14:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14318:14:5;14249:84;;:26;:84::i;:::-;14234:99;;13565:1082;;;;14362:15;14379;14407:6;-1:-1:-1;;;;;14398:15:5;:5;-1:-1:-1;;;;;14398:15:5;;:67;;14443:12;14462:1;14398:67;;;14422:1;14426:12;14398:67;14361:104;;;;14479:10;14510:1;14496:4;:11;:15;14492:1;:19;:79;;14568:3;14492:79;;;14514:51;14536:7;14545:6;14553:4;14558:1;14562;14558:5;14553:11;;;;;;;14514:51;14623:12;;;14633:1;14623:12;;;;;;;;;;-1:-1:-1;;;14585:51:5;;;;;;;;;;;;;;-1:-1:-1;;;;;14585:51:5;;;;;;;;;;;;;;;;;;;;;;14479:92;;-1:-1:-1;14585:9:5;;;;;;14595:10;;14607;;14479:92;;14623:12;;14585:51;;;;;;;;14623:12;;14585:51;;;;14623:12;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14585:51:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14585:51:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13599:3:5;;;;;-1:-1:-1;13565:1082:5;;-1:-1:-1;;;;;;;;;;13565:1082:5;286:127:23;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;2000:311:18;2082:12;2124:1;2114:7;:11;2106:58;;;;-1:-1:-1;;;2106:58:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2193:1;2182:8;:12;:28;;;;;2209:1;2198:8;:12;2182:28;2174:78;;;;-1:-1:-1;;;2174:78:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2296:8;2272:21;:7;2284:8;2272:21;:11;:21;:::i;:::-;:32;;;;;;;2000:311;-1:-1:-1;;;;2000:311:18:o;270:339::-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;883:1342:5:-;1187:47;;;-1:-1:-1;;;1187:47:5;;-1:-1:-1;;;;;1187:47:5;;;;;;;;;;;;;;;;1094:12;;;;;;1202:7;1187:31;;;;;;:47;;;;;;;;;;;;;;;:31;:47;;;2:2:-1;;;;27:1;24;17:12;2:2;1187:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1187:47:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1187:47:5;-1:-1:-1;;;;;1187:61:5;;1183:142;;;1264:50;;;-1:-1:-1;;;1264:50:5;;-1:-1:-1;;;;;1264:50:5;;;;;;;;;;;;;;;;1279:7;1264:34;;;;;;:50;;;;;;;;;;;;;;;-1:-1:-1;1264:34:5;:50;;;2:2:-1;;;;27:1;24;17:12;2:2;1264:50:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1264:50:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;1183:142:5;1335:13;1350;1367:50;1393:7;1402:6;1410;1367:25;:50::i;:::-;1334:83;;;;1431:8;1443:1;1431:13;:30;;;;-1:-1:-1;1448:13:5;;1431:30;1427:792;;;1499:14;;-1:-1:-1;1515:14:5;;-1:-1:-1;1427:792:5;;;1561:19;1583:55;1603:14;1619:8;1629;1583:19;:55::i;:::-;1561:77;;1674:14;1656;:32;1652:557;;1734:10;1716:14;:28;;1708:76;;;;-1:-1:-1;;;1708:76:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1824:14;;-1:-1:-1;1840:14:5;-1:-1:-1;1840:14:5;1652:557;;;1894:19;1916:55;1936:14;1952:8;1962;1916:19;:55::i;:::-;1894:77;;2014:14;1996;:32;;1989:40;;;;2073:10;2055:14;:28;;2047:76;;;;-1:-1:-1;;;2047:76:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:14;-1:-1:-1;2179:14:5;;-1:-1:-1;1652:557:5;1427:792;;883:1342;;;;;;;;;;;:::o;1203:384:18:-;1296:13;1311;1337:14;1356:26;1367:6;1375;1356:10;:26::i;:::-;1336:46;;;1393:13;1408;1438:32;1446:7;1455:6;1463;1438:7;:32::i;:::-;-1:-1:-1;;;;;1426:57:18;;:59;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1426:59:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1426:59:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1426:59:18;;;;;;;-1:-1:-1;;;;;1392:93:18;;;;-1:-1:-1;1392:93:18;;-1:-1:-1;;;;;;1518:16:18;;;;;;;:62;;1561:8;1571;1518:62;;;1538:8;1548;1518:62;1495:85;;;;-1:-1:-1;1203:384:18;-1:-1:-1;;;;;;;1203:384:18:o;1646:244::-;1738:12;1763:14;1782:26;1793:6;1801;1782:10;:26::i;:::-;1762:46;;;1840:32;1848:7;1857:6;1865;1840:7;:32::i;:::-;-1:-1:-1;;;;;1828:53:18;;:55;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1828:55:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1828:55:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1828:55:18;1818:65;;;1646:244;-1:-1:-1;;;;;1646:244:18:o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;;;154:126;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - }, - { - "internalType": "address", - "name": "_WETH", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "60c060405234801561001057600080fd5b50604051620048d9380380620048d98339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614754620001856000398061015f5280610cf05280610d2b5280610e0d528061102b52806113b5528061154052806119075280611a015280611ab75280611b855280611ccb5280611d535280611f8b528061200e52806120bd5280612189528061221e528061229252806127905280612a035280612a595280612a8d5280612b015280612ca15280612de45280612e6c525080610e9b5280610f7252806110f1528061112a52806112655280611443528061151e528061168e5280611c185280611d855280611edb52806122c4528061251d5280612715528061273e528061276e52806128db5280612a375280612d345280612e9e528061368952806136cc5280613bd75280613dc1528061410152806141af528061422f52506147546000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a264697066735822122049f12134b93be9f071e2d709d91dd1986fcb03120573d2fce354a1171396944364736f6c63430006060033", - "bin": "60c060405234801561001057600080fd5b50604051620048d9380380620048d98339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614754620001856000398061015f5280610cf05280610d2b5280610e0d528061102b52806113b5528061154052806119075280611a015280611ab75280611b855280611ccb5280611d535280611f8b528061200e52806120bd5280612189528061221e528061229252806127905280612a035280612a595280612a8d5280612b015280612ca15280612de45280612e6c525080610e9b5280610f7252806110f1528061112a52806112655280611443528061151e528061168e5280611c185280611d855280611edb52806122c4528061251d5280612715528061273e528061276e52806128db5280612a375280612d345280612e9e528061368952806136cc5280613bd75280613dc1528061410152806141af528061422f52506147546000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a264697066735822122049f12134b93be9f071e2d709d91dd1986fcb03120573d2fce354a1171396944364736f6c63430006060033", - "bin-runtime": "60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a264697066735822122049f12134b93be9f071e2d709d91dd1986fcb03120573d2fce354a1171396944364736f6c63430006060033", - "srcmap": "313:17960:5:-:0;;;606:109;5:9:-1;2:2;;;27:1;24;17:12;2:2;606:109:5;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;606:109:5;;;;;;;-1:-1:-1;;;;;;668:18:5;;;;;;;;696:12;;;;;313:17960;;;;;;;;;;;;;;;;", - "srcmap-runtime": "313:17960:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;765:10;-1:-1:-1;;;;;779:4:5;765:18;;758:26;;;;313:17960;;12:1:-1;9;2:12;4773:653:5;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4773:653:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;4773:653:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11706:822;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11706:822:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;11706:822:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;11706:822:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;11706:822:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11706:822:5;;-1:-1:-1;11706:822:5;-1:-1:-1;;;;;;11706:822:5;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11706:822:5;;;;;;;;;;;;;;;;;18029:242;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18029:242:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18029:242:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;18029:242:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;18029:242:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18029:242:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18029:242:5;;-1:-1:-1;18029:242:5;;-1:-1:-1;;;;;18029:242:5:i;5431:657::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5431:657:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;5431:657:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9025:606::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9025:606:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9025:606:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;9025:606:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9025:606:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9025:606:5;;-1:-1:-1;9025:606:5;-1:-1:-1;;;;;;9025:606:5;;;;;;;;:::i;10901:800::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10901:800:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10901:800:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;10901:800:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10901:800:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10901:800:5;;-1:-1:-1;10901:800:5;-1:-1:-1;;;;;;10901:800:5;;;;;;;;:::i;17222:274::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17222:274:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;17222:274:5;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17502:273;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17502:273:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;17502:273:5;;;;;;;;;;;;;;;;;:::i;7504:697::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7504:697:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;7504:697:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14658:692::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14658:692:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;14658:692:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;14658:692:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;14658:692:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14658:692:5;;-1:-1:-1;14658:692:5;-1:-1:-1;;;;;;14658:692:5;;;;;;;;:::i;16179:813::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16179:813:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;16179:813:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;16179:813:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;16179:813:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16179:813:5;;-1:-1:-1;16179:813:5;-1:-1:-1;;;;;;16179:813:5;;;;;;;;:::i;10225:671::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10225:671:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;10225:671:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10225:671:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10225:671:5;;-1:-1:-1;10225:671:5;-1:-1:-1;;;;;;10225:671:5;;;;;;;;:::i;9636:584::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9636:584:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9636:584:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;9636:584:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9636:584:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9636:584:5;;-1:-1:-1;9636:584:5;-1:-1:-1;;;;;;9636:584:5;;;;;;;;:::i;435:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;435:38:5;;;:::i;:::-;;;;-1:-1:-1;;;;;435:38:5;;;;;;;;;;;;;;17033:183;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17033:183:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17033:183:5;;;;;;;;;;;;:::i;6819:680::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6819:680:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;6819:680:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15355:819::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;15355:819:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;15355:819:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;15355:819:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15355:819:5;;-1:-1:-1;15355:819:5;-1:-1:-1;;;;;;15355:819:5;;;;;;;;:::i;3937:831::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3937:831:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;3937:831:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;388:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;388:41:5;;;:::i;17781:242::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17781:242:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17781:242:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;17781:242:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;17781:242:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17781:242:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17781:242:5;;-1:-1:-1;17781:242:5;;-1:-1:-1;;;;;17781:242:5:i;6093:650::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6093:650:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;6093:650:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2230:717::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2230:717:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2230:717:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2952:945;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2952:945:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12533:782::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;12533:782:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;12533:782:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;12533:782:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;12533:782:5;;-1:-1:-1;12533:782:5;-1:-1:-1;;;;;;12533:782:5;;;;;;;;:::i;4773:653::-;5003:16;5021:14;4984:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;5074:188:::1;5103:5;5122:4;5140:9;5163:14;5191:12;5225:4;5244:8;5074:15;:188::i;:::-;5047:215:::0;;-1:-1:-1;5047:215:5;-1:-1:-1;5272:51:5::1;5300:5:::0;5307:2;5047:215;5272:27:::1;:51::i;:::-;5339:4;-1:-1:-1::0;;;;;5333:20:5::1;;5354:9;5333:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;5333:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;5333:31:5;;;;5374:45;5405:2;5409:9;5374:30;:45::i;:::-;4773:653:::0;;;;;;;;;;:::o;11706:822::-;11915:21;11888:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;11985:4:5::1;11960:29;:4:::0;;-1:-1:-1;;11965:15:5;;11960:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;11960:21:5::1;-1:-1:-1::0;;;;;11960:29:5::1;;11952:68;;;::::0;;-1:-1:-1;;;11952:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;11952:68:5;;;;;;;;;;;;;::::1;;12040:52;12068:7;12077:8;12087:4;;12040:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12040:27:5::1;::::0;-1:-1:-1;;;12040:52:5:i:1;:::-;12030:62;;12141:12;12110:7;12135:1;12118:7;:14;:18;12110:27;;;;;;;;;;;;;;:43;;12102:96;;;;-1:-1:-1::0;;;12102:96:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12208:136;12253:4;;12258:1;12253:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12253:7:5::1;12262:10;12274:48;12296:7;12305:4;;12310:1;12305:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12305:7:5::1;12314:4;;12319:1;12314:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12314:7:5::1;12274:21;:48::i;:::-;12324:7;12332:1;12324:10;;;;;;;;;;;;;;12208:31;:136::i;:::-;12354:35;12360:7;12369:4;;12354:35;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12383:4:5::1;::::0;-1:-1:-1;12354:5:5::1;::::0;-1:-1:-1;;12354:35:5:i:1;:::-;12405:4;-1:-1:-1::0;;;;;12399:20:5::1;;12420:7;12445:1;12428:7;:14;:18;12420:27;;;;;;;;;;;;;;12399:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12399:49:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12399:49:5;;;;12458:63;12489:2;12493:7;12518:1;12501:7;:14;:18;12493:27;;;;;;;;;;;;;;12458:30;:63::i;:::-;11706:822:::0;;;;;;;;;:::o;18029:242::-;18168:21;18212:52;18239:7;18248:9;18259:4;18212:26;:52::i;:::-;18205:59;;18029:242;;;;;:::o;5431:657::-;5728:12;5742;5766;5781:46;5803:7;5812:6;5820;5781:21;:46::i;:::-;5766:61;;5837:10;5850;:33;;5874:9;5850:33;;;-1:-1:-1;;5850:33:5;5893:77;;;-1:-1:-1;;;5893:77:5;;5918:10;5893:77;;;;5938:4;5893:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5837:46;;-1:-1:-1;;;;;;5893:24:5;;;;;:77;;;;;-1:-1:-1;;5893:77:5;;;;;;;;-1:-1:-1;5893:24:5;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;5893:77:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5893:77:5;;;;6001:80;6017:6;6025;6033:9;6044:10;6056;6068:2;6072:8;6001:15;:80::i;:::-;5980:101;;;;;;;;5431:657;;;;;;;;;;;;;;;;:::o;9025:606::-;9243:21;9224:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;9286:52:::1;9314:7;9323:8;9333:4;;9286:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9286:27:5::1;::::0;-1:-1:-1;;;9286:52:5:i:1;:::-;9276:62;;9387:12;9356:7;9381:1;9364:7;:14;:18;9356:27;;;;;;;;;;;;;;:43;;9348:96;;;;-1:-1:-1::0;;;9348:96:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9454:136;9499:4;;9504:1;9499:7;;;;;;9454:136;9600:24;9606:7;9615:4;;9600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9621:2:5;;-1:-1:-1;9600:5:5::1;::::0;-1:-1:-1;;9600:24:5:i:1;10901:800::-:0;11110:21;11083:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;11180:4:5::1;11155:29;:4:::0;;-1:-1:-1;;11160:15:5;;11155:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;11155:21:5::1;-1:-1:-1::0;;;;;11155:29:5::1;;11147:68;;;::::0;;-1:-1:-1;;;11147:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;11147:68:5;;;;;;;;;;;;;::::1;;11235:52;11262:7;11271:9;11282:4;;11235:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;11235:26:5::1;::::0;-1:-1:-1;;;11235:52:5:i:1;:::-;11225:62;;11319:11;11305:7;11313:1;11305:10;;;;;;;;;;;;;;:25;;11297:74;;;;-1:-1:-1::0;;;11297:74:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17222:274:::0;17384:14;17421:68;17448:8;17458:9;17469:10;17481:7;17421:26;:68::i;:::-;17414:75;17222:274;-1:-1:-1;;;;;17222:274:5:o;17502:273::-;17664:13;17700:68;17726:9;17737;17748:10;17760:7;17700:25;:68::i;7504:697::-;7814:14;7840:12;7855:43;7877:7;7886:5;7893:4;7855:21;:43::i;:::-;7840:58;;7908:10;7921;:33;;7945:9;7921:33;;;-1:-1:-1;;7921:33:5;7964:77;;;-1:-1:-1;;;7964:77:5;;7989:10;7964:77;;;;8009:4;7964:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7908:46;;-1:-1:-1;;;;;;7964:24:5;;;;;:77;;;;;-1:-1:-1;;7964:77:5;;;;;;;;-1:-1:-1;7964:24:5;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;7964:77:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7964:77:5;;;;8063:131;8124:5;8131:9;8142:14;8158:12;8172:2;8176:8;8063:47;:131::i;:::-;8051:143;7504:697;-1:-1:-1;;;;;;;;;;;;;7504:697:5:o;14658:692::-;14886:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;14906:134:::1;14951:4;;14956:1;14951:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;14951:7:5::1;14960:10;14972:48;14994:7;15003:4;;15008:1;15003:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;15003:7:5::1;15012:4;;15017:1;15012:7;;;;;;14972:48;15022:8;14906:31;:134::i;:::-;15050:18;15078:4:::0;;-1:-1:-1;;15083:15:5;;15078:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15078:21:5::1;-1:-1:-1::0;;;;;15071:39:5::1;;15111:2;15071:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15071:43:5::1;-1:-1:-1::0;;;;;15071:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15071:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15071:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15071:43:5;15124:44:::1;::::0;;15071:43:::1;15124:44:::0;;::::1;::::0;;;;;;;;;;;15071:43;;-1:-1:-1;15124:44:5::1;::::0;;;15159:4;;;;;;15124:44;::::1;::::0;15159:4;;15124:44;15159:4;15124:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;15165:2:5;;-1:-1:-1;15124:34:5::1;::::0;-1:-1:-1;;15124:44:5:i:1;:::-;15265:12:::0;15199:62:::1;15247:13:::0;15206:4;;-1:-1:-1;;15211:15:5;;15206:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15206:21:5::1;-1:-1:-1::0;;;;;15199:39:5::1;;15239:2;15199:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15199:43:5::1;-1:-1:-1::0;;;;;15199:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15199:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15199:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15199:43:5;;:62:::1;:47;:62;:::i;:::-;:78;;15178:165;;;;-1:-1:-1::0;;;15178:165:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;592:1;14658:692:::0;;;;;;;:::o;16179:813::-;16436:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;16493:4:5::1;16468:29;:4:::0;;-1:-1:-1;;16473:15:5;;16468:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16468:21:5::1;-1:-1:-1::0;;;;;16468:29:5::1;;16460:68;;;::::0;;-1:-1:-1;;;16460:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;16460:68:5;;;;;;;;;;;;;::::1;;16538:134;16583:4;;16588:1;16583:7;;;;;;16538:134;16682:55;16717:4;;16682:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;16731:4:5::1;::::0;-1:-1:-1;16682:34:5::1;::::0;-1:-1:-1;;16682:55:5:i:1;:::-;16764:37;::::0;;-1:-1:-1;;;16764:37:5;;16795:4:::1;16764:37;::::0;::::1;::::0;;;16747:14:::1;::::0;-1:-1:-1;;;;;16771:4:5::1;16764:22;::::0;::::1;::::0;:37;;;;;::::1;::::0;;;;;;;;;:22;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;16764:37:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16764:37:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;16764:37:5;;-1:-1:-1;16819:25:5;;::::1;;16811:78;;;;-1:-1:-1::0;;;16811:78:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16905:4;-1:-1:-1::0;;;;;16899:20:5::1;;16920:9;16899:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16899:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16899:31:5;;;;16940:45;16971:2;16975:9;16940:30;:45::i;10225:671::-:0;10435:21;10408:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;10491:4:::1;-1:-1:-1::0;;;;;10480:15:5::1;:4;;10485:1;10480:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;10480:7:5::1;-1:-1:-1::0;;;;;10480:15:5::1;;10472:54;;;::::0;;-1:-1:-1;;;10472:54:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;10472:54:5;;;;;;;;;;;;;::::1;;10546:53;10574:7;10583:9;10594:4;;10546:53;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10546:27:5::1;::::0;-1:-1:-1;;;10546:53:5:i:1;:::-;10536:63;;10648:12;10617:7;10642:1;10625:7;:14;:18;10617:27;;;;;;;;;;;;;;:43;;10609:96;;;;-1:-1:-1::0;;;10609:96:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10721:4;-1:-1:-1::0;;;;;10715:19:5::1;;10742:7;10750:1;10742:10;;;;;;;;;;;;;;10715:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10715:40:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10715:40:5;;;;;10778:4;-1:-1:-1::0;;;;;10772:20:5::1;;10793:48;10815:7;10824:4;;10829:1;10824:7;;;;;;10793:48;10843:7;10851:1;10843:10;;;;;;;;;;;;;;10772:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;10772:82:5::1;-1:-1:-1::0;;;;;10772:82:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10772:82:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10772:82:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;10772:82:5;10765:90:::1;;;;10865:24;10871:7;10880:4;;10865:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10886:2:5;;-1:-1:-1;10865:5:5::1;::::0;-1:-1:-1;;10865:24:5:i:1;:::-;10225:671:::0;;;;;;;;:::o;9636:584::-;9854:21;9835:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;9897:52:::1;9924:7;9933:9;9944:4;;9897:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9897:26:5::1;::::0;-1:-1:-1;;;9897:52:5:i:1;:::-;9887:62;;9981:11;9967:7;9975:1;9967:10;;;;;;;;;;;;;;:25;;9959:74;;;;-1:-1:-1::0;;;9959:74:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;435:38:::0;;;:::o;17033:183::-;17130:12;17161:48;17181:7;17190:8;17200;17161:19;:48::i;:::-;17154:55;17033:183;-1:-1:-1;;;;17033:183:5:o;6819:680::-;7078:14;7059:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;7120:188:::1;7149:5;7168:4;7186:9;7209:14;7237:12;7271:4;7290:8;7120:15;:188::i;:::-;7357:38;::::0;;-1:-1:-1;;;7357:38:5;;7389:4:::1;7357:38;::::0;::::1;::::0;;;7104:204;;-1:-1:-1;7318:78:5::1;::::0;-1:-1:-1;7346:5:5;;7353:2;;-1:-1:-1;;;;;7357:23:5;::::1;::::0;::::1;::::0;:38;;;;;::::1;::::0;;;;;;;;;:23;:38;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;7357:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7357:38:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;7357:38:5;7318:27:::1;:78::i;:::-;7412:4;-1:-1:-1::0;;;;;7406:20:5::1;;7427:9;7406:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;7406:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7406:31:5;;;;7447:45;7478:2;7482:9;7447:30;:45::i;15355:819::-:0;15605:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;15648:4:::1;-1:-1:-1::0;;;;;15637:15:5::1;:4;;15642:1;15637:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;15637:7:5::1;-1:-1:-1::0;;;;;15637:15:5::1;;15629:54;;;::::0;;-1:-1:-1;;;15629:54:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;15629:54:5;;;;;;;;;;;;;::::1;;15693:13;15709:9;15693:25;;15734:4;-1:-1:-1::0;;;;;15728:19:5::1;;15755:8;15728:38;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15728:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15728:38:5;;;;;15789:4;-1:-1:-1::0;;;;;15783:20:5::1;;15804:48;15826:7;15835:4;;15840:1;15835:7;;;;;;15804:48;15854:8;15783:80;;;;;;;;;;;;;-1:-1:-1::0;;;;;15783:80:5::1;-1:-1:-1::0;;;;;15783:80:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15783:80:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15783:80:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15783:80:5;15776:88:::1;;;;15874:18;15902:4:::0;;-1:-1:-1;;15907:15:5;;15902:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15902:21:5::1;-1:-1:-1::0;;;;;15895:39:5::1;;15935:2;15895:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15895:43:5::1;-1:-1:-1::0;;;;;15895:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15895:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15895:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15895:43:5;15948:44:::1;::::0;;15895:43:::1;15948:44:::0;;::::1;::::0;;;;;;;;;;;15895:43;;-1:-1:-1;15948:44:5::1;::::0;;;15983:4;;;;;;15948:44;::::1;::::0;15983:4;;15948:44;15983:4;15948:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;15989:2:5;;-1:-1:-1;15948:34:5::1;::::0;-1:-1:-1;;15948:44:5:i:1;:::-;16089:12:::0;16023:62:::1;16071:13:::0;16030:4;;-1:-1:-1;;16035:15:5;;16030:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16030:21:5::1;-1:-1:-1::0;;;;;16023:39:5::1;;16063:2;16023:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;16023:43:5::1;-1:-1:-1::0;;;;;16023:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;3937:831:5::0;4183:12;4197;4164:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;4221:12:::1;4236:46;4258:7;4267:6;4275;4236:21;:46::i;:::-;4292:59;::::0;;-1:-1:-1;;;4292:59:5;;4323:10:::1;4292:59;::::0;::::1;::::0;-1:-1:-1;;;;;4292:30:5;::::1;:59:::0;;;;;;;;;;;;;;4221:61;;-1:-1:-1;4292:30:5;;::::1;::::0;:59;;;;;::::1;::::0;;;;;;;;;-1:-1:-1;4292:30:5;:59;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4292:59:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4292:59:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;4418:26:5::1;::::0;;-1:-1:-1;;;4418:26:5;;-1:-1:-1;;;;;4418:26:5;;::::1;;::::0;::::1;::::0;;;4388:12:::1;::::0;;;4418:22;;::::1;::::0;::::1;::::0;:26;;;;;;;;;;;4388:12;4418:22;:26;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4418:26:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4418:26:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;4418:26:5;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;4418:26:5;-1:-1:-1;4455:14:5::1;4474:40;4499:6:::0;4507;4474:24:::1;:40::i;:::-;4454:60;;;4555:6;-1:-1:-1::0;;;;;4545:16:5::1;:6;-1:-1:-1::0;;;;;4545:16:5::1;;:58;;4586:7;4595;4545:58;;;4565:7;4574;4545:58;4524:79:::0;;-1:-1:-1;4524:79:5;-1:-1:-1;4621:21:5;;::::1;;4613:69;;;;-1:-1:-1::0;;;4613:69:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4711:10;4700:7;:21;;4692:69;;;;-1:-1:-1::0;;;4692:69:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;592:1;;;;3937:831:::0;;;;;;;;;;;:::o;388:41::-;;;:::o;17781:242::-;17920:21;17964:52;17992:7;18001:8;18011:4;17964:27;:52::i;6093:650::-;6374:16;6392:14;6418:12;6433:43;6455:7;6464:5;6471:4;6433:21;:43::i;:::-;6418:58;;6486:10;6499;:33;;6523:9;6499:33;;;-1:-1:-1;;6499:33:5;6542:77;;;-1:-1:-1;;;6542:77:5;;6567:10;6542:77;;;;6587:4;6542:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6486:46;;-1:-1:-1;;;;;;6542:24:5;;;;;:77;;;;;-1:-1:-1;;6542:77:5;;;;;;;;-1:-1:-1;6542:24:5;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;6542:77:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6542:77:5;;;;6656:80;6675:5;6682:9;6693:14;6709:12;6723:2;6727:8;6656:18;:80::i;:::-;6629:107;;;;-1:-1:-1;6093:650:5;-1:-1:-1;;;;;;;;;;;;;6093:650:5:o;2230:717::-;2509:12;2523;2537:14;2490:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;2584:85:::1;2598:6;2606;2614:14;2630;2646:10;2658;2584:13;:85::i;:::-;2563:106:::0;;-1:-1:-1;2563:106:5;-1:-1:-1;2679:12:5::1;2694:46;2716:7;2725:6:::0;2733;2694:21:::1;:46::i;:::-;2679:61;;2750:66;2782:6;2790:10;2802:4;2808:7;2750:31;:66::i;:::-;2826;2858:6;2866:10;2878:4;2884:7;2826:31;:66::i;:::-;2926:4;-1:-1:-1::0;;;;;2914:22:5::1;;2937:2;2914:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;2914:26:5::1;-1:-1:-1::0;;;;;2914:26:5::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;2914:26:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2914:26:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;2914:26:5;2230:717;;;;-1:-1:-1;2914:26:5;;-1:-1:-1;2230:717:5;;-1:-1:-1;;;;;;;;;2230:717:5:o;2952:945::-;3198:16;3216:14;3232;3179:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;3285:169:::1;3312:5;3331:4;3349:18;3381:9;3404:14;3432:12;3285:13;:169::i;:::-;3258:196:::0;;-1:-1:-1;3258:196:5;-1:-1:-1;3464:12:5::1;3479:43;3501:7;3510:5:::0;3517:4:::1;3479:21;:43::i;:::-;3464:58;;3532:69;3564:5;3571:10;3583:4;3589:11;3532:31;:69::i;:::-;3617:4;-1:-1:-1::0;;;;;3611:19:5::1;;3638:9;3611:39;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3611:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3611:39:5;;;;;3673:4;-1:-1:-1::0;;;;;3667:20:5::1;;3688:4;3694:9;3667:37;;;;;;;;;;;;;-1:-1:-1::0;;;;;3667:37:5::1;-1:-1:-1::0;;;;;3667:37:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3667:37:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3667:37:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3667:37:5;3660:45:::1;;;;3739:4;-1:-1:-1::0;;;;;3727:22:5::1;;3750:2;3727:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;3727:26:5::1;-1:-1:-1::0;;;;;3727:26:5::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3727:26:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3727:26:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3727:26:5;;-1:-1:-1;3802:9:5::1;:21:::0;-1:-1:-1;3798:92:5::1;;;3825:65;3856:10;3880:9;3868;:21;3825:30;:65::i;:::-;592:1;2952:945:::0;;;;;;;;;;;:::o;12533:782::-;12740:21;12713:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;12796:4:::1;-1:-1:-1::0;;;;;12785:15:5::1;:4;;12790:1;12785:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12785:7:5::1;-1:-1:-1::0;;;;;12785:15:5::1;;12777:54;;;::::0;;-1:-1:-1;;;12777:54:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;12777:54:5;;;;;;;;;;;;;::::1;;12851:52;12878:7;12887:9;12898:4;;12851:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12851:26:5::1;::::0;-1:-1:-1;;;12851:52:5:i:1;:::-;12841:62;;12935:9;12921:7;12929:1;12921:10;;;;;;;;;;;;;;:23;;12913:72;;;;-1:-1:-1::0;;;12913:72:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13001:4;-1:-1:-1::0;;;;;12995:19:5::1;;13022:7;13030:1;13022:10;;;;;;;;;;;;;;12995:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12995:40:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12995:40:5;;;;;13058:4;-1:-1:-1::0;;;;;13052:20:5::1;;13073:48;13095:7;13104:4;;13109:1;13104:7;;;;;;13073:48;13123:7;13131:1;13123:10;;;;;;;;;;;;;;13052:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;13052:82:5::1;-1:-1:-1::0;;;;;13052:82:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13052:82:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13052:82:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;13052:82:5;13045:90:::1;;;;13145:24;13151:7;13160:4;;13145:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;13166:2:5;;-1:-1:-1;13145:5:5::1;::::0;-1:-1:-1;;13145:24:5:i:1;:::-;13230:7;13238:1;13230:10;;;;;;;;;;;;;;13218:9;:22;13214:94;;;13242:66;13273:10;13297:7;13305:1;13297:10;;;;;;;;;;;;;;13285:9;:22;13242:30;:66::i;526:357:24:-:0;719:45;;;-1:-1:-1;;;;;719:45:24;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;719:45:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;708:57:24;;;;673:12;;687:17;;708:10;;;;719:45;708:57;;;25:18:-1;708:57:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;708:57:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;672:93:24;;;;783:7;:57;;;;-1:-1:-1;795:11:24;;:16;;:44;;;826:4;815:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;815:24:24;795:44;775:101;;;;;-1:-1:-1;;;775:101:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;526:357;;;;;:::o;1293:192::-;1400:12;;;1362;1400;;;;;;;;;-1:-1:-1;;;;;1379:7:24;;;1393:5;;1379:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1379:34:24;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1361:52:24;;;1431:7;1423:55;;;;-1:-1:-1;;;1423:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1293:192;;;:::o;3663:543:18:-;3764:21;3820:1;3805:4;:11;:16;;3797:56;;;;;-1:-1:-1;;;3797:56:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;3884:4;:11;3873:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3873:23:18;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;3873:23:18;;3863:33;;3919:8;3906:7;3914:1;3906:10;;;;;;;;;;;;;:21;;;;;3942:6;3937:263;3968:1;3954:4;:11;:15;3950:1;:19;3937:263;;;3991:14;4007:15;4026:42;4038:7;4047:4;4052:1;4047:7;;;;;;;;;;;;;;4056:4;4061:1;4065;4061:5;4056:11;;;;;;;;;;;;;;4026;:42::i;:::-;3990:78;;;;4099:90;4112:7;4120:1;4112:10;;;;;;;;;;;;;;4124:9;4135:10;4147:41;4158:7;4167:4;4172:1;4167:7;;;;;;;;;;;;;;4176:4;4181:1;4185;4181:5;4176:11;;;;;;;;;;;;;;4147:10;:41::i;:::-;4099:12;:90::i;:::-;4082:7;4090:1;4094;4090:5;4082:14;;;;;;;;;;;;;;;;;:107;-1:-1:-1;;3971:3:18;;3937:263;;;;3663:543;;;;;:::o;698:450::-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;889:398:24:-;1112:51;;;-1:-1:-1;;;;;1112:51:24;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1112:51:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1101:63:24;;;;1066:12;;1080:17;;1101:10;;;;1112:51;1101:63;;;25:18:-1;1101:63:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1101:63:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1065:99:24;;;;1182:7;:57;;;;-1:-1:-1;1194:11:24;;:16;;:44;;;1225:4;1214:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1214:24:24;1194:44;1174:106;;;;-1:-1:-1;;;1174:106:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:398;;;;;;:::o;8308:712:5:-;8414:6;8409:605;8440:1;8426:4;:11;:15;8422:1;:19;8409:605;;;8463:13;8478:14;8497:4;8502:1;8497:7;;;;;;;;;;;;;;8506:4;8511:1;8515;8511:5;8506:11;;;;;;;;;;;;;;8462:56;;;;8533:14;8552:39;8577:5;8584:6;8552:24;:39::i;:::-;8532:59;;;8605:14;8622:7;8630:1;8634;8630:5;8622:14;;;;;;;;;;;;;;8605:31;;8651:15;8668;8696:6;-1:-1:-1;;;;;8687:15:5;:5;-1:-1:-1;;;;;8687:15:5;;:61;;8729:9;8745:1;8687:61;;;8711:1;8715:9;8687:61;8650:98;;;;8762:10;8793:1;8779:4;:11;:15;8775:1;:19;:79;;8851:3;8775:79;;;8797:51;8819:7;8828:6;8836:4;8841:1;8845;8841:5;8836:11;;;;;;;;;;;;;;8797:21;:51::i;:::-;8762:92;;8880:45;8902:7;8911:5;8918:6;8880:21;:45::i;:::-;-1:-1:-1;;;;;8868:63:5;;8949:10;8961;8973:2;8987:1;8977:12;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;108:14;8977:12:5;87:42:-1;143:17;;-1:-1;8977:12:5;;8868:135;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8868:135:5;-1:-1:-1;;;;;8868:135:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8868:135:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8868:135:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8443:3:5;;;;;-1:-1:-1;8409:605:5;;-1:-1:-1;;;;;;;;8409:605:5;;;8308:712;;;:::o;4284:564:18:-;4385:21;4441:1;4426:4;:11;:16;;4418:56;;;;;-1:-1:-1;;;4418:56:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;4505:4;:11;4494:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4494:23:18;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;4494:23:18;;4484:33;;4557:9;4527:7;4552:1;4535:7;:14;:18;4527:27;;;;;;;;;;;;;;;;;:39;4590:11;;-1:-1:-1;;4590:15:18;4576:266;4607:5;;4576:266;;4634:14;4650:15;4669:42;4681:7;4690:4;4699:1;4695;:5;4690:11;;;;;;;;;;;;;;4703:4;4708:1;4703:7;;;;;;;4669:42;4633:78;;;;4742:89;4754:7;4762:1;4754:10;;;;;;;;;;;;;;4766:9;4777:10;4789:41;4800:7;4809:4;4818:1;4814;:5;4809:11;;;;;;;;;;;;;;4822:4;4827:1;4822:7;;;;;;;4789:41;4742:11;:89::i;:::-;4725:7;4737:1;4733;:5;4725:14;;;;;;;;;;;;;;;;;:106;-1:-1:-1;;;;4614:3:18;4576:266;;2430:540;2537:14;2582:1;2571:8;:12;2563:65;;;;-1:-1:-1;;;2563:65:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2658:1;2646:9;:13;:31;;;;;2676:1;2663:10;:14;2646:31;2638:81;;;;-1:-1:-1;;;2638:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2729:20;2752:38;2765:24;2770:5;2781:7;2765:24;:15;:24;:::i;:::-;2752:8;;:38;:12;:38;:::i;:::-;2729:61;-1:-1:-1;2800:14:18;2817:31;2729:61;2837:10;2817:31;:19;:31;:::i;:::-;2800:48;-1:-1:-1;2858:16:18;2877:41;2902:15;2877:20;:9;2891:5;2877:20;:13;:20;:::i;:::-;:24;:41;:24;:41;:::i;:::-;2858:60;;2952:11;2940:9;:23;;;;;;;2430:540;-1:-1:-1;;;;;;;;2430:540:18:o;3088:496::-;3195:13;3240:1;3228:9;:13;3220:67;;;;-1:-1:-1;;;3220:67:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3317:1;3305:9;:13;:31;;;;;3335:1;3322:10;:14;3305:31;3297:81;;;;-1:-1:-1;;;3297:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3388:14;3405:35;3434:5;3405:24;:9;3419;3405:24;:13;:24;:::i;:::-;:28;:35;:28;:35;:::i;:::-;3388:52;-1:-1:-1;3450:16:18;3469:55;3499:24;3504:5;3515:7;3499:24;:15;:24;:::i;:::-;3469:25;:10;3484:9;3469:25;:14;:25;:::i;:55::-;3450:74;;3545:32;3575:1;3558:11;3546:9;:23;;;;;;;3545:32;:29;:32;:::i;:::-;3534:43;3088:496;-1:-1:-1;;;;;;;3088:496:18:o;13458:1195:5:-;13570:6;13565:1082;13596:1;13582:4;:11;:15;13578:1;:19;13565:1082;;;13619:13;13634:14;13653:4;13658:1;13653:7;;;;;;;;;;;;;;13662:4;13667:1;13671;13667:5;13662:11;;;;;;;;;;;;;;13618:56;;;;13689:14;13708:39;13733:5;13740:6;13708:24;:39::i;:::-;13688:59;;;13761:16;13792:45;13814:7;13823:5;13830:6;13792:21;:45::i;:::-;13761:77;;13852:16;13882:17;13968:13;13983;14001:4;-1:-1:-1;;;;;14001:16:5;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14001:18:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14001:18:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14001:18:5;;;;;;;-1:-1:-1;;;;;13967:52:5;;;;-1:-1:-1;13967:52:5;;-1:-1:-1;14034:17:5;;-1:-1:-1;;;;;14075:15:5;;;;;;;:61;;14117:8;14127;14075:61;;;14094:8;14104;14075:61;14033:103;;;;14164:56;14207:12;14171:5;-1:-1:-1;;;;;14164:23:5;;14196:4;14164:38;;;;;;;;;;;;;-1:-1:-1;;;;;14164:38:5;-1:-1:-1;;;;;14164:38:5;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;14164:56:5;14150:70;;14249:84;14276:11;14289:12;14303:13;14318:4;-1:-1:-1;;;;;14318:12:5;;:14;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14318:14:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14318:14:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14318:14:5;14249:84;;:26;:84::i;:::-;14234:99;;13565:1082;;;;14362:15;14379;14407:6;-1:-1:-1;;;;;14398:15:5;:5;-1:-1:-1;;;;;14398:15:5;;:67;;14443:12;14462:1;14398:67;;;14422:1;14426:12;14398:67;14361:104;;;;14479:10;14510:1;14496:4;:11;:15;14492:1;:19;:79;;14568:3;14492:79;;;14514:51;14536:7;14545:6;14553:4;14558:1;14562;14558:5;14553:11;;;;;;;14514:51;14623:12;;;14633:1;14623:12;;;;;;;;;;-1:-1:-1;;;14585:51:5;;;;;;;;;;;;;;-1:-1:-1;;;;;14585:51:5;;;;;;;;;;;;;;;;;;;;;;14479:92;;-1:-1:-1;14585:9:5;;;;;;14595:10;;14607;;14479:92;;14623:12;;14585:51;;;;;;;;14623:12;;14585:51;;;;14623:12;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14585:51:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14585:51:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13599:3:5;;;;;-1:-1:-1;13565:1082:5;;-1:-1:-1;;;;;;;;;;13565:1082:5;286:127:23;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;2000:311:18;2082:12;2124:1;2114:7;:11;2106:58;;;;-1:-1:-1;;;2106:58:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2193:1;2182:8;:12;:28;;;;;2209:1;2198:8;:12;2182:28;2174:78;;;;-1:-1:-1;;;2174:78:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2296:8;2272:21;:7;2284:8;2272:21;:11;:21;:::i;:::-;:32;;;;;;;2000:311;-1:-1:-1;;;;2000:311:18:o;270:339::-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;883:1342:5:-;1187:47;;;-1:-1:-1;;;1187:47:5;;-1:-1:-1;;;;;1187:47:5;;;;;;;;;;;;;;;;1094:12;;;;;;1202:7;1187:31;;;;;;:47;;;;;;;;;;;;;;;:31;:47;;;2:2:-1;;;;27:1;24;17:12;2:2;1187:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1187:47:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1187:47:5;-1:-1:-1;;;;;1187:61:5;;1183:142;;;1264:50;;;-1:-1:-1;;;1264:50:5;;-1:-1:-1;;;;;1264:50:5;;;;;;;;;;;;;;;;1279:7;1264:34;;;;;;:50;;;;;;;;;;;;;;;-1:-1:-1;1264:34:5;:50;;;2:2:-1;;;;27:1;24;17:12;2:2;1264:50:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1264:50:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;1183:142:5;1335:13;1350;1367:50;1393:7;1402:6;1410;1367:25;:50::i;:::-;1334:83;;;;1431:8;1443:1;1431:13;:30;;;;-1:-1:-1;1448:13:5;;1431:30;1427:792;;;1499:14;;-1:-1:-1;1515:14:5;;-1:-1:-1;1427:792:5;;;1561:19;1583:55;1603:14;1619:8;1629;1583:19;:55::i;:::-;1561:77;;1674:14;1656;:32;1652:557;;1734:10;1716:14;:28;;1708:76;;;;-1:-1:-1;;;1708:76:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1824:14;;-1:-1:-1;1840:14:5;-1:-1:-1;1840:14:5;1652:557;;;1894:19;1916:55;1936:14;1952:8;1962;1916:19;:55::i;:::-;1894:77;;2014:14;1996;:32;;1989:40;;;;2073:10;2055:14;:28;;2047:76;;;;-1:-1:-1;;;2047:76:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:14;-1:-1:-1;2179:14:5;;-1:-1:-1;1652:557:5;1427:792;;883:1342;;;;;;;;;;;:::o;1203:384:18:-;1296:13;1311;1337:14;1356:26;1367:6;1375;1356:10;:26::i;:::-;1336:46;;;1393:13;1408;1438:32;1446:7;1455:6;1463;1438:7;:32::i;:::-;-1:-1:-1;;;;;1426:57:18;;:59;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1426:59:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1426:59:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1426:59:18;;;;;;;-1:-1:-1;;;;;1392:93:18;;;;-1:-1:-1;1392:93:18;;-1:-1:-1;;;;;;1518:16:18;;;;;;;:62;;1561:8;1571;1518:62;;;1538:8;1548;1518:62;1495:85;;;;-1:-1:-1;1203:384:18;-1:-1:-1;;;;;;;1203:384:18:o;1646:244::-;1738:12;1763:14;1782:26;1793:6;1801;1782:10;:26::i;:::-;1762:46;;;1840:32;1848:7;1857:6;1865;1840:7;:32::i;:::-;-1:-1:-1;;;;;1828:53:18;;:55;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1828:55:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1828:55:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1828:55:18;1818:65;;;1646:244;-1:-1:-1;;;;;1646:244:18:o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;;;154:126;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;" - }, - "contracts/examples/DXswapRelayer.sol:DXswapRelayer": { - "abi": [ - { - "inputs": [ - { - "internalType": "address payable", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_dxSwapFactory", - "type": "address" - }, - { - "internalType": "address", - "name": "_dxSwapRouter", - "type": "address" - }, - { - "internalType": "address", - "name": "_uniswapFactory", - "type": "address" - }, - { - "internalType": "address", - "name": "_uniswapRouter", - "type": "address" - }, - { - "internalType": "address", - "name": "_WETH", - "type": "address" - }, - { - "internalType": "contract OracleCreator", - "name": "_oracleCreater", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_orderIndex", - "type": "uint256" - } - ], - "name": "ExecutedOrder", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_orderIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint8", - "name": "_action", - "type": "uint8" - } - ], - "name": "NewOrder", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_orderIndex", - "type": "uint256" - } - ], - "name": "WithdrawnExpiredOrder", - "type": "event" - }, - { - "inputs": [], - "name": "BOUNTY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "ERC20Withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "ETHWithdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "GAS_ORACLE_UPDATE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "name": "GetOrderDetails", - "outputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "action", - "type": "uint8" - }, - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "priceTolerance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveB", - "type": "uint256" - }, - { - "internalType": "address", - "name": "oraclePair", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxWindowTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "oracleId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "factory", - "type": "address" - }, - { - "internalType": "bool", - "name": "executed", - "type": "bool" - } - ], - "internalType": "struct DXswapRelayer.Order", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PARTS_PER_MILLION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PROVISION", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "REMOVAL", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "dxSwapFactory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "dxSwapRouter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "name": "executeOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "orderCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "priceTolerance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxWindowTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "address", - "name": "factory", - "type": "address" - } - ], - "name": "orderLiquidityProvision", - "outputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "priceTolerance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxWindowTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "address", - "name": "factory", - "type": "address" - } - ], - "name": "orderLiquidityRemoval", - "outputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address payable", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable", - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "uniswapFactory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "uniswapRouter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "name": "updateOracle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "name": "withdrawExpiredOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6101c0604052620291ac608052620f424060a052662386f26fc1000060c052600160f81b60e052600160f91b610100523480156200003c57600080fd5b5060405162003756380380620037568339810160408190526200005f91620000ca565b600380546001600160a01b039889166001600160a01b0319918216179091556001600160601b0319606097881b81166101205295871b86166101405293861b85166101605291851b84166101805290931b9091166101a052600080549290931691161790556200018d565b600080600080600080600060e0888a031215620000e5578283fd5b8751620000f28162000174565b6020890151909750620001058162000174565b6040890151909650620001188162000174565b60608901519095506200012b8162000174565b60808901519094506200013e8162000174565b60a0890151909350620001518162000174565b60c0890151909250620001648162000174565b8091505092959891949750929550565b6001600160a01b03811681146200018a57600080fd5b50565b60805160a05160c05160e05160f81c6101005160f81c6101205160601c6101405160601c6101605160601c6101805160601c6101a05160601c61347f620002d7600039806109bb52806110915280611f3352806121b3528061222752806123cb52806124f6528061254552806125b3528061260252508061052752508061054b52806105d052806110f25280611ed3525080610d0c528061106d528061224f528061227a52806122b55280612357528061238352806123f3528061241d52806124ce525080610503528061059552806109e45280610ffc52806110b75280611e985250806104df528061078c5280610b475280610fc7525080610f88528061140d528061161d528061184352508061193e5280611b335250806106e75280610ec65280610f1b52806111fd5280611b9d528061208552508061056f5280611962525061347f6000f3fe60806040526004361061012e5760003560e01c80639dd9b5f1116100ab578063c58125bc1161006f578063c58125bc146102d1578063d081f2b8146102f1578063d530f4e714610306578063ec6ea81214610326578063f2fde38b1461033b578063ffc5ea0d1461035b57610135565b80639dd9b5f11461025f578063ad5c464814610274578063b7345d2f14610289578063b964930a1461029c578063c23c1c9f146102b157610135565b80638bdb2afa116100f25780638bdb2afa146101e05780638c0a63bf146101f55780638d091c341461020a5780638da5cb5b1461022a57806394f611341461023f57610135565b80632453ffa81461013a5780632cb2db61146101655780634860bfe514610187578063659bd06f146101a9578063735de9f7146101cb57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610388565b60405161015c91906133d2565b60405180910390f35b34801561017157600080fd5b50610185610180366004612ab0565b61038e565b005b34801561019357600080fd5b5061019c6104dd565b60405161015c9190613411565b3480156101b557600080fd5b506101be610501565b60405161015c9190612c00565b3480156101d757600080fd5b506101be610525565b3480156101ec57600080fd5b506101be610549565b34801561020157600080fd5b5061014f61056d565b34801561021657600080fd5b5061014f610225366004612976565b610591565b34801561023657600080fd5b506101be610ba2565b34801561024b57600080fd5b5061018561025a366004612ab0565b610bb1565b34801561026b57600080fd5b506101be61106b565b34801561028057600080fd5b506101be61108f565b61014f6102973660046128e6565b6110b3565b3480156102a857600080fd5b5061019c611841565b3480156102bd57600080fd5b506101856102cc366004612ab0565b611865565b3480156102dd57600080fd5b506101856102ec366004612ab0565b611aee565b3480156102fd57600080fd5b5061014f611b31565b34801561031257600080fd5b50610185610321366004612a11565b611b55565b34801561033257600080fd5b5061014f611b9b565b34801561034757600080fd5b506101856103563660046128ca565b611bbf565b34801561036757600080fd5b5061037b610376366004612ab0565b611c3b565b60405161015c91906132f4565b60015481565b60008181526002602052604090206003546001600160a01b031633146103cf5760405162461bcd60e51b81526004016103c690612f31565b60405180910390fd5b806009015442116103f25760405162461bcd60e51b81526004016103c690613144565b600c810154600160a01b900460ff161561041e5760405162461bcd60e51b81526004016103c690612f9d565b8054600182015460028301546003840154600c8501805460ff60a01b1916600160a01b1790556001600160a01b0361010090940484169392909216918361047a57600354610475906001600160a01b031683611d1b565b610492565b6003546104929085906001600160a01b031684611dad565b6003546104aa9084906001600160a01b031683611dad565b60405186907f3f9d01b8340245ea975087559a7911155f1b300f5b19aa35fcc67d4adf962c8590600090a2505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061060457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6106205760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461064a5760405162461bcd60e51b81526004016103c690612f31565b8a6001600160a01b03168c6001600160a01b0316141561067c5760405162461bcd60e51b81526004016103c690612e81565b8a6001600160a01b03168c6001600160a01b0316106106ad5760405162461bcd60e51b81526004016103c690612eef565b6000891180156106bd5750600088115b80156106c9575060008a115b6106e55760405162461bcd60e51b81526004016103c6906130fd565b7f00000000000000000000000000000000000000000000000000000000000000008711156107255760405162461bcd60e51b81526004016103c690612d36565b824211156107455760405162461bcd60e51b81526004016103c690613187565b601e84116107655760405162461bcd60e51b81526004016103c690612d99565b60006107728d8d85611e94565b905061077c611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018e6001600160a01b031681526020018d6001600160a01b031681526020018b81526020018a81526020018c8152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff02191690831515021790555090505060006001600160a01b03168d6001600160a01b0316146109b9578c6109db565b7f00000000000000000000000000000000000000000000000000000000000000005b9c506000610a0a7f00000000000000000000000000000000000000000000000000000000000000008f8f611fe8565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190612a5c565b506001600160701b031691506001600160701b031691506000610aa68e8e85858d612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d6790610ad990849089906004016133db565b602060405180830381600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190612ac8565b600087815260026020526040808220600b0192909255905160ff7f0000000000000000000000000000000000000000000000000000000000000000169188917f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc9190a350505050509b9a5050505050505050505050565b6003546001600160a01b031681565b60008181526002602052604090206001548210610be05760405162461bcd60e51b81526004016103c69061300b565b600c810154600160a01b900460ff1615610c0c5760405162461bcd60e51b81526004016103c690612f9d565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa700391610c3f916004016133d2565b60206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612a3c565b610cab5760405162461bcd60e51b81526004016103c6906131be565b8060090154421115610ccf5760405162461bcd60e51b81526004016103c690613187565b8054600182015460008054600b8501546101009094046001600160a01b039081169493811693911690634023282b908515610d0a5785610d9b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6357600080fd5b505afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b91906128a7565b87600201546040518463ffffffff1660e01b8152600401610dbe939291906133f2565b60206040518083038186803b158015610dd657600080fd5b505afa158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e9190612ac8565b60008054600b8701546003880154604051634023282b60e01b815294955092936001600160a01b0390921692634023282b92610e4f929188916004016133f2565b60206040518083038186803b158015610e6757600080fd5b505afa158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612ac8565b905084600201548111610eb85784600301549150610ebf565b5060028401545b6000610f127f0000000000000000000000000000000000000000000000000000000000000000610efc88600501548561213f90919063ffffffff16565b81610f0357fe5b8491900463ffffffff61217c16565b90506000610f677f0000000000000000000000000000000000000000000000000000000000000000610f5189600501548761213f90919063ffffffff16565b81610f5857fe5b8691900463ffffffff61217c16565b600c8801805460ff60a01b1916600160a01b179055875490915060ff9081167f00000000000000000000000000000000000000000000000000000000000000009091161415610fc357610fbe86868587868661219f565b611036565b86547f000000000000000000000000000000000000000000000000000000000000000060ff9081169116141561103657600061102087877f0000000000000000000000000000000000000000000000000000000000000000611e94565b90506110348787838b6004015487876123b4565b505b60405188907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a25050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061112657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6111425760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461116c5760405162461bcd60e51b81526004016103c690612f31565b896001600160a01b03168b6001600160a01b0316141561119e5760405162461bcd60e51b81526004016103c690612e81565b896001600160a01b03168b6001600160a01b0316106111cf5760405162461bcd60e51b81526004016103c690612eef565b6000891180156111df5750600088115b6111fb5760405162461bcd60e51b81526004016103c690613077565b7f000000000000000000000000000000000000000000000000000000000000000087111561123b5760405162461bcd60e51b81526004016103c690612d36565b8242111561125b5760405162461bcd60e51b81526004016103c690613187565b601e841161127b5760405162461bcd60e51b81526004016103c690612d99565b6001600160a01b038b166112ae57884710156112a95760405162461bcd60e51b81526004016103c690612eb8565b61134a565b6040516370a0823160e01b815289906001600160a01b038d16906370a08231906112dc903090600401612c00565b60206040518083038186803b1580156112f457600080fd5b505afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c9190612ac8565b101561134a5760405162461bcd60e51b81526004016103c6906130ba565b6040516370a0823160e01b815288906001600160a01b038c16906370a0823190611378903090600401612c00565b60206040518083038186803b15801561139057600080fd5b505afa1580156113a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c89190612ac8565b10156113e65760405162461bcd60e51b81526004016103c690613200565b60006113f38c8c85611e94565b90506113fd611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018d6001600160a01b031681526020018c6001600160a01b031681526020018b81526020018a815260200160008152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff0219169083151502179055509050507f000000000000000000000000000000000000000000000000000000000000000060ff16827f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc60405160405180910390a3600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156116a857600080fd5b505afa1580156116bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e09190612a5c565b506001600160701b031691506001600160701b03169150886000148015611705575087155b801561170f575081155b8015611719575080155b15611788576000848152600260208190526040909120600c8101805460ff60a01b1916600160a01b1790550154611758908f908f908f908f908061219f565b60405184907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a2611830565b60006117978d8d85858c612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d67906117ca90849088906004016133db565b602060405180830381600087803b1580156117e457600080fd5b505af11580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190612ac8565b6000868152600260205260409020600b0155505b5050509a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081815260026020526040902060098101544211156118975760405162461bcd60e51b81526004016103c690613187565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa7003916118ca916004016133d2565b60206040518083038186803b1580156118e257600080fd5b505afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a9190612a3c565b156119375760405162461bcd60e51b81526004016103c690612f68565b60006119997f000000000000000000000000000000000000000000000000000000000000000061198d7f00000000000000000000000000000000000000000000000000000000000000003a63ffffffff61213f16565b9063ffffffff61267416565b90506000808360080160009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a269190612a5c565b506001600160701b031691506001600160701b0316915083600601548210158015611a55575083600701548110155b611a715760405162461bcd60e51b81526004016103c6906132bd565b600054600b850154604051634155c48560e11b81526001600160a01b03909216916382ab890a91611aa4916004016133d2565b600060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b50505050824710611ae757611ae73384611d1b565b5050505050565b6003546001600160a01b03163314611b185760405162461bcd60e51b81526004016103c690612f31565b600354611b2e906001600160a01b031682611d1b565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611b7f5760405162461bcd60e51b81526004016103c690612f31565b600354611b979083906001600160a01b031683611dad565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611be95760405162461bcd60e51b81526004016103c690613042565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611c43612808565b5060009081526002602081815260409283902083516101e081018552815460ff80821683526001600160a01b0361010092839004811695840195909552600184015485169683019690965293820154606082015260038201546080820152600482015460a0820152600582015460c0820152600682015460e0820152600782015493810193909352600881015482166101208401526009810154610140840152600a810154610160840152600b810154610180840152600c01549081166101a0830152600160a01b900490911615156101c082015290565b604080516000808252602082019092526001600160a01b038416908390604051611d459190612b71565b60006040518083038185875af1925050503d8060008114611d82576040519150601f19603f3d011682016040523d82523d6000602084013e611d87565b606091505b5050905080611da85760405162461bcd60e51b81526004016103c690613243565b505050565b60006060846001600160a01b031663a9059cbb8585604051602401611dd3929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611e0c9190612b71565b6000604051808303816000865af19150503d8060008114611e49576040519150601f19603f3d011682016040523d82523d6000602084013e611e4e565b606091505b5091509150818015611e78575080511580611e78575080806020019051810190611e789190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612cff565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480611f0757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b611f235760405162461bcd60e51b81526004016103c690612fd4565b6001600160a01b038416611f55577f000000000000000000000000000000000000000000000000000000000000000093505b60405163e6a4390560e01b81526001600160a01b0383169063e6a4390590611f839087908790600401612c14565b60206040518083038186803b158015611f9b57600080fd5b505afa158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906128a7565b949350505050565b6001805480820190915590565b6000806000611ff78585612697565b9150915085828260405160200161200f929190612b4a565b60405160208183030381529060405280519060200120604051602001612036929190612baa565b60408051601f1981840301815291905280516020909101209695505050505050565b600080841180156120695750600083115b15612133576000612080858563ffffffff61267416565b6120c07f00000000000000000000000000000000000000000000000000000000000000006120b48a8a63ffffffff61267416565b9063ffffffff61213f16565b816120c757fe5b0490506103e88110156120dd57601e915061211b565b6109c48110156120f057603c915061211b565b61138881101561210357605a915061211b565b612710811015612116576078915061211b565b609691505b82821115612129578261212b565b815b915050612136565b50805b95945050505050565b600081158061215a5750508082028282828161215757fe5b04145b6121765760405162461bcd60e51b81526004016103c690612d6b565b92915050565b808203828111156121765760405162461bcd60e51b81526004016103c690612cd0565b600080806001600160a01b038916612249577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0886040518263ffffffff1660e01b81526004016000604051808303818588803b15801561220c57600080fd5b505af1158015612220573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000098505b612274897f000000000000000000000000000000000000000000000000000000000000000089612721565b61229f887f000000000000000000000000000000000000000000000000000000000000000088612721565b60405162e8e33760e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e8e33700906122f8908c908c908c908c908c908c9030904290600401612c6e565b606060405180830381600087803b15801561231257600080fd5b505af1158015612326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234a9190612b03565b9194509250905061237d897f00000000000000000000000000000000000000000000000000000000000000006000612721565b6123a9887f00000000000000000000000000000000000000000000000000000000000000006000612721565b505050505050505050565b6001600160a01b038616156123c957856123eb565b7f00000000000000000000000000000000000000000000000000000000000000005b9550612418847f000000000000000000000000000000000000000000000000000000000000000085612721565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663baa2abde898988888830426040518863ffffffff1660e01b81526004016124739796959493929190612c2e565b6040805180830381600087803b15801561248c57600080fd5b505af11580156124a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c49190612ae0565b915091506124f4867f00000000000000000000000000000000000000000000000000000000000000006000612721565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614156125b157604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d9061257a9085906004016133d2565b600060405180830381600087803b15801561259457600080fd5b505af11580156125a8573d6000803e3d6000fd5b5050505061266a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316141561266a57604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906126379084906004016133d2565b600060405180830381600087803b15801561265157600080fd5b505af1158015612665573d6000803e3d6000fd5b505050505b5050505050505050565b808201828110156121765760405162461bcd60e51b81526004016103c690612dda565b600080826001600160a01b0316846001600160a01b031614156126cc5760405162461bcd60e51b81526004016103c690612e3f565b826001600160a01b0316846001600160a01b0316106126ec5782846126ef565b83835b90925090506001600160a01b03821661271a5760405162461bcd60e51b81526004016103c690613286565b9250929050565b60006060846001600160a01b031663095ea7b38585604051602401612747929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516127809190612b71565b6000604051808303816000865af19150503d80600081146127bd576040519150601f19603f3d011682016040523d82523d6000602084013e6127c2565b606091505b50915091508180156127ec5750805115806127ec5750808060200190518101906127ec9190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612e08565b604051806101e00160405280600060ff16815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000151581525090565b6000602082840312156128b8578081fd5b81516128c38161341f565b9392505050565b6000602082840312156128db578081fd5b81356128c38161341f565b6000806000806000806000806000806101408b8d031215612905578586fd5b8a356129108161341f565b995060208b01356129208161341f565b985060408b0135975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b01356129638161341f565b809150509295989b9194979a5092959850565b60008060008060008060008060008060006101608c8e031215612997578081fd5b8b356129a28161341f565b9a5060208c01356129b28161341f565b995060408c0135985060608c0135975060808c0135965060a08c0135955060c08c0135945060e08c013593506101008c013592506101208c013591506101408c01356129fd8161341f565b809150509295989b509295989b9093969950565b60008060408385031215612a23578182fd5b8235612a2e8161341f565b946020939093013593505050565b600060208284031215612a4d578081fd5b815180151581146128c3578182fd5b600080600060608486031215612a70578283fd5b8351612a7b81613434565b6020850151909350612a8c81613434565b604085015190925063ffffffff81168114612aa5578182fd5b809150509250925092565b600060208284031215612ac1578081fd5b5035919050565b600060208284031215612ad9578081fd5b5051919050565b60008060408385031215612af2578182fd5b505080516020909101519092909150565b600080600060608486031215612b17578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03169052565b15159052565b60ff169052565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b60008251815b81811015612b915760208186018101518583015201612b77565b81811115612b9f5782828501525b509190910192915050565b6001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776603582015260550190565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039788168152958716602087015260408601949094526060850192909252608084015290921660a082015260c081019190915260e00190565b6001600160a01b039889168152968816602088015260408701959095526060860193909352608085019190915260a084015290921660c082015260e08101919091526101000190565b6001600160a01b03929092168252602082015260400190565b60208082526015908201527464732d6d6174682d7375622d756e646572666c6f7760581b604082015260600190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b6020808252818101527f44587377617052656c617965723a20494e56414c49445f544f4c4552414e4345604082015260600190565b60208082526014908201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604082015260600190565b60208082526021908201527f44587377617052656c617965723a20494e56414c49445f57494e444f5754494d6040820152604560f81b606082015260800190565b60208082526014908201527364732d6d6174682d6164642d6f766572666c6f7760601b604082015260600190565b6020808252601e908201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604082015260600190565b60208082526022908201527f4458737761704c6962726172793a204944454e544943414c5f41444452455353604082015261455360f01b606082015260800190565b6020808252601b908201527f44587377617052656c617965723a20494e56414c49445f504149520000000000604082015260600190565b6020808252601f908201527f44587377617052656c617965723a20494e53554646494349454e545f45544800604082015260600190565b60208082526022908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f4f524460408201526122a960f11b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252818101527f44587377617052656c617965723a204f42534552564154494f4e5f454e444544604082015260600190565b6020808252601d908201527f44587377617052656c617965723a204f524445525f4558454355544544000000604082015260600190565b6020808252601e908201527f44587377617052656c617965723a20494e56414c49445f464143544f52590000604082015260600190565b6020808252601c908201527f44587377617052656c617965723a20494e56414c49445f4f5244455200000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f414d4f60408201526215539560ea1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b456040820152624e5f4160e81b606082015260800190565b60208082526027908201527f44587377617052656c617965723a20494e56414c49445f4c495155494449545960408201526617d05353d5539560ca1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20444541444c494e455f4e4f545f5245414360408201526212115160ea1b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a20444541444c494e455f5245414348454400604082015260600190565b60208082526022908201527f44587377617052656c617965723a204f42534552564154494f4e5f52554e4e496040820152614e4760f01b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b45604082015262272fa160e91b606082015260800190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201526213115160ea1b606082015260800190565b6020808252601b908201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604082015260600190565b6020808252601d908201527f44587377617052656c617965723a20524553455256455f544f5f4c4f57000000604082015260600190565b60006101e082019050613308828451612b43565b602083015161331a6020840182612b30565b50604083015161332d6040840182612b30565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161337f82850182612b30565b50506101408381015190830152610160808401519083015261018080840151908301526101a0808401516133b582850182612b30565b50506101c0808401516133ca82850182612b3d565b505092915050565b90815260200190565b9182526001600160a01b0316602082015260400190565b9283526001600160a01b03919091166020830152604082015260600190565b60ff91909116815260200190565b6001600160a01b0381168114611b2e57600080fd5b6001600160701b0381168114611b2e57600080fdfea2646970667358221220878d47103d0be171d335c3b565fa1348f7b750cc33c825d6f23a214eb23487c564736f6c63430006060033", - "opcodes": "PUSH2 0x1C0 PUSH1 0x40 MSTORE PUSH3 0x291AC PUSH1 0x80 MSTORE PUSH3 0xF4240 PUSH1 0xA0 MSTORE PUSH7 0x2386F26FC10000 PUSH1 0xC0 MSTORE PUSH1 0x1 PUSH1 0xF8 SHL PUSH1 0xE0 MSTORE PUSH1 0x1 PUSH1 0xF9 SHL PUSH2 0x100 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3756 CODESIZE SUB DUP1 PUSH3 0x3756 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x5F SWAP2 PUSH3 0xCA JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP8 DUP9 SHL DUP2 AND PUSH2 0x120 MSTORE SWAP6 DUP8 SHL DUP7 AND PUSH2 0x140 MSTORE SWAP4 DUP7 SHL DUP6 AND PUSH2 0x160 MSTORE SWAP2 DUP6 SHL DUP5 AND PUSH2 0x180 MSTORE SWAP1 SWAP4 SHL SWAP1 SWAP2 AND PUSH2 0x1A0 MSTORE PUSH1 0x0 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE PUSH3 0x18D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH3 0xE5 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 MLOAD PUSH3 0xF2 DUP2 PUSH3 0x174 JUMP JUMPDEST PUSH1 0x20 DUP10 ADD MLOAD SWAP1 SWAP8 POP PUSH3 0x105 DUP2 PUSH3 0x174 JUMP JUMPDEST PUSH1 0x40 DUP10 ADD MLOAD SWAP1 SWAP7 POP PUSH3 0x118 DUP2 PUSH3 0x174 JUMP JUMPDEST PUSH1 0x60 DUP10 ADD MLOAD SWAP1 SWAP6 POP PUSH3 0x12B DUP2 PUSH3 0x174 JUMP JUMPDEST PUSH1 0x80 DUP10 ADD MLOAD SWAP1 SWAP5 POP PUSH3 0x13E DUP2 PUSH3 0x174 JUMP JUMPDEST PUSH1 0xA0 DUP10 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x151 DUP2 PUSH3 0x174 JUMP JUMPDEST PUSH1 0xC0 DUP10 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x164 DUP2 PUSH3 0x174 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH1 0xF8 SHR PUSH2 0x100 MLOAD PUSH1 0xF8 SHR PUSH2 0x120 MLOAD PUSH1 0x60 SHR PUSH2 0x140 MLOAD PUSH1 0x60 SHR PUSH2 0x160 MLOAD PUSH1 0x60 SHR PUSH2 0x180 MLOAD PUSH1 0x60 SHR PUSH2 0x1A0 MLOAD PUSH1 0x60 SHR PUSH2 0x347F PUSH3 0x2D7 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x9BB MSTORE DUP1 PUSH2 0x1091 MSTORE DUP1 PUSH2 0x1F33 MSTORE DUP1 PUSH2 0x21B3 MSTORE DUP1 PUSH2 0x2227 MSTORE DUP1 PUSH2 0x23CB MSTORE DUP1 PUSH2 0x24F6 MSTORE DUP1 PUSH2 0x2545 MSTORE DUP1 PUSH2 0x25B3 MSTORE DUP1 PUSH2 0x2602 MSTORE POP DUP1 PUSH2 0x527 MSTORE POP DUP1 PUSH2 0x54B MSTORE DUP1 PUSH2 0x5D0 MSTORE DUP1 PUSH2 0x10F2 MSTORE DUP1 PUSH2 0x1ED3 MSTORE POP DUP1 PUSH2 0xD0C MSTORE DUP1 PUSH2 0x106D MSTORE DUP1 PUSH2 0x224F MSTORE DUP1 PUSH2 0x227A MSTORE DUP1 PUSH2 0x22B5 MSTORE DUP1 PUSH2 0x2357 MSTORE DUP1 PUSH2 0x2383 MSTORE DUP1 PUSH2 0x23F3 MSTORE DUP1 PUSH2 0x241D MSTORE DUP1 PUSH2 0x24CE MSTORE POP DUP1 PUSH2 0x503 MSTORE DUP1 PUSH2 0x595 MSTORE DUP1 PUSH2 0x9E4 MSTORE DUP1 PUSH2 0xFFC MSTORE DUP1 PUSH2 0x10B7 MSTORE DUP1 PUSH2 0x1E98 MSTORE POP DUP1 PUSH2 0x4DF MSTORE DUP1 PUSH2 0x78C MSTORE DUP1 PUSH2 0xB47 MSTORE DUP1 PUSH2 0xFC7 MSTORE POP DUP1 PUSH2 0xF88 MSTORE DUP1 PUSH2 0x140D MSTORE DUP1 PUSH2 0x161D MSTORE DUP1 PUSH2 0x1843 MSTORE POP DUP1 PUSH2 0x193E MSTORE DUP1 PUSH2 0x1B33 MSTORE POP DUP1 PUSH2 0x6E7 MSTORE DUP1 PUSH2 0xEC6 MSTORE DUP1 PUSH2 0xF1B MSTORE DUP1 PUSH2 0x11FD MSTORE DUP1 PUSH2 0x1B9D MSTORE DUP1 PUSH2 0x2085 MSTORE POP DUP1 PUSH2 0x56F MSTORE DUP1 PUSH2 0x1962 MSTORE POP PUSH2 0x347F PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9DD9B5F1 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xC58125BC GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC58125BC EQ PUSH2 0x2D1 JUMPI DUP1 PUSH4 0xD081F2B8 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0xD530F4E7 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0xEC6EA812 EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0xFFC5EA0D EQ PUSH2 0x35B JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x9DD9B5F1 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xB7345D2F EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0xB964930A EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0xC23C1C9F EQ PUSH2 0x2B1 JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x8BDB2AFA GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x8BDB2AFA EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x8C0A63BF EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x8D091C34 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x94F61134 EQ PUSH2 0x23F JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x2453FFA8 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x2CB2DB61 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x4860BFE5 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x659BD06F EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x735DE9F7 EQ PUSH2 0x1CB JUMPI PUSH2 0x135 JUMP JUMPDEST CALLDATASIZE PUSH2 0x135 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x388 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x171 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x180 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x38E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x3411 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x501 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x2C00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x525 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x549 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x56D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x2976 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0xBA2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0xBB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x106B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x108F JUMP JUMPDEST PUSH2 0x14F PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x28E6 JUMP JUMPDEST PUSH2 0x10B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x1841 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x2CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x1865 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x2EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x1AEE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x1B31 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A11 JUMP JUMPDEST PUSH2 0x1B55 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x332 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x1B9B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CA JUMP JUMPDEST PUSH2 0x1BBF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37B PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x1C3B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x9 ADD SLOAD TIMESTAMP GT PUSH2 0x3F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x41E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F9D JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0xC DUP6 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP1 SWAP5 DIV DUP5 AND SWAP4 SWAP3 SWAP1 SWAP3 AND SWAP2 DUP4 PUSH2 0x47A JUMPI PUSH1 0x3 SLOAD PUSH2 0x475 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x1D1B JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x492 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH2 0x1DAD JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x4AA SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x1DAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP7 SWAP1 PUSH32 0x3F9D01B8340245EA975087559A7911155F1B300F5B19AA35FCC67D4ADF962C85 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x604 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x620 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x64A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x67C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2EEF JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0x6BD JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0x6C9 JUMPI POP PUSH1 0x0 DUP11 GT JUMPDEST PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x30FD JUMP JUMPDEST PUSH32 0x0 DUP8 GT ISZERO PUSH2 0x725 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D36 JUMP JUMPDEST DUP3 TIMESTAMP GT ISZERO PUSH2 0x745 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3187 JUMP JUMPDEST PUSH1 0x1E DUP5 GT PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D99 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x772 DUP14 DUP14 DUP6 PUSH2 0x1E94 JUMP JUMPDEST SWAP1 POP PUSH2 0x77C PUSH2 0x1FDB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP14 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP13 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x8 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x140 DUP3 ADD MLOAD DUP2 PUSH1 0x9 ADD SSTORE PUSH2 0x160 DUP3 ADD MLOAD DUP2 PUSH1 0xA ADD SSTORE PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD SSTORE PUSH2 0x1A0 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x1C0 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP14 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9B9 JUMPI DUP13 PUSH2 0x9DB JUMP JUMPDEST PUSH32 0x0 JUMPDEST SWAP13 POP PUSH1 0x0 PUSH2 0xA0A PUSH32 0x0 DUP16 DUP16 PUSH2 0x1FE8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x2A5C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP PUSH1 0x0 PUSH2 0xAA6 DUP15 DUP15 DUP6 DUP6 DUP14 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6649D67 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6649D67 SWAP1 PUSH2 0xAD9 SWAP1 DUP5 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x33DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB07 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB2B SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0xB ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP1 MLOAD PUSH1 0xFF PUSH32 0x0 AND SWAP2 DUP9 SWAP2 PUSH32 0x3D87A0DB9F255A83B85D64D1E31D04CA94AC564C50B44F6BA9D52A731E441DC SWAP2 SWAP1 LOG3 POP POP POP POP POP SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SLOAD DUP3 LT PUSH2 0xBE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x300B JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F9D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xB DUP3 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x25FA7003 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x25FA7003 SWAP2 PUSH2 0xC3F SWAP2 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8F SWAP2 SWAP1 PUSH2 0x2A3C JUMP JUMPDEST PUSH2 0xCAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x31BE JUMP JUMPDEST DUP1 PUSH1 0x9 ADD SLOAD TIMESTAMP GT ISZERO PUSH2 0xCCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3187 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0xB DUP6 ADD SLOAD PUSH2 0x100 SWAP1 SWAP5 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP5 SWAP4 DUP2 AND SWAP4 SWAP2 AND SWAP1 PUSH4 0x4023282B SWAP1 DUP6 ISZERO PUSH2 0xD0A JUMPI DUP6 PUSH2 0xD9B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD77 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD9B SWAP2 SWAP1 PUSH2 0x28A7 JUMP JUMPDEST DUP8 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDBE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33F2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDEA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE0E SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0x3 DUP9 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x4023282B PUSH1 0xE0 SHL DUP2 MSTORE SWAP5 SWAP6 POP SWAP3 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x4023282B SWAP3 PUSH2 0xE4F SWAP3 SWAP2 DUP9 SWAP2 PUSH1 0x4 ADD PUSH2 0x33F2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE7B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE9F SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x2 ADD SLOAD DUP2 GT PUSH2 0xEB8 JUMPI DUP5 PUSH1 0x3 ADD SLOAD SWAP2 POP PUSH2 0xEBF JUMP JUMPDEST POP PUSH1 0x2 DUP5 ADD SLOAD JUMPDEST PUSH1 0x0 PUSH2 0xF12 PUSH32 0x0 PUSH2 0xEFC DUP9 PUSH1 0x5 ADD SLOAD DUP6 PUSH2 0x213F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH2 0xF03 JUMPI INVALID JUMPDEST DUP5 SWAP2 SWAP1 DIV PUSH4 0xFFFFFFFF PUSH2 0x217C AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF67 PUSH32 0x0 PUSH2 0xF51 DUP10 PUSH1 0x5 ADD SLOAD DUP8 PUSH2 0x213F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH2 0xF58 JUMPI INVALID JUMPDEST DUP7 SWAP2 SWAP1 DIV PUSH4 0xFFFFFFFF PUSH2 0x217C AND JUMP JUMPDEST PUSH1 0xC DUP9 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE DUP8 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF SWAP1 DUP2 AND PUSH32 0x0 SWAP1 SWAP2 AND EQ ISZERO PUSH2 0xFC3 JUMPI PUSH2 0xFBE DUP7 DUP7 DUP6 DUP8 DUP7 DUP7 PUSH2 0x219F JUMP JUMPDEST PUSH2 0x1036 JUMP JUMPDEST DUP7 SLOAD PUSH32 0x0 PUSH1 0xFF SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1036 JUMPI PUSH1 0x0 PUSH2 0x1020 DUP8 DUP8 PUSH32 0x0 PUSH2 0x1E94 JUMP JUMPDEST SWAP1 POP PUSH2 0x1034 DUP8 DUP8 DUP4 DUP12 PUSH1 0x4 ADD SLOAD DUP8 DUP8 PUSH2 0x23B4 JUMP JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD DUP9 SWAP1 PUSH32 0x524F8E6C94465B4AB34A95B899F86628F3F6445AE120C4DACC9B3A67011DC259 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1126 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x1142 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x116C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x119E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x11CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2EEF JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0x11DF JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST PUSH2 0x11FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3077 JUMP JUMPDEST PUSH32 0x0 DUP8 GT ISZERO PUSH2 0x123B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D36 JUMP JUMPDEST DUP3 TIMESTAMP GT ISZERO PUSH2 0x125B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3187 JUMP JUMPDEST PUSH1 0x1E DUP5 GT PUSH2 0x127B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH2 0x12AE JUMPI DUP9 SELFBALANCE LT ISZERO PUSH2 0x12A9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2EB8 JUMP JUMPDEST PUSH2 0x134A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE DUP10 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x12DC SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x2C00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1308 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x132C SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST LT ISZERO PUSH2 0x134A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x30BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE DUP9 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1378 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x2C00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1390 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C8 SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST LT ISZERO PUSH2 0x13E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3200 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13F3 DUP13 DUP13 DUP6 PUSH2 0x1E94 JUMP JUMPDEST SWAP1 POP PUSH2 0x13FD PUSH2 0x1FDB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP14 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x8 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x140 DUP3 ADD MLOAD DUP2 PUSH1 0x9 ADD SSTORE PUSH2 0x160 DUP3 ADD MLOAD DUP2 PUSH1 0xA ADD SSTORE PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD SSTORE PUSH2 0x1A0 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x1C0 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH32 0x0 PUSH1 0xFF AND DUP3 PUSH32 0x3D87A0DB9F255A83B85D64D1E31D04CA94AC564C50B44F6BA9D52A731E441DC PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16E0 SWAP2 SWAP1 PUSH2 0x2A5C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP DUP9 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x1705 JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x170F JUMPI POP DUP2 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1719 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x1788 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0xC DUP2 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE ADD SLOAD PUSH2 0x1758 SWAP1 DUP16 SWAP1 DUP16 SWAP1 DUP16 SWAP1 DUP16 SWAP1 DUP1 PUSH2 0x219F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 SWAP1 PUSH32 0x524F8E6C94465B4AB34A95B899F86628F3F6445AE120C4DACC9B3A67011DC259 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH2 0x1830 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1797 DUP14 DUP14 DUP6 DUP6 DUP13 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6649D67 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6649D67 SWAP1 PUSH2 0x17CA SWAP1 DUP5 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x33DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x181C SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB ADD SSTORE POP JUMPDEST POP POP POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x9 DUP2 ADD SLOAD TIMESTAMP GT ISZERO PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3187 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xB DUP3 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x25FA7003 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x25FA7003 SWAP2 PUSH2 0x18CA SWAP2 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x191A SWAP2 SWAP1 PUSH2 0x2A3C JUMP JUMPDEST ISZERO PUSH2 0x1937 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F68 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1999 PUSH32 0x0 PUSH2 0x198D PUSH32 0x0 GASPRICE PUSH4 0xFFFFFFFF PUSH2 0x213F AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2674 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x8 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A02 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A26 SWAP2 SWAP1 PUSH2 0x2A5C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP DUP4 PUSH1 0x6 ADD SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI POP DUP4 PUSH1 0x7 ADD SLOAD DUP2 LT ISZERO JUMPDEST PUSH2 0x1A71 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x32BD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xB DUP6 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x4155C485 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x82AB890A SWAP2 PUSH2 0x1AA4 SWAP2 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ABE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AD2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 SELFBALANCE LT PUSH2 0x1AE7 JUMPI PUSH2 0x1AE7 CALLER DUP5 PUSH2 0x1D1B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1B18 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x1B2E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH2 0x1D1B JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1B7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x1B97 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x1DAD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1BE9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3042 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x1C43 PUSH2 0x2808 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH2 0x1E0 DUP2 ADD DUP6 MSTORE DUP2 SLOAD PUSH1 0xFF DUP1 DUP3 AND DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP3 DUP4 SWAP1 DIV DUP2 AND SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x1 DUP5 ADD SLOAD DUP6 AND SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP4 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x8 DUP2 ADD SLOAD DUP3 AND PUSH2 0x120 DUP5 ADD MSTORE PUSH1 0x9 DUP2 ADD SLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA DUP2 ADD SLOAD PUSH2 0x160 DUP5 ADD MSTORE PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x180 DUP5 ADD MSTORE PUSH1 0xC ADD SLOAD SWAP1 DUP2 AND PUSH2 0x1A0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0x1D45 SWAP2 SWAP1 PUSH2 0x2B71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1D82 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D87 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1DA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3243 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1DD3 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x1E0C SWAP2 SWAP1 PUSH2 0x2B71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E49 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E4E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x1E78 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x1E78 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1E78 SWAP2 SWAP1 PUSH2 0x2A3C JUMP JUMPDEST PUSH2 0x1AE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2CFF JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1F07 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x1F23 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1F55 JUMPI PUSH32 0x0 SWAP4 POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xE6A43905 SWAP1 PUSH2 0x1F83 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2C14 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD3 SWAP2 SWAP1 PUSH2 0x28A7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1FF7 DUP6 DUP6 PUSH2 0x2697 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP6 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x200F SWAP3 SWAP2 SWAP1 PUSH2 0x2B4A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2036 SWAP3 SWAP2 SWAP1 PUSH2 0x2BAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT DUP1 ISZERO PUSH2 0x2069 JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST ISZERO PUSH2 0x2133 JUMPI PUSH1 0x0 PUSH2 0x2080 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x2674 AND JUMP JUMPDEST PUSH2 0x20C0 PUSH32 0x0 PUSH2 0x20B4 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x2674 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x213F AND JUMP JUMPDEST DUP2 PUSH2 0x20C7 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x3E8 DUP2 LT ISZERO PUSH2 0x20DD JUMPI PUSH1 0x1E SWAP2 POP PUSH2 0x211B JUMP JUMPDEST PUSH2 0x9C4 DUP2 LT ISZERO PUSH2 0x20F0 JUMPI PUSH1 0x3C SWAP2 POP PUSH2 0x211B JUMP JUMPDEST PUSH2 0x1388 DUP2 LT ISZERO PUSH2 0x2103 JUMPI PUSH1 0x5A SWAP2 POP PUSH2 0x211B JUMP JUMPDEST PUSH2 0x2710 DUP2 LT ISZERO PUSH2 0x2116 JUMPI PUSH1 0x78 SWAP2 POP PUSH2 0x211B JUMP JUMPDEST PUSH1 0x96 SWAP2 POP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x2129 JUMPI DUP3 PUSH2 0x212B JUMP JUMPDEST DUP2 JUMPDEST SWAP2 POP POP PUSH2 0x2136 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x215A JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x2157 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x2176 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D6B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x2176 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2CD0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x2249 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x220C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2220 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 SWAP9 POP JUMPDEST PUSH2 0x2274 DUP10 PUSH32 0x0 DUP10 PUSH2 0x2721 JUMP JUMPDEST PUSH2 0x229F DUP9 PUSH32 0x0 DUP9 PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xE8E337 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xE8E33700 SWAP1 PUSH2 0x22F8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 ADDRESS SWAP1 TIMESTAMP SWAP1 PUSH1 0x4 ADD PUSH2 0x2C6E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2326 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x234A SWAP2 SWAP1 PUSH2 0x2B03 JUMP JUMPDEST SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH2 0x237D DUP10 PUSH32 0x0 PUSH1 0x0 PUSH2 0x2721 JUMP JUMPDEST PUSH2 0x23A9 DUP9 PUSH32 0x0 PUSH1 0x0 PUSH2 0x2721 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x23C9 JUMPI DUP6 PUSH2 0x23EB JUMP JUMPDEST PUSH32 0x0 JUMPDEST SWAP6 POP PUSH2 0x2418 DUP5 PUSH32 0x0 DUP6 PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBAA2ABDE DUP10 DUP10 DUP9 DUP9 DUP9 ADDRESS TIMESTAMP PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2473 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C2E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x248C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24C4 SWAP2 SWAP1 PUSH2 0x2AE0 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x24F4 DUP7 PUSH32 0x0 PUSH1 0x0 PUSH2 0x2721 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x25B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2E1A7D4D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x2E1A7D4D SWAP1 PUSH2 0x257A SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25A8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x266A JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x266A JUMPI PUSH1 0x40 MLOAD PUSH4 0x2E1A7D4D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x2E1A7D4D SWAP1 PUSH2 0x2637 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2665 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x2176 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2DDA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x26CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2E3F JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x26EC JUMPI DUP3 DUP5 PUSH2 0x26EF JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x271A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3286 JUMP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2747 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x2780 SWAP2 SWAP1 PUSH2 0x2B71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x27BD JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x27C2 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x27EC JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x27EC JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x27EC SWAP2 SWAP1 PUSH2 0x2A3C JUMP JUMPDEST PUSH2 0x1AE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2E08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28B8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x28C3 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28DB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x28C3 DUP2 PUSH2 0x341F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x2905 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP11 CALLDATALOAD PUSH2 0x2910 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP10 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD PUSH2 0x2920 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP9 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP7 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP6 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x100 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x120 DUP12 ADD CALLDATALOAD PUSH2 0x2963 DUP2 PUSH2 0x341F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x160 DUP13 DUP15 SUB SLT ISZERO PUSH2 0x2997 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP12 CALLDATALOAD PUSH2 0x29A2 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP11 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD PUSH2 0x29B2 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP10 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP9 POP PUSH1 0x60 DUP13 ADD CALLDATALOAD SWAP8 POP PUSH1 0x80 DUP13 ADD CALLDATALOAD SWAP7 POP PUSH1 0xA0 DUP13 ADD CALLDATALOAD SWAP6 POP PUSH1 0xC0 DUP13 ADD CALLDATALOAD SWAP5 POP PUSH1 0xE0 DUP13 ADD CALLDATALOAD SWAP4 POP PUSH2 0x100 DUP13 ADD CALLDATALOAD SWAP3 POP PUSH2 0x120 DUP13 ADD CALLDATALOAD SWAP2 POP PUSH2 0x140 DUP13 ADD CALLDATALOAD PUSH2 0x29FD DUP2 PUSH2 0x341F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP1 SWAP4 SWAP7 SWAP10 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A23 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2A2E DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A4D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x28C3 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A70 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x2A7B DUP2 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0x2A8C DUP2 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2AA5 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC1 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AD9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AF2 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2B17 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP4 DUP5 SHL DUP2 AND DUP3 MSTORE SWAP2 SWAP1 SWAP3 SHL AND PUSH1 0x14 DUP3 ADD MSTORE PUSH1 0x28 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2B91 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x2B77 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x2B9F JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT DUP2 MSTORE PUSH1 0x60 SWAP3 SWAP1 SWAP3 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 DUP4 ADD MSTORE PUSH1 0x15 DUP3 ADD MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x35 DUP3 ADD MSTORE PUSH1 0x55 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND DUP2 MSTORE SWAP6 DUP8 AND PUSH1 0x20 DUP8 ADD MSTORE PUSH1 0x40 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP5 ADD MSTORE SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xE0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND DUP2 MSTORE SWAP7 DUP9 AND PUSH1 0x20 DUP9 ADD MSTORE PUSH1 0x40 DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x60 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x80 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 DUP5 ADD MSTORE SWAP1 SWAP3 AND PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x100 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x15 SWAP1 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F544F4C4552414E4345 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x14 SWAP1 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F57494E444F5754494D PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x14 SWAP1 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A20415050524F56455F4641494C45440000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A204944454E544943414C5F41444452455353 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4553 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F504149520000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E53554646494349454E545F45544800 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F544F4B454E5F4F5244 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x22A9 PUSH1 0xF1 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A2043414C4C45525F4E4F545F4F574E455200 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x44587377617052656C617965723A204F42534552564154494F4E5F454E444544 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A204F524445525F4558454355544544000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F464143544F52590000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F4F5244455200000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F544F4B454E5F414D4F PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x155395 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E53554646494349454E545F544F4B45 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x4E5F41 PUSH1 0xE8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F4C4951554944495459 PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x17D05353D55395 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20444541444C494E455F4E4F545F52454143 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x121151 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20444541444C494E455F5245414348454400 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A204F42534552564154494F4E5F52554E4E49 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E53554646494349454E545F544F4B45 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x272FA1 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A204554485F5452414E534645525F464149 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x131151 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20524553455256455F544F5F4C4F57000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E0 DUP3 ADD SWAP1 POP PUSH2 0x3308 DUP3 DUP5 MLOAD PUSH2 0x2B43 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x331A PUSH1 0x20 DUP5 ADD DUP3 PUSH2 0x2B30 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x332D PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x2B30 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD PUSH2 0x337F DUP3 DUP6 ADD DUP3 PUSH2 0x2B30 JUMP JUMPDEST POP POP PUSH2 0x140 DUP4 DUP2 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x180 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1A0 DUP1 DUP5 ADD MLOAD PUSH2 0x33B5 DUP3 DUP6 ADD DUP3 PUSH2 0x2B30 JUMP JUMPDEST POP POP PUSH2 0x1C0 DUP1 DUP5 ADD MLOAD PUSH2 0x33CA DUP3 DUP6 ADD DUP3 PUSH2 0x2B3D JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1B2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1B2E JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 DUP14 SELFBALANCE LT RETURNDATASIZE SIGNEXTEND 0xE1 PUSH18 0xD335C3B565FA1348F7B750CC33C825D6F23A 0x21 0x4E 0xB2 CALLVALUE DUP8 0xC5 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "377:14694:6:-:0;;;1263:6;1218:51;;1320:7;1275:52;;1367:10;1333:44;;-1:-1:-1;;;1400:36:6;;-1:-1:-1;;;1442:34:6;;1832:499;2:2:-1;;;;27:1;24;17:12;2:2;1832:499:6;;;;;;;;;;;;;;;;;;;;;2088:5;:14;;-1:-1:-1;;;;;2088:14:6;;;-1:-1:-1;;;;;;2088:14:6;;;;;;;-1:-1:-1;;;;;;2112:30:6;;;;;;;;2152:28;;;;;;;2190:32;;;;;;;2232:30;;;;;;;2272:12;;;;;;;;2088:5;2294:30;;;;;;;;;;;377:14694;;490:1145:-1;;;;;;;;738:3;726:9;717:7;713:23;709:33;706:2;;;-1:-1;;745:12;706:2;238:6;232:13;250:41;285:5;250:41;;;916:2;966:22;;83:13;797:82;;-1:-1;101:33;83:13;101:33;;;1035:2;1085:22;;83:13;924:74;;-1:-1;101:33;83:13;101:33;;;1154:2;1204:22;;83:13;1043:74;;-1:-1;101:33;83:13;101:33;;;1273:3;1324:22;;83:13;1162:74;;-1:-1;101:33;83:13;101:33;;;1393:3;1444:22;;83:13;1282:74;;-1:-1;101:33;83:13;101:33;;;1513:3;1587:22;;404:13;1402:74;;-1:-1;422:56;404:13;422:56;;;1522:97;;;;700:935;;;;;;;;;;;2095:117;-1:-1;;;;;2029:54;;2154:35;;2144:2;;2203:1;;2193:12;2144:2;2138:74;;;377:14694:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "7488": [ - { - "length": 32, - "start": 1391 - }, - { - "length": 32, - "start": 6498 - } - ], - "7491": [ - { - "length": 32, - "start": 1767 - }, - { - "length": 32, - "start": 3782 - }, - { - "length": 32, - "start": 3867 - }, - { - "length": 32, - "start": 4605 - }, - { - "length": 32, - "start": 7069 - }, - { - "length": 32, - "start": 8325 - } - ], - "7494": [ - { - "length": 32, - "start": 6462 - }, - { - "length": 32, - "start": 6963 - } - ], - "7497": [ - { - "length": 32, - "start": 3976 - }, - { - "length": 32, - "start": 5133 - }, - { - "length": 32, - "start": 5661 - }, - { - "length": 32, - "start": 6211 - } - ], - "7500": [ - { - "length": 32, - "start": 1247 - }, - { - "length": 32, - "start": 1932 - }, - { - "length": 32, - "start": 2887 - }, - { - "length": 32, - "start": 4039 - } - ], - "7502": [ - { - "length": 32, - "start": 1283 - }, - { - "length": 32, - "start": 1429 - }, - { - "length": 32, - "start": 2532 - }, - { - "length": 32, - "start": 4092 - }, - { - "length": 32, - "start": 4279 - }, - { - "length": 32, - "start": 7832 - } - ], - "7504": [ - { - "length": 32, - "start": 3340 - }, - { - "length": 32, - "start": 4205 - }, - { - "length": 32, - "start": 8783 - }, - { - "length": 32, - "start": 8826 - }, - { - "length": 32, - "start": 8885 - }, - { - "length": 32, - "start": 9047 - }, - { - "length": 32, - "start": 9091 - }, - { - "length": 32, - "start": 9203 - }, - { - "length": 32, - "start": 9245 - }, - { - "length": 32, - "start": 9422 - } - ], - "7506": [ - { - "length": 32, - "start": 1355 - }, - { - "length": 32, - "start": 1488 - }, - { - "length": 32, - "start": 4338 - }, - { - "length": 32, - "start": 7891 - } - ], - "7508": [ - { - "length": 32, - "start": 1319 - } - ], - "7510": [ - { - "length": 32, - "start": 2491 - }, - { - "length": 32, - "start": 4241 - }, - { - "length": 32, - "start": 7987 - }, - { - "length": 32, - "start": 8627 - }, - { - "length": 32, - "start": 8743 - }, - { - "length": 32, - "start": 9163 - }, - { - "length": 32, - "start": 9462 - }, - { - "length": 32, - "start": 9541 - }, - { - "length": 32, - "start": 9651 - }, - { - "length": 32, - "start": 9730 - } - ] - }, - "linkReferences": {}, - "object": "60806040526004361061012e5760003560e01c80639dd9b5f1116100ab578063c58125bc1161006f578063c58125bc146102d1578063d081f2b8146102f1578063d530f4e714610306578063ec6ea81214610326578063f2fde38b1461033b578063ffc5ea0d1461035b57610135565b80639dd9b5f11461025f578063ad5c464814610274578063b7345d2f14610289578063b964930a1461029c578063c23c1c9f146102b157610135565b80638bdb2afa116100f25780638bdb2afa146101e05780638c0a63bf146101f55780638d091c341461020a5780638da5cb5b1461022a57806394f611341461023f57610135565b80632453ffa81461013a5780632cb2db61146101655780634860bfe514610187578063659bd06f146101a9578063735de9f7146101cb57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610388565b60405161015c91906133d2565b60405180910390f35b34801561017157600080fd5b50610185610180366004612ab0565b61038e565b005b34801561019357600080fd5b5061019c6104dd565b60405161015c9190613411565b3480156101b557600080fd5b506101be610501565b60405161015c9190612c00565b3480156101d757600080fd5b506101be610525565b3480156101ec57600080fd5b506101be610549565b34801561020157600080fd5b5061014f61056d565b34801561021657600080fd5b5061014f610225366004612976565b610591565b34801561023657600080fd5b506101be610ba2565b34801561024b57600080fd5b5061018561025a366004612ab0565b610bb1565b34801561026b57600080fd5b506101be61106b565b34801561028057600080fd5b506101be61108f565b61014f6102973660046128e6565b6110b3565b3480156102a857600080fd5b5061019c611841565b3480156102bd57600080fd5b506101856102cc366004612ab0565b611865565b3480156102dd57600080fd5b506101856102ec366004612ab0565b611aee565b3480156102fd57600080fd5b5061014f611b31565b34801561031257600080fd5b50610185610321366004612a11565b611b55565b34801561033257600080fd5b5061014f611b9b565b34801561034757600080fd5b506101856103563660046128ca565b611bbf565b34801561036757600080fd5b5061037b610376366004612ab0565b611c3b565b60405161015c91906132f4565b60015481565b60008181526002602052604090206003546001600160a01b031633146103cf5760405162461bcd60e51b81526004016103c690612f31565b60405180910390fd5b806009015442116103f25760405162461bcd60e51b81526004016103c690613144565b600c810154600160a01b900460ff161561041e5760405162461bcd60e51b81526004016103c690612f9d565b8054600182015460028301546003840154600c8501805460ff60a01b1916600160a01b1790556001600160a01b0361010090940484169392909216918361047a57600354610475906001600160a01b031683611d1b565b610492565b6003546104929085906001600160a01b031684611dad565b6003546104aa9084906001600160a01b031683611dad565b60405186907f3f9d01b8340245ea975087559a7911155f1b300f5b19aa35fcc67d4adf962c8590600090a2505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061060457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6106205760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461064a5760405162461bcd60e51b81526004016103c690612f31565b8a6001600160a01b03168c6001600160a01b0316141561067c5760405162461bcd60e51b81526004016103c690612e81565b8a6001600160a01b03168c6001600160a01b0316106106ad5760405162461bcd60e51b81526004016103c690612eef565b6000891180156106bd5750600088115b80156106c9575060008a115b6106e55760405162461bcd60e51b81526004016103c6906130fd565b7f00000000000000000000000000000000000000000000000000000000000000008711156107255760405162461bcd60e51b81526004016103c690612d36565b824211156107455760405162461bcd60e51b81526004016103c690613187565b601e84116107655760405162461bcd60e51b81526004016103c690612d99565b60006107728d8d85611e94565b905061077c611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018e6001600160a01b031681526020018d6001600160a01b031681526020018b81526020018a81526020018c8152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff02191690831515021790555090505060006001600160a01b03168d6001600160a01b0316146109b9578c6109db565b7f00000000000000000000000000000000000000000000000000000000000000005b9c506000610a0a7f00000000000000000000000000000000000000000000000000000000000000008f8f611fe8565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190612a5c565b506001600160701b031691506001600160701b031691506000610aa68e8e85858d612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d6790610ad990849089906004016133db565b602060405180830381600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190612ac8565b600087815260026020526040808220600b0192909255905160ff7f0000000000000000000000000000000000000000000000000000000000000000169188917f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc9190a350505050509b9a5050505050505050505050565b6003546001600160a01b031681565b60008181526002602052604090206001548210610be05760405162461bcd60e51b81526004016103c69061300b565b600c810154600160a01b900460ff1615610c0c5760405162461bcd60e51b81526004016103c690612f9d565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa700391610c3f916004016133d2565b60206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612a3c565b610cab5760405162461bcd60e51b81526004016103c6906131be565b8060090154421115610ccf5760405162461bcd60e51b81526004016103c690613187565b8054600182015460008054600b8501546101009094046001600160a01b039081169493811693911690634023282b908515610d0a5785610d9b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6357600080fd5b505afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b91906128a7565b87600201546040518463ffffffff1660e01b8152600401610dbe939291906133f2565b60206040518083038186803b158015610dd657600080fd5b505afa158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e9190612ac8565b60008054600b8701546003880154604051634023282b60e01b815294955092936001600160a01b0390921692634023282b92610e4f929188916004016133f2565b60206040518083038186803b158015610e6757600080fd5b505afa158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612ac8565b905084600201548111610eb85784600301549150610ebf565b5060028401545b6000610f127f0000000000000000000000000000000000000000000000000000000000000000610efc88600501548561213f90919063ffffffff16565b81610f0357fe5b8491900463ffffffff61217c16565b90506000610f677f0000000000000000000000000000000000000000000000000000000000000000610f5189600501548761213f90919063ffffffff16565b81610f5857fe5b8691900463ffffffff61217c16565b600c8801805460ff60a01b1916600160a01b179055875490915060ff9081167f00000000000000000000000000000000000000000000000000000000000000009091161415610fc357610fbe86868587868661219f565b611036565b86547f000000000000000000000000000000000000000000000000000000000000000060ff9081169116141561103657600061102087877f0000000000000000000000000000000000000000000000000000000000000000611e94565b90506110348787838b6004015487876123b4565b505b60405188907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a25050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061112657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6111425760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461116c5760405162461bcd60e51b81526004016103c690612f31565b896001600160a01b03168b6001600160a01b0316141561119e5760405162461bcd60e51b81526004016103c690612e81565b896001600160a01b03168b6001600160a01b0316106111cf5760405162461bcd60e51b81526004016103c690612eef565b6000891180156111df5750600088115b6111fb5760405162461bcd60e51b81526004016103c690613077565b7f000000000000000000000000000000000000000000000000000000000000000087111561123b5760405162461bcd60e51b81526004016103c690612d36565b8242111561125b5760405162461bcd60e51b81526004016103c690613187565b601e841161127b5760405162461bcd60e51b81526004016103c690612d99565b6001600160a01b038b166112ae57884710156112a95760405162461bcd60e51b81526004016103c690612eb8565b61134a565b6040516370a0823160e01b815289906001600160a01b038d16906370a08231906112dc903090600401612c00565b60206040518083038186803b1580156112f457600080fd5b505afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c9190612ac8565b101561134a5760405162461bcd60e51b81526004016103c6906130ba565b6040516370a0823160e01b815288906001600160a01b038c16906370a0823190611378903090600401612c00565b60206040518083038186803b15801561139057600080fd5b505afa1580156113a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c89190612ac8565b10156113e65760405162461bcd60e51b81526004016103c690613200565b60006113f38c8c85611e94565b90506113fd611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018d6001600160a01b031681526020018c6001600160a01b031681526020018b81526020018a815260200160008152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff0219169083151502179055509050507f000000000000000000000000000000000000000000000000000000000000000060ff16827f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc60405160405180910390a3600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156116a857600080fd5b505afa1580156116bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e09190612a5c565b506001600160701b031691506001600160701b03169150886000148015611705575087155b801561170f575081155b8015611719575080155b15611788576000848152600260208190526040909120600c8101805460ff60a01b1916600160a01b1790550154611758908f908f908f908f908061219f565b60405184907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a2611830565b60006117978d8d85858c612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d67906117ca90849088906004016133db565b602060405180830381600087803b1580156117e457600080fd5b505af11580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190612ac8565b6000868152600260205260409020600b0155505b5050509a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081815260026020526040902060098101544211156118975760405162461bcd60e51b81526004016103c690613187565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa7003916118ca916004016133d2565b60206040518083038186803b1580156118e257600080fd5b505afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a9190612a3c565b156119375760405162461bcd60e51b81526004016103c690612f68565b60006119997f000000000000000000000000000000000000000000000000000000000000000061198d7f00000000000000000000000000000000000000000000000000000000000000003a63ffffffff61213f16565b9063ffffffff61267416565b90506000808360080160009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a269190612a5c565b506001600160701b031691506001600160701b0316915083600601548210158015611a55575083600701548110155b611a715760405162461bcd60e51b81526004016103c6906132bd565b600054600b850154604051634155c48560e11b81526001600160a01b03909216916382ab890a91611aa4916004016133d2565b600060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b50505050824710611ae757611ae73384611d1b565b5050505050565b6003546001600160a01b03163314611b185760405162461bcd60e51b81526004016103c690612f31565b600354611b2e906001600160a01b031682611d1b565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611b7f5760405162461bcd60e51b81526004016103c690612f31565b600354611b979083906001600160a01b031683611dad565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611be95760405162461bcd60e51b81526004016103c690613042565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611c43612808565b5060009081526002602081815260409283902083516101e081018552815460ff80821683526001600160a01b0361010092839004811695840195909552600184015485169683019690965293820154606082015260038201546080820152600482015460a0820152600582015460c0820152600682015460e0820152600782015493810193909352600881015482166101208401526009810154610140840152600a810154610160840152600b810154610180840152600c01549081166101a0830152600160a01b900490911615156101c082015290565b604080516000808252602082019092526001600160a01b038416908390604051611d459190612b71565b60006040518083038185875af1925050503d8060008114611d82576040519150601f19603f3d011682016040523d82523d6000602084013e611d87565b606091505b5050905080611da85760405162461bcd60e51b81526004016103c690613243565b505050565b60006060846001600160a01b031663a9059cbb8585604051602401611dd3929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611e0c9190612b71565b6000604051808303816000865af19150503d8060008114611e49576040519150601f19603f3d011682016040523d82523d6000602084013e611e4e565b606091505b5091509150818015611e78575080511580611e78575080806020019051810190611e789190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612cff565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480611f0757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b611f235760405162461bcd60e51b81526004016103c690612fd4565b6001600160a01b038416611f55577f000000000000000000000000000000000000000000000000000000000000000093505b60405163e6a4390560e01b81526001600160a01b0383169063e6a4390590611f839087908790600401612c14565b60206040518083038186803b158015611f9b57600080fd5b505afa158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906128a7565b949350505050565b6001805480820190915590565b6000806000611ff78585612697565b9150915085828260405160200161200f929190612b4a565b60405160208183030381529060405280519060200120604051602001612036929190612baa565b60408051601f1981840301815291905280516020909101209695505050505050565b600080841180156120695750600083115b15612133576000612080858563ffffffff61267416565b6120c07f00000000000000000000000000000000000000000000000000000000000000006120b48a8a63ffffffff61267416565b9063ffffffff61213f16565b816120c757fe5b0490506103e88110156120dd57601e915061211b565b6109c48110156120f057603c915061211b565b61138881101561210357605a915061211b565b612710811015612116576078915061211b565b609691505b82821115612129578261212b565b815b915050612136565b50805b95945050505050565b600081158061215a5750508082028282828161215757fe5b04145b6121765760405162461bcd60e51b81526004016103c690612d6b565b92915050565b808203828111156121765760405162461bcd60e51b81526004016103c690612cd0565b600080806001600160a01b038916612249577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0886040518263ffffffff1660e01b81526004016000604051808303818588803b15801561220c57600080fd5b505af1158015612220573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000098505b612274897f000000000000000000000000000000000000000000000000000000000000000089612721565b61229f887f000000000000000000000000000000000000000000000000000000000000000088612721565b60405162e8e33760e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e8e33700906122f8908c908c908c908c908c908c9030904290600401612c6e565b606060405180830381600087803b15801561231257600080fd5b505af1158015612326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234a9190612b03565b9194509250905061237d897f00000000000000000000000000000000000000000000000000000000000000006000612721565b6123a9887f00000000000000000000000000000000000000000000000000000000000000006000612721565b505050505050505050565b6001600160a01b038616156123c957856123eb565b7f00000000000000000000000000000000000000000000000000000000000000005b9550612418847f000000000000000000000000000000000000000000000000000000000000000085612721565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663baa2abde898988888830426040518863ffffffff1660e01b81526004016124739796959493929190612c2e565b6040805180830381600087803b15801561248c57600080fd5b505af11580156124a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c49190612ae0565b915091506124f4867f00000000000000000000000000000000000000000000000000000000000000006000612721565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614156125b157604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d9061257a9085906004016133d2565b600060405180830381600087803b15801561259457600080fd5b505af11580156125a8573d6000803e3d6000fd5b5050505061266a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316141561266a57604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906126379084906004016133d2565b600060405180830381600087803b15801561265157600080fd5b505af1158015612665573d6000803e3d6000fd5b505050505b5050505050505050565b808201828110156121765760405162461bcd60e51b81526004016103c690612dda565b600080826001600160a01b0316846001600160a01b031614156126cc5760405162461bcd60e51b81526004016103c690612e3f565b826001600160a01b0316846001600160a01b0316106126ec5782846126ef565b83835b90925090506001600160a01b03821661271a5760405162461bcd60e51b81526004016103c690613286565b9250929050565b60006060846001600160a01b031663095ea7b38585604051602401612747929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516127809190612b71565b6000604051808303816000865af19150503d80600081146127bd576040519150601f19603f3d011682016040523d82523d6000602084013e6127c2565b606091505b50915091508180156127ec5750805115806127ec5750808060200190518101906127ec9190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612e08565b604051806101e00160405280600060ff16815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000151581525090565b6000602082840312156128b8578081fd5b81516128c38161341f565b9392505050565b6000602082840312156128db578081fd5b81356128c38161341f565b6000806000806000806000806000806101408b8d031215612905578586fd5b8a356129108161341f565b995060208b01356129208161341f565b985060408b0135975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b01356129638161341f565b809150509295989b9194979a5092959850565b60008060008060008060008060008060006101608c8e031215612997578081fd5b8b356129a28161341f565b9a5060208c01356129b28161341f565b995060408c0135985060608c0135975060808c0135965060a08c0135955060c08c0135945060e08c013593506101008c013592506101208c013591506101408c01356129fd8161341f565b809150509295989b509295989b9093969950565b60008060408385031215612a23578182fd5b8235612a2e8161341f565b946020939093013593505050565b600060208284031215612a4d578081fd5b815180151581146128c3578182fd5b600080600060608486031215612a70578283fd5b8351612a7b81613434565b6020850151909350612a8c81613434565b604085015190925063ffffffff81168114612aa5578182fd5b809150509250925092565b600060208284031215612ac1578081fd5b5035919050565b600060208284031215612ad9578081fd5b5051919050565b60008060408385031215612af2578182fd5b505080516020909101519092909150565b600080600060608486031215612b17578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03169052565b15159052565b60ff169052565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b60008251815b81811015612b915760208186018101518583015201612b77565b81811115612b9f5782828501525b509190910192915050565b6001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776603582015260550190565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039788168152958716602087015260408601949094526060850192909252608084015290921660a082015260c081019190915260e00190565b6001600160a01b039889168152968816602088015260408701959095526060860193909352608085019190915260a084015290921660c082015260e08101919091526101000190565b6001600160a01b03929092168252602082015260400190565b60208082526015908201527464732d6d6174682d7375622d756e646572666c6f7760581b604082015260600190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b6020808252818101527f44587377617052656c617965723a20494e56414c49445f544f4c4552414e4345604082015260600190565b60208082526014908201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604082015260600190565b60208082526021908201527f44587377617052656c617965723a20494e56414c49445f57494e444f5754494d6040820152604560f81b606082015260800190565b60208082526014908201527364732d6d6174682d6164642d6f766572666c6f7760601b604082015260600190565b6020808252601e908201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604082015260600190565b60208082526022908201527f4458737761704c6962726172793a204944454e544943414c5f41444452455353604082015261455360f01b606082015260800190565b6020808252601b908201527f44587377617052656c617965723a20494e56414c49445f504149520000000000604082015260600190565b6020808252601f908201527f44587377617052656c617965723a20494e53554646494349454e545f45544800604082015260600190565b60208082526022908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f4f524460408201526122a960f11b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252818101527f44587377617052656c617965723a204f42534552564154494f4e5f454e444544604082015260600190565b6020808252601d908201527f44587377617052656c617965723a204f524445525f4558454355544544000000604082015260600190565b6020808252601e908201527f44587377617052656c617965723a20494e56414c49445f464143544f52590000604082015260600190565b6020808252601c908201527f44587377617052656c617965723a20494e56414c49445f4f5244455200000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f414d4f60408201526215539560ea1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b456040820152624e5f4160e81b606082015260800190565b60208082526027908201527f44587377617052656c617965723a20494e56414c49445f4c495155494449545960408201526617d05353d5539560ca1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20444541444c494e455f4e4f545f5245414360408201526212115160ea1b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a20444541444c494e455f5245414348454400604082015260600190565b60208082526022908201527f44587377617052656c617965723a204f42534552564154494f4e5f52554e4e496040820152614e4760f01b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b45604082015262272fa160e91b606082015260800190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201526213115160ea1b606082015260800190565b6020808252601b908201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604082015260600190565b6020808252601d908201527f44587377617052656c617965723a20524553455256455f544f5f4c4f57000000604082015260600190565b60006101e082019050613308828451612b43565b602083015161331a6020840182612b30565b50604083015161332d6040840182612b30565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161337f82850182612b30565b50506101408381015190830152610160808401519083015261018080840151908301526101a0808401516133b582850182612b30565b50506101c0808401516133ca82850182612b3d565b505092915050565b90815260200190565b9182526001600160a01b0316602082015260400190565b9283526001600160a01b03919091166020830152604082015260600190565b60ff91909116815260200190565b6001600160a01b0381168114611b2e57600080fd5b6001600160701b0381168114611b2e57600080fdfea2646970667358221220878d47103d0be171d335c3b565fa1348f7b750cc33c825d6f23a214eb23487c564736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9DD9B5F1 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xC58125BC GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC58125BC EQ PUSH2 0x2D1 JUMPI DUP1 PUSH4 0xD081F2B8 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0xD530F4E7 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0xEC6EA812 EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0xFFC5EA0D EQ PUSH2 0x35B JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x9DD9B5F1 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xB7345D2F EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0xB964930A EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0xC23C1C9F EQ PUSH2 0x2B1 JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x8BDB2AFA GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x8BDB2AFA EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x8C0A63BF EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x8D091C34 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x94F61134 EQ PUSH2 0x23F JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x2453FFA8 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x2CB2DB61 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x4860BFE5 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x659BD06F EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x735DE9F7 EQ PUSH2 0x1CB JUMPI PUSH2 0x135 JUMP JUMPDEST CALLDATASIZE PUSH2 0x135 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x388 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x171 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x180 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x38E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x3411 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x501 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x2C00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x525 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x549 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x56D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x2976 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0xBA2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0xBB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x106B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BE PUSH2 0x108F JUMP JUMPDEST PUSH2 0x14F PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x28E6 JUMP JUMPDEST PUSH2 0x10B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x1841 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x2CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x1865 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x2EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x1AEE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x1B31 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x321 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A11 JUMP JUMPDEST PUSH2 0x1B55 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x332 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14F PUSH2 0x1B9B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CA JUMP JUMPDEST PUSH2 0x1BBF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37B PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AB0 JUMP JUMPDEST PUSH2 0x1C3B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x9 ADD SLOAD TIMESTAMP GT PUSH2 0x3F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x41E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F9D JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0xC DUP6 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP1 SWAP5 DIV DUP5 AND SWAP4 SWAP3 SWAP1 SWAP3 AND SWAP2 DUP4 PUSH2 0x47A JUMPI PUSH1 0x3 SLOAD PUSH2 0x475 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x1D1B JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x492 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH2 0x1DAD JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x4AA SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x1DAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP7 SWAP1 PUSH32 0x3F9D01B8340245EA975087559A7911155F1B300F5B19AA35FCC67D4ADF962C85 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x604 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x620 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x64A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x67C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2EEF JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0x6BD JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0x6C9 JUMPI POP PUSH1 0x0 DUP11 GT JUMPDEST PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x30FD JUMP JUMPDEST PUSH32 0x0 DUP8 GT ISZERO PUSH2 0x725 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D36 JUMP JUMPDEST DUP3 TIMESTAMP GT ISZERO PUSH2 0x745 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3187 JUMP JUMPDEST PUSH1 0x1E DUP5 GT PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D99 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x772 DUP14 DUP14 DUP6 PUSH2 0x1E94 JUMP JUMPDEST SWAP1 POP PUSH2 0x77C PUSH2 0x1FDB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP14 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP13 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x8 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x140 DUP3 ADD MLOAD DUP2 PUSH1 0x9 ADD SSTORE PUSH2 0x160 DUP3 ADD MLOAD DUP2 PUSH1 0xA ADD SSTORE PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD SSTORE PUSH2 0x1A0 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x1C0 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP14 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9B9 JUMPI DUP13 PUSH2 0x9DB JUMP JUMPDEST PUSH32 0x0 JUMPDEST SWAP13 POP PUSH1 0x0 PUSH2 0xA0A PUSH32 0x0 DUP16 DUP16 PUSH2 0x1FE8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x2A5C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP PUSH1 0x0 PUSH2 0xAA6 DUP15 DUP15 DUP6 DUP6 DUP14 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6649D67 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6649D67 SWAP1 PUSH2 0xAD9 SWAP1 DUP5 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x33DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB07 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB2B SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0xB ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP1 MLOAD PUSH1 0xFF PUSH32 0x0 AND SWAP2 DUP9 SWAP2 PUSH32 0x3D87A0DB9F255A83B85D64D1E31D04CA94AC564C50B44F6BA9D52A731E441DC SWAP2 SWAP1 LOG3 POP POP POP POP POP SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SLOAD DUP3 LT PUSH2 0xBE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x300B JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F9D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xB DUP3 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x25FA7003 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x25FA7003 SWAP2 PUSH2 0xC3F SWAP2 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8F SWAP2 SWAP1 PUSH2 0x2A3C JUMP JUMPDEST PUSH2 0xCAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x31BE JUMP JUMPDEST DUP1 PUSH1 0x9 ADD SLOAD TIMESTAMP GT ISZERO PUSH2 0xCCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3187 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0xB DUP6 ADD SLOAD PUSH2 0x100 SWAP1 SWAP5 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP5 SWAP4 DUP2 AND SWAP4 SWAP2 AND SWAP1 PUSH4 0x4023282B SWAP1 DUP6 ISZERO PUSH2 0xD0A JUMPI DUP6 PUSH2 0xD9B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD77 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD9B SWAP2 SWAP1 PUSH2 0x28A7 JUMP JUMPDEST DUP8 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDBE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33F2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDEA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE0E SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0x3 DUP9 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x4023282B PUSH1 0xE0 SHL DUP2 MSTORE SWAP5 SWAP6 POP SWAP3 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0x4023282B SWAP3 PUSH2 0xE4F SWAP3 SWAP2 DUP9 SWAP2 PUSH1 0x4 ADD PUSH2 0x33F2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE7B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE9F SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x2 ADD SLOAD DUP2 GT PUSH2 0xEB8 JUMPI DUP5 PUSH1 0x3 ADD SLOAD SWAP2 POP PUSH2 0xEBF JUMP JUMPDEST POP PUSH1 0x2 DUP5 ADD SLOAD JUMPDEST PUSH1 0x0 PUSH2 0xF12 PUSH32 0x0 PUSH2 0xEFC DUP9 PUSH1 0x5 ADD SLOAD DUP6 PUSH2 0x213F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH2 0xF03 JUMPI INVALID JUMPDEST DUP5 SWAP2 SWAP1 DIV PUSH4 0xFFFFFFFF PUSH2 0x217C AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF67 PUSH32 0x0 PUSH2 0xF51 DUP10 PUSH1 0x5 ADD SLOAD DUP8 PUSH2 0x213F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH2 0xF58 JUMPI INVALID JUMPDEST DUP7 SWAP2 SWAP1 DIV PUSH4 0xFFFFFFFF PUSH2 0x217C AND JUMP JUMPDEST PUSH1 0xC DUP9 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE DUP8 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF SWAP1 DUP2 AND PUSH32 0x0 SWAP1 SWAP2 AND EQ ISZERO PUSH2 0xFC3 JUMPI PUSH2 0xFBE DUP7 DUP7 DUP6 DUP8 DUP7 DUP7 PUSH2 0x219F JUMP JUMPDEST PUSH2 0x1036 JUMP JUMPDEST DUP7 SLOAD PUSH32 0x0 PUSH1 0xFF SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1036 JUMPI PUSH1 0x0 PUSH2 0x1020 DUP8 DUP8 PUSH32 0x0 PUSH2 0x1E94 JUMP JUMPDEST SWAP1 POP PUSH2 0x1034 DUP8 DUP8 DUP4 DUP12 PUSH1 0x4 ADD SLOAD DUP8 DUP8 PUSH2 0x23B4 JUMP JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD DUP9 SWAP1 PUSH32 0x524F8E6C94465B4AB34A95B899F86628F3F6445AE120C4DACC9B3A67011DC259 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1126 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x1142 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x116C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x119E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2E81 JUMP JUMPDEST DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x11CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2EEF JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0x11DF JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST PUSH2 0x11FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3077 JUMP JUMPDEST PUSH32 0x0 DUP8 GT ISZERO PUSH2 0x123B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D36 JUMP JUMPDEST DUP3 TIMESTAMP GT ISZERO PUSH2 0x125B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3187 JUMP JUMPDEST PUSH1 0x1E DUP5 GT PUSH2 0x127B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH2 0x12AE JUMPI DUP9 SELFBALANCE LT ISZERO PUSH2 0x12A9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2EB8 JUMP JUMPDEST PUSH2 0x134A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE DUP10 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x12DC SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x2C00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1308 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x132C SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST LT ISZERO PUSH2 0x134A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x30BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE DUP9 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1378 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x2C00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1390 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C8 SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST LT ISZERO PUSH2 0x13E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3200 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13F3 DUP13 DUP13 DUP6 PUSH2 0x1E94 JUMP JUMPDEST SWAP1 POP PUSH2 0x13FD PUSH2 0x1FDB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP14 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x8 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x140 DUP3 ADD MLOAD DUP2 PUSH1 0x9 ADD SSTORE PUSH2 0x160 DUP3 ADD MLOAD DUP2 PUSH1 0xA ADD SSTORE PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD SSTORE PUSH2 0x1A0 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x1C0 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH32 0x0 PUSH1 0xFF AND DUP3 PUSH32 0x3D87A0DB9F255A83B85D64D1E31D04CA94AC564C50B44F6BA9D52A731E441DC PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16E0 SWAP2 SWAP1 PUSH2 0x2A5C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP DUP9 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x1705 JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x170F JUMPI POP DUP2 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1719 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x1788 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0xC DUP2 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE ADD SLOAD PUSH2 0x1758 SWAP1 DUP16 SWAP1 DUP16 SWAP1 DUP16 SWAP1 DUP16 SWAP1 DUP1 PUSH2 0x219F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 SWAP1 PUSH32 0x524F8E6C94465B4AB34A95B899F86628F3F6445AE120C4DACC9B3A67011DC259 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH2 0x1830 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1797 DUP14 DUP14 DUP6 DUP6 DUP13 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6649D67 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6649D67 SWAP1 PUSH2 0x17CA SWAP1 DUP5 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x33DB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x181C SWAP2 SWAP1 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB ADD SSTORE POP JUMPDEST POP POP POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x9 DUP2 ADD SLOAD TIMESTAMP GT ISZERO PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3187 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xB DUP3 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x25FA7003 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x25FA7003 SWAP2 PUSH2 0x18CA SWAP2 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x191A SWAP2 SWAP1 PUSH2 0x2A3C JUMP JUMPDEST ISZERO PUSH2 0x1937 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F68 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1999 PUSH32 0x0 PUSH2 0x198D PUSH32 0x0 GASPRICE PUSH4 0xFFFFFFFF PUSH2 0x213F AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2674 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x8 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A02 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A26 SWAP2 SWAP1 PUSH2 0x2A5C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP2 POP DUP4 PUSH1 0x6 ADD SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI POP DUP4 PUSH1 0x7 ADD SLOAD DUP2 LT ISZERO JUMPDEST PUSH2 0x1A71 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x32BD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xB DUP6 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x4155C485 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x82AB890A SWAP2 PUSH2 0x1AA4 SWAP2 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ABE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AD2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 SELFBALANCE LT PUSH2 0x1AE7 JUMPI PUSH2 0x1AE7 CALLER DUP5 PUSH2 0x1D1B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1B18 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x1B2E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH2 0x1D1B JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1B7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2F31 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x1B97 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x1DAD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1BE9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3042 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x1C43 PUSH2 0x2808 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH2 0x1E0 DUP2 ADD DUP6 MSTORE DUP2 SLOAD PUSH1 0xFF DUP1 DUP3 AND DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP3 DUP4 SWAP1 DIV DUP2 AND SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x1 DUP5 ADD SLOAD DUP6 AND SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP4 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x8 DUP2 ADD SLOAD DUP3 AND PUSH2 0x120 DUP5 ADD MSTORE PUSH1 0x9 DUP2 ADD SLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA DUP2 ADD SLOAD PUSH2 0x160 DUP5 ADD MSTORE PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x180 DUP5 ADD MSTORE PUSH1 0xC ADD SLOAD SWAP1 DUP2 AND PUSH2 0x1A0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0x1D45 SWAP2 SWAP1 PUSH2 0x2B71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1D82 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D87 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1DA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3243 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1DD3 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x1E0C SWAP2 SWAP1 PUSH2 0x2B71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E49 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E4E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x1E78 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x1E78 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1E78 SWAP2 SWAP1 PUSH2 0x2A3C JUMP JUMPDEST PUSH2 0x1AE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2CFF JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1F07 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x1F23 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1F55 JUMPI PUSH32 0x0 SWAP4 POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xE6A43905 SWAP1 PUSH2 0x1F83 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2C14 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD3 SWAP2 SWAP1 PUSH2 0x28A7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1FF7 DUP6 DUP6 PUSH2 0x2697 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP6 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x200F SWAP3 SWAP2 SWAP1 PUSH2 0x2B4A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2036 SWAP3 SWAP2 SWAP1 PUSH2 0x2BAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT DUP1 ISZERO PUSH2 0x2069 JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST ISZERO PUSH2 0x2133 JUMPI PUSH1 0x0 PUSH2 0x2080 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x2674 AND JUMP JUMPDEST PUSH2 0x20C0 PUSH32 0x0 PUSH2 0x20B4 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x2674 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x213F AND JUMP JUMPDEST DUP2 PUSH2 0x20C7 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x3E8 DUP2 LT ISZERO PUSH2 0x20DD JUMPI PUSH1 0x1E SWAP2 POP PUSH2 0x211B JUMP JUMPDEST PUSH2 0x9C4 DUP2 LT ISZERO PUSH2 0x20F0 JUMPI PUSH1 0x3C SWAP2 POP PUSH2 0x211B JUMP JUMPDEST PUSH2 0x1388 DUP2 LT ISZERO PUSH2 0x2103 JUMPI PUSH1 0x5A SWAP2 POP PUSH2 0x211B JUMP JUMPDEST PUSH2 0x2710 DUP2 LT ISZERO PUSH2 0x2116 JUMPI PUSH1 0x78 SWAP2 POP PUSH2 0x211B JUMP JUMPDEST PUSH1 0x96 SWAP2 POP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x2129 JUMPI DUP3 PUSH2 0x212B JUMP JUMPDEST DUP2 JUMPDEST SWAP2 POP POP PUSH2 0x2136 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x215A JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x2157 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x2176 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2D6B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x2176 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2CD0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x2249 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x220C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2220 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 SWAP9 POP JUMPDEST PUSH2 0x2274 DUP10 PUSH32 0x0 DUP10 PUSH2 0x2721 JUMP JUMPDEST PUSH2 0x229F DUP9 PUSH32 0x0 DUP9 PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xE8E337 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xE8E33700 SWAP1 PUSH2 0x22F8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 ADDRESS SWAP1 TIMESTAMP SWAP1 PUSH1 0x4 ADD PUSH2 0x2C6E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2326 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x234A SWAP2 SWAP1 PUSH2 0x2B03 JUMP JUMPDEST SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH2 0x237D DUP10 PUSH32 0x0 PUSH1 0x0 PUSH2 0x2721 JUMP JUMPDEST PUSH2 0x23A9 DUP9 PUSH32 0x0 PUSH1 0x0 PUSH2 0x2721 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x23C9 JUMPI DUP6 PUSH2 0x23EB JUMP JUMPDEST PUSH32 0x0 JUMPDEST SWAP6 POP PUSH2 0x2418 DUP5 PUSH32 0x0 DUP6 PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBAA2ABDE DUP10 DUP10 DUP9 DUP9 DUP9 ADDRESS TIMESTAMP PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2473 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C2E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x248C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24C4 SWAP2 SWAP1 PUSH2 0x2AE0 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x24F4 DUP7 PUSH32 0x0 PUSH1 0x0 PUSH2 0x2721 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x25B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2E1A7D4D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x2E1A7D4D SWAP1 PUSH2 0x257A SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25A8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x266A JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x266A JUMPI PUSH1 0x40 MLOAD PUSH4 0x2E1A7D4D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x2E1A7D4D SWAP1 PUSH2 0x2637 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x33D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2665 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x2176 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2DDA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x26CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2E3F JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x26EC JUMPI DUP3 DUP5 PUSH2 0x26EF JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x271A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x3286 JUMP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2747 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x2780 SWAP2 SWAP1 PUSH2 0x2B71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x27BD JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x27C2 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x27EC JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x27EC JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x27EC SWAP2 SWAP1 PUSH2 0x2A3C JUMP JUMPDEST PUSH2 0x1AE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x2E08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28B8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x28C3 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28DB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x28C3 DUP2 PUSH2 0x341F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x2905 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP11 CALLDATALOAD PUSH2 0x2910 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP10 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD PUSH2 0x2920 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP9 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP7 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP6 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x100 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x120 DUP12 ADD CALLDATALOAD PUSH2 0x2963 DUP2 PUSH2 0x341F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x160 DUP13 DUP15 SUB SLT ISZERO PUSH2 0x2997 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP12 CALLDATALOAD PUSH2 0x29A2 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP11 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD PUSH2 0x29B2 DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP10 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP9 POP PUSH1 0x60 DUP13 ADD CALLDATALOAD SWAP8 POP PUSH1 0x80 DUP13 ADD CALLDATALOAD SWAP7 POP PUSH1 0xA0 DUP13 ADD CALLDATALOAD SWAP6 POP PUSH1 0xC0 DUP13 ADD CALLDATALOAD SWAP5 POP PUSH1 0xE0 DUP13 ADD CALLDATALOAD SWAP4 POP PUSH2 0x100 DUP13 ADD CALLDATALOAD SWAP3 POP PUSH2 0x120 DUP13 ADD CALLDATALOAD SWAP2 POP PUSH2 0x140 DUP13 ADD CALLDATALOAD PUSH2 0x29FD DUP2 PUSH2 0x341F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP1 SWAP4 SWAP7 SWAP10 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A23 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2A2E DUP2 PUSH2 0x341F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A4D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x28C3 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A70 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x2A7B DUP2 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0x2A8C DUP2 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2AA5 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC1 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AD9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AF2 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2B17 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP4 DUP5 SHL DUP2 AND DUP3 MSTORE SWAP2 SWAP1 SWAP3 SHL AND PUSH1 0x14 DUP3 ADD MSTORE PUSH1 0x28 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2B91 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x2B77 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x2B9F JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT DUP2 MSTORE PUSH1 0x60 SWAP3 SWAP1 SWAP3 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 DUP4 ADD MSTORE PUSH1 0x15 DUP3 ADD MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x35 DUP3 ADD MSTORE PUSH1 0x55 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND DUP2 MSTORE SWAP6 DUP8 AND PUSH1 0x20 DUP8 ADD MSTORE PUSH1 0x40 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP5 ADD MSTORE SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xE0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND DUP2 MSTORE SWAP7 DUP9 AND PUSH1 0x20 DUP9 ADD MSTORE PUSH1 0x40 DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x60 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x80 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 DUP5 ADD MSTORE SWAP1 SWAP3 AND PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x100 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x15 SWAP1 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F544F4C4552414E4345 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x14 SWAP1 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F57494E444F5754494D PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x14 SWAP1 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A20415050524F56455F4641494C45440000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A204944454E544943414C5F41444452455353 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4553 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F504149520000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E53554646494349454E545F45544800 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F544F4B454E5F4F5244 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x22A9 PUSH1 0xF1 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A2043414C4C45525F4E4F545F4F574E455200 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x44587377617052656C617965723A204F42534552564154494F4E5F454E444544 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A204F524445525F4558454355544544000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F464143544F52590000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F4F5244455200000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F544F4B454E5F414D4F PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x155395 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E53554646494349454E545F544F4B45 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x4E5F41 PUSH1 0xE8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E56414C49445F4C4951554944495459 PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x17D05353D55395 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20444541444C494E455F4E4F545F52454143 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x121151 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20444541444C494E455F5245414348454400 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A204F42534552564154494F4E5F52554E4E49 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20494E53554646494349454E545F544F4B45 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x272FA1 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A204554485F5452414E534645525F464149 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x131151 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x44587377617052656C617965723A20524553455256455F544F5F4C4F57000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E0 DUP3 ADD SWAP1 POP PUSH2 0x3308 DUP3 DUP5 MLOAD PUSH2 0x2B43 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x331A PUSH1 0x20 DUP5 ADD DUP3 PUSH2 0x2B30 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x332D PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x2B30 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD PUSH2 0x337F DUP3 DUP6 ADD DUP3 PUSH2 0x2B30 JUMP JUMPDEST POP POP PUSH2 0x140 DUP4 DUP2 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x180 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1A0 DUP1 DUP5 ADD MLOAD PUSH2 0x33B5 DUP3 DUP6 ADD DUP3 PUSH2 0x2B30 JUMP JUMPDEST POP POP PUSH2 0x1C0 DUP1 DUP5 ADD MLOAD PUSH2 0x33CA DUP3 DUP6 ADD DUP3 PUSH2 0x2B3D JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1B2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1B2E JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 DUP14 SELFBALANCE LT RETURNDATASIZE SIGNEXTEND 0xE1 PUSH18 0xD335C3B565FA1348F7B750CC33C825D6F23A 0x21 0x4E 0xB2 CALLVALUE DUP8 0xC5 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "377:14694:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1728:25:6;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1728:25:6;;;:::i;:::-;;;;;;;;;;;;;;;;9857:843;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;9857:843:6;;;;;;;;:::i;:::-;;1442:34;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1442:34:6;;;:::i;:::-;;;;;;;;1483:38;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1483:38:6;;;:::i;:::-;;;;;;;;1615;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1615:38:6;;;:::i;1570:39::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1570:39:6;;;:::i;1218:51::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1218:51:6;;;:::i;5189:2138::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5189:2138:6;;;;;;;;:::i;1797:28::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1797:28:6;;;:::i;7333:1650::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;7333:1650:6;;;;;;;;:::i;1527:37::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1527:37:6;;;:::i;1659:29::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1659:29:6;;;:::i;2337:2846::-;;;;;;;;;:::i;1400:36::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1400:36:6;;;:::i;9052:799::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;9052:799:6;;;;;;;;:::i;14406:181::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14406:181:6;;;;;;;;:::i;1333:44::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1333:44:6;;;:::i;14130:202::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14130:202:6;;;;;;;;:::i;1275:52::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1275:52:6;;;:::i;14771:263::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14771:263:6;;;;;;;;:::i;14639:122::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14639:122:6;;;;;;;;:::i;:::-;;;;;;;;1728:25;;;;:::o;9857:843::-;9926:19;9948:18;;;:6;:18;;;;;9998:5;;-1:-1:-1;;;;;9998:5:6;9984:10;:19;9976:63;;;;-1:-1:-1;;;9976:63:6;;;;;;;;;;;;;;;;;10075:5;:14;;;10057:15;:32;10049:80;;;;-1:-1:-1;;;10049:80:6;;;;;;;;;10147:14;;;;-1:-1:-1;;;10147:14:6;;;;:23;10139:65;;;;-1:-1:-1;;;10139:65:6;;;;;;;;;10231:12;;;10270;;;10310:13;;;;10351;;;;10374:14;;;:21;;-1:-1:-1;;;;10374:21:6;-1:-1:-1;;;10374:21:6;;;-1:-1:-1;;;;;10231:12:6;;;;;;;10270;;;;;10410:20;10406:179;;10477:5;;10446:46;;-1:-1:-1;;;;;10477:5:6;10484:7;10446:30;:46::i;:::-;10406:179;;;10559:5;;10523:51;;10551:6;;-1:-1:-1;;;;;10559:5:6;10566:7;10523:27;:51::i;:::-;10630:5;;10594:51;;10622:6;;-1:-1:-1;;;;;10630:5:6;10637:7;10594:27;:51::i;:::-;10660:33;;10682:10;;10660:33;;;;;9857:843;;;;;;:::o;1442:34::-;;;:::o;1483:38::-;;;:::o;1615:::-;;;:::o;1570:39::-;;;:::o;1218:51::-;;;:::o;5189:2138::-;5541:18;5590:13;-1:-1:-1;;;;;5579:24:6;:7;-1:-1:-1;;;;;5579:24:6;;:53;;;;5618:14;-1:-1:-1;;;;;5607:25:6;:7;-1:-1:-1;;;;;5607:25:6;;5579:53;5571:96;;;;-1:-1:-1;;;5571:96:6;;;;;;;;;5699:5;;-1:-1:-1;;;;;5699:5:6;5685:10;:19;5677:63;;;;-1:-1:-1;;;5677:63:6;;;;;;;;;5768:6;-1:-1:-1;;;;;5758:16:6;:6;-1:-1:-1;;;;;5758:16:6;;;5750:56;;;;-1:-1:-1;;;5750:56:6;;;;;;;;;5833:6;-1:-1:-1;;;;;5824:15:6;:6;-1:-1:-1;;;;;5824:15:6;;5816:62;;;;-1:-1:-1;;;5816:62:6;;;;;;;;;5906:1;5896:7;:11;:26;;;;;5921:1;5911:7;:11;5896:26;:43;;;;;5938:1;5926:9;:13;5896:43;5888:95;;;;-1:-1:-1;;;5888:95:6;;;;;;;;;6019:17;6001:14;:35;;5993:80;;;;-1:-1:-1;;;5993:80:6;;;;;;;;;6110:8;6091:15;:27;;6083:71;;;;-1:-1:-1;;;6083:71:6;;;;;;;;;6188:2;6172:13;:18;6164:64;;;;-1:-1:-1;;;6164:64:6;;;;;;;;;6239:12;6254:30;6260:6;6268;6276:7;6254:5;:30::i;:::-;6239:45;;6307:13;:11;:13::i;:::-;6294:26;;6351:504;;;;;;;;6379:7;6351:504;;;;;;6408:6;-1:-1:-1;;;;;6351:504:6;;;;;6436:6;-1:-1:-1;;;;;6351:504:6;;;;;6465:7;6351:504;;;;6495:7;6351:504;;;;6527:9;6351:504;;;;6566:14;6351:504;;;;6607:11;6351:504;;;;6645:11;6351:504;;;;6682:4;-1:-1:-1;;;;;6351:504:6;;;;;6710:8;6351:504;;;;6747:13;6351:504;;;;6784:1;6351:504;;;;6808:7;-1:-1:-1;;;;;6351:504:6;;;;;6839:5;6351:504;;;;;6330:6;:18;6337:10;6330:18;;;;;;;;;;;:525;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:525:6;;;;;-1:-1:-1;;;;;6330:525:6;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:525:6;;;;;-1:-1:-1;;;;;6330:525:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:525:6;;;;;-1:-1:-1;;;;;6330:525:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:525:6;;;;;-1:-1:-1;;;;;6330:525:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6893:1;-1:-1:-1;;;;;6875:20:6;:6;-1:-1:-1;;;;;6875:20:6;;:36;;6905:6;6875:36;;;6898:4;6875:36;6866:45;;6921:18;6942:61;6972:13;6988:6;6996;6942:21;:61::i;:::-;6921:82;;7014:13;7029;7059:10;-1:-1:-1;;;;;7047:35:6;;:37;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7047:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7047:37:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7047:37:6;;;;;;;;;7013:71;-1:-1:-1;;;;;7013:71:6;;;-1:-1:-1;;;;;7013:71:6;;;7094:18;7115:77;7140:7;7149;7158:8;7168;7178:13;7115:24;:77::i;:::-;7232:13;;:44;;-1:-1:-1;;;7232:44:6;;7094:98;;-1:-1:-1;;;;;;7232:13:6;;:26;;:44;;7094:98;;7271:4;;7232:44;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7232:44:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7232:44:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7232:44:6;;;;;;;;;7202:18;;;;:6;:18;;;;;;:27;;:74;;;;7291:29;;;7312:7;7291:29;;7209:10;;7291:29;;7202:18;7291:29;5189:2138;;;;;;;;;;;;;;;;;;:::o;1797:28::-;;;-1:-1:-1;;;;;1797:28:6;;:::o;7333:1650::-;7394:19;7416:18;;;:6;:18;;;;;7465:10;;7452:23;;7444:64;;;;-1:-1:-1;;;7444:64:6;;;;;;;;;7527:14;;;;-1:-1:-1;;;7527:14:6;;;;7526:15;7518:57;;;;-1:-1:-1;;;7518:57:6;;;;;;;;;7593:13;;7625:14;;;;7593:47;;-1:-1:-1;;;7593:47:6;;-1:-1:-1;;;;;7593:13:6;;;;:31;;:47;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7593:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7593:47:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7593:47:6;;;;;;;;;7585:95;;;;-1:-1:-1;;;7585:95:6;;;;;;;;;7717:5;:14;;;7698:15;:33;;7690:77;;;;-1:-1:-1;;;7690:77:6;;;;;;;;;7795:12;;;7834;;;7778:14;7891:13;;7924:14;;;;7795:12;;;;-1:-1:-1;;;;;7795:12:6;;;;7834;;;;7891:13;;;:21;;7950:20;;:66;;8010:6;7950:66;;;7987:12;-1:-1:-1;;;;;7973:32:6;;:34;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7973:34:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7973:34:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7973:34:6;;;;;;;;;8028:5;:13;;;7891:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7891:161:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7891:161:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7891:161:6;;;;;;;;;8062:15;8080:13;;8102:14;;;;8126:13;;;;8080:60;;-1:-1:-1;;;8080:60:6;;7881:171;;-1:-1:-1;8062:15:6;;-1:-1:-1;;;;;8080:13:6;;;;:21;;:60;;8102:14;8118:6;;8080:60;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8080:60:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8080:60:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8080:60:6;;;;;;;;;8062:78;;8210:5;:13;;;8199:7;:24;8196:130;;8248:5;:13;;;8238:23;;8196:130;;;-1:-1:-1;8302:13:6;;;;8196:130;8335:12;8350:66;8398:17;8362:33;8374:5;:20;;;8362:7;:11;;:33;;;;:::i;:::-;:53;;;;;8350:7;;8362:53;;8350:66;:11;:66;:::i;:::-;8335:81;;8426:12;8441:66;8489:17;8453:33;8465:5;:20;;;8453:7;:11;;:33;;;;:::i;:::-;:53;;;;;8441:7;;8453:53;;8441:66;:11;:66;:::i;:::-;8518:14;;;:21;;-1:-1:-1;;;;8518:21:6;-1:-1:-1;;;8518:21:6;;;8552:12;;8426:81;;-1:-1:-1;8518:21:6;8552:12;;;8568:9;8552:25;;;;8549:388;;;8592:51;8598:6;8606;8614:7;8623;8632:4;8638;8592:5;:51::i;:::-;8549:388;;;8664:12;;8680:7;8664:23;;;;:12;;:23;8660:277;;;8702:12;8717:36;8723:6;8731;8739:13;8717:5;:36::i;:::-;8702:51;;8767:159;8790:6;8813;8836:4;8857:5;:15;;;8888:4;8908;8767:7;:159::i;:::-;8660:277;;8951:25;;8965:10;;8951:25;;;;;7333:1650;;;;;;;;:::o;1527:37::-;;;:::o;1659:29::-;;;:::o;2337:2846::-;2672:18;2721:13;-1:-1:-1;;;;;2710:24:6;:7;-1:-1:-1;;;;;2710:24:6;;:53;;;;2749:14;-1:-1:-1;;;;;2738:25:6;:7;-1:-1:-1;;;;;2738:25:6;;2710:53;2702:96;;;;-1:-1:-1;;;2702:96:6;;;;;;;;;2830:5;;-1:-1:-1;;;;;2830:5:6;2816:10;:19;2808:63;;;;-1:-1:-1;;;2808:63:6;;;;;;;;;2899:6;-1:-1:-1;;;;;2889:16:6;:6;-1:-1:-1;;;;;2889:16:6;;;2881:56;;;;-1:-1:-1;;;2881:56:6;;;;;;;;;2964:6;-1:-1:-1;;;;;2955:15:6;:6;-1:-1:-1;;;;;2955:15:6;;2947:62;;;;-1:-1:-1;;;2947:62:6;;;;;;;;;3037:1;3027:7;:11;:26;;;;;3052:1;3042:7;:11;3027:26;3019:74;;;;-1:-1:-1;;;3019:74:6;;;;;;;;;3129:17;3111:14;:35;;3103:80;;;;-1:-1:-1;;;3103:80:6;;;;;;;;;3220:8;3201:15;:27;;3193:71;;;;-1:-1:-1;;;3193:71:6;;;;;;;;;3298:2;3282:13;:18;3274:64;;;;-1:-1:-1;;;3274:64:6;;;;;;;;;-1:-1:-1;;;;;3361:20:6;;3357:256;;3430:7;3405:21;:32;;3397:76;;;;-1:-1:-1;;;3397:76:6;;;;;;;;;3357:256;;;3512:39;;-1:-1:-1;;;3512:39:6;;3555:7;;-1:-1:-1;;;;;3512:24:6;;;;;:39;;3545:4;;3512:39;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3512:39:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3512:39:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3512:39:6;;;;;;;;;:50;;3504:98;;;;-1:-1:-1;;;3504:98:6;;;;;;;;;3630:39;;-1:-1:-1;;;3630:39:6;;3673:7;;-1:-1:-1;;;;;3630:24:6;;;;;:39;;3663:4;;3630:39;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3630:39:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3630:39:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3630:39:6;;;;;;;;;:50;;3622:98;;;;-1:-1:-1;;;3622:98:6;;;;;;;;;3731:12;3746:30;3752:6;3760;3768:7;3746:5;:30::i;:::-;3731:45;;3799:13;:11;:13::i;:::-;3786:26;;3843:498;;;;;;;;3871:9;3843:498;;;;;;3902:6;-1:-1:-1;;;;;3843:498:6;;;;;3930:6;-1:-1:-1;;;;;3843:498:6;;;;;3959:7;3843:498;;;;3989:7;3843:498;;;;4021:1;3843:498;;;;4052:14;3843:498;;;;4093:11;3843:498;;;;4131:11;3843:498;;;;4168:4;-1:-1:-1;;;;;3843:498:6;;;;;4196:8;3843:498;;;;4233:13;3843:498;;;;4270:1;3843:498;;;;4294:7;-1:-1:-1;;;;;3843:498:6;;;;;4325:5;3843:498;;;;;3822:6;:18;3829:10;3822:18;;;;;;;;;;;:519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:519:6;;;;;-1:-1:-1;;;;;3822:519:6;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:519:6;;;;;-1:-1:-1;;;;;3822:519:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:519:6;;;;;-1:-1:-1;;;;;3822:519:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:519:6;;;;;-1:-1:-1;;;;;3822:519:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4377:9;4356:31;;4365:10;4356:31;;;;;;;;;;4399:13;4414;4444:4;-1:-1:-1;;;;;4432:29:6;;:31;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4432:31:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4432:31:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4432:31:6;;;;;;;;;4398:65;-1:-1:-1;;;;;4398:65:6;;;-1:-1:-1;;;;;4398:65:6;;;4477:11;4492:1;4477:16;:36;;;;-1:-1:-1;4497:16:6;;4477:36;:53;;;;-1:-1:-1;4517:13:6;;4477:53;:70;;;;-1:-1:-1;4534:13:6;;4477:70;4473:704;;;4673:18;;;;:6;:18;;;;;;;;:27;;;:34;;-1:-1:-1;;;;4673:34:6;-1:-1:-1;;;4673:34:6;;;4761:26;;4721:95;;4727:6;;4735;;4743:7;;4752;;4761:26;4721:5;:95::i;:::-;4835:25;;4849:10;;4835:25;;;;;4473:704;;;4980:18;5001:77;5026:7;5035;5044:8;5054;5064:13;5001:24;:77::i;:::-;5122:13;;:44;;-1:-1:-1;;;5122:44:6;;4980:98;;-1:-1:-1;;;;;;5122:13:6;;:26;;:44;;4980:98;;5161:4;;5122:44;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5122:44:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5122:44:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5122:44:6;;;;;;;;;5092:18;;;;:6;:18;;;;;:27;;:74;-1:-1:-1;4473:704:6;2337:2846;;;;;;;;;;;;;;;:::o;1400:36::-;;;:::o;9052:799::-;9113:19;9135:18;;;:6;:18;;;;;9190:14;;;;9171:15;:33;;9163:77;;;;-1:-1:-1;;;9163:77:6;;;;;;;;;9259:13;;9291:14;;;;9259:47;;-1:-1:-1;;;9259:47:6;;-1:-1:-1;;;;;9259:13:6;;;;:31;;:47;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9259:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9259:47:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9259:47:6;;;;;;;;;9258:48;9250:94;;;;-1:-1:-1;;;9250:94:6;;;;;;;;;9354:20;9377:46;9416:6;9377:34;:17;9399:11;9377:34;:21;:34;:::i;:::-;:38;:46;:38;:46;:::i;:::-;9354:69;;9443:13;9458;9488:5;:16;;;;;;;;;;-1:-1:-1;;;;;9488:16:6;-1:-1:-1;;;;;9476:41:6;;:43;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9476:43:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9476:43:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9476:43:6;;;;;;;;;9442:77;-1:-1:-1;;;;;9442:77:6;;;-1:-1:-1;;;;;9442:77:6;;;9562:5;:17;;;9550:8;:29;;:62;;;;;9595:5;:17;;;9583:8;:29;;9550:62;9529:138;;;;-1:-1:-1;;;9529:138:6;;;;;;;;;9677:13;;9698:14;;;;9677:36;;-1:-1:-1;;;9677:36:6;;-1:-1:-1;;;;;9677:13:6;;;;:20;;:36;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9677:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9677:36:6;;;;9751:12;9726:21;:37;9723:122;;9778:56;9809:10;9821:12;9778:30;:56::i;:::-;9052:799;;;;;:::o;14406:181::-;14484:5;;-1:-1:-1;;;;;14484:5:6;14470:10;:19;14462:63;;;;-1:-1:-1;;;14462:63:6;;;;;;;;;14566:5;;14535:45;;-1:-1:-1;;;;;14566:5:6;14573:6;14535:30;:45::i;:::-;14406:181;:::o;1333:44::-;;;:::o;14130:202::-;14225:5;;-1:-1:-1;;;;;14225:5:6;14211:10;:19;14203:63;;;;-1:-1:-1;;;14203:63:6;;;;;;;;;14311:5;;14276:49;;14304:5;;-1:-1:-1;;;;;14311:5:6;14318:6;14276:27;:49::i;:::-;14130:202;;:::o;1275:52::-;;;:::o;14771:263::-;14866:5;;-1:-1:-1;;;;;14866:5:6;14852:10;:19;14844:64;;;;-1:-1:-1;;;14844:64:6;;;;;;;;;14938:5;;;-1:-1:-1;;;;;14953:17:6;;;-1:-1:-1;;;;;;14953:17:6;;;;;;;14985:42;;14938:5;;;14953:17;14938:5;;14985:42;;14918:17;;14985:42;14771:263;;:::o;14639:122::-;14707:12;;:::i;:::-;-1:-1:-1;14736:18:6;;;;:6;:18;;;;;;;;;14729:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;14729:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14729:25:6;;;;;;;;;;;;14639:122::o;1293:192:24:-;1400:12;;;1362;1400;;;;;;;;;-1:-1:-1;;;;;1379:7:24;;;1393:5;;1379:34;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1361:52:24;;;1431:7;1423:55;;;;-1:-1:-1;;;1423:55:24;;;;;;;;;1293:192;;;:::o;526:357::-;673:12;687:17;708:5;-1:-1:-1;;;;;708:10:24;742;754:2;758:5;719:45;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;719:45:24;;;;;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;719:45:24;708:57;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;672:93:24;;;;783:7;:57;;;;-1:-1:-1;795:11:24;;:16;;:44;;;826:4;815:24;;;;;;;;;;;;;;775:101;;;;-1:-1:-1;;;775:101:24;;;;;;;;13537:321:6;13624:12;13665:13;-1:-1:-1;;;;;13654:24:6;:7;-1:-1:-1;;;;;13654:24:6;;:53;;;;13693:14;-1:-1:-1;;;;;13682:25:6;:7;-1:-1:-1;;;;;13682:25:6;;13654:53;13646:96;;;;-1:-1:-1;;;13646:96:6;;;;;;;;;-1:-1:-1;;;;;13754:20:6;;13750:39;;13785:4;13776:13;;13750:39;13804:47;;-1:-1:-1;;;13804:47:6;;-1:-1:-1;;;;;13804:31:6;;;;;:47;;13836:6;;13844;;13804:47;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13804:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13804:47:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13804:47:6;;;;;;;;;13797:54;13537:321;-1:-1:-1;;;;13537:321:6:o;13936:121::-;14018:10;;;14038:12;;;;;;14018:10;13936:121::o;698:450:18:-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;811:61;;;;963:7;1011:6;1019;994:32;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;994:32:18;;;984:43;;;;;;912:226;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;912:226:18;;;902:237;;49:4:-1;902:237:18;;;;;698:450;-1:-1:-1;;;;;;698:450:18:o;12508:935:6:-;12704:18;12748:1;12737:8;:12;:28;;;;;12764:1;12753:8;:12;12737:28;12734:703;;;12780:17;12848:22;:8;12861;12848:22;:12;:22;:::i;:::-;12800:45;12827:17;12801:20;:7;12813;12801:20;:11;:20;:::i;:::-;12800:26;:45;:26;:45;:::i;:::-;:70;;;;;;12780:90;;12961:4;12949:9;:16;12946:341;;;12996:2;12983:15;;12946:341;;;13035:4;13023:9;:16;13019:268;;;13069:2;13056:15;;13019:268;;;13108:4;13096:9;:16;13092:195;;;13142:2;13129:15;;13092:195;;;13181:5;13169:9;:17;13165:122;;;13216:3;13203:16;;13165:122;;;13269:3;13256:16;;13165:122;13327:13;13313:10;:27;;:56;;13356:13;13313:56;;;13343:10;13313:56;13300:69;;12734:703;;;;-1:-1:-1;13413:13:6;12734:703;12508:935;;;;;;;:::o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;-1:-1:-1;;;489:63:23;;;;;;;;;419:140;;;;:::o;286:127::-;369:5;;;364:16;;;;356:50;;;;-1:-1:-1;;;356:50:23;;;;;;;;10710:917:6;10898:15;;;-1:-1:-1;;;;;10978:21:6;;10975:112;;11018:4;-1:-1:-1;;;;;11012:19:6;;11039:8;11012:38;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11012:38:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11012:38:6;;;;;11072:4;11062:14;;10975:112;11096:59;11123:7;11132:12;11146:8;11096:26;:59::i;:::-;11165;11192:7;11201:12;11215:8;11165:26;:59::i;:::-;11266:230;;-1:-1:-1;;;11266:230:6;;-1:-1:-1;;;;;11280:12:6;11266:40;;;;:230;;11320:7;;11341;;11362:8;;11384;;11406:5;;11425;;11452:4;;11471:15;;11266:230;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11266:230:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11266:230:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11266:230:6;;;;;;;;;11234:262;;-1:-1:-1;11234:262:6;-1:-1:-1;11234:262:6;-1:-1:-1;11506:52:6;11533:7;11542:12;11556:1;11506:26;:52::i;:::-;11568;11595:7;11604:12;11618:1;11568:26;:52::i;:::-;10710:917;;;;;;;;;:::o;11633:785::-;-1:-1:-1;;;;;11832:21:6;;;:38;;11863:7;11832:38;;;11856:4;11832:38;11822:48;;11880:59;11907:5;11914:12;11928:10;11880:26;:59::i;:::-;11950:12;11964;11994;-1:-1:-1;;;;;11980:43:6;;12037:7;12058;12079:10;12103:5;12122;12149:4;12168:15;11980:213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11980:213:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11980:213:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11980:213:6;;;;;;;;;11949:244;;;;12203:50;12230:5;12237:12;12251:1;12203:26;:50::i;:::-;12277:4;-1:-1:-1;;;;;12266:15:6;:7;-1:-1:-1;;;;;12266:15:6;;12263:149;;;12294:29;;-1:-1:-1;;;12294:29:6;;-1:-1:-1;;;;;12300:4:6;12294:20;;;;:29;;12315:7;;12294:29;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12294:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12294:29:6;;;;12263:149;;;12355:4;-1:-1:-1;;;;;12344:15:6;:7;-1:-1:-1;;;;;12344:15:6;;12340:72;;;12372:29;;-1:-1:-1;;;12372:29:6;;-1:-1:-1;;;;;12378:4:6;12372:20;;;;:29;;12393:7;;12372:29;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12372:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12372:29:6;;;;12340:72;11633:785;;;;;;;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;-1:-1:-1;;;224:49:23;;;;;;;;270:339:18;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;-1:-1:-1;;;542:60:18;;;;;;;;;270:339;;;;;:::o;166:354:24:-;311:12;325:17;346:5;-1:-1:-1;;;;;346:10:24;380;392:2;396:5;357:45;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;357:45:24;;;;;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;357:45:24;346:57;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;310:93:24;;;;421:7;:57;;;;-1:-1:-1;433:11:24;;:16;;:44;;;464:4;453:24;;;;;;;;;;;;;;413:100;;;;-1:-1:-1;;;413:100:24;;;;;;;;377:14694:6;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;377:14694:6;;;;;;-1:-1:-1;;;;;377:14694:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;377:14694:6;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;377:14694:6;;;;;;;;;;;;:::o;1129:263:-1:-;;1244:2;1232:9;1223:7;1219:23;1215:32;1212:2;;;-1:-1;;1250:12;1212:2;226:6;220:13;238:33;265:5;238:33;;;1302:74;1206:186;-1:-1;;;1206:186;1399:257;;1511:2;1499:9;1490:7;1486:23;1482:32;1479:2;;;-1:-1;;1517:12;1479:2;371:6;358:20;383:41;418:5;383:41;;1663:1373;;;;;;;;;;;1920:3;1908:9;1899:7;1895:23;1891:33;1888:2;;;-1:-1;;1927:12;1888:2;85:6;72:20;97:33;124:5;97:33;;;1979:63;-1:-1;2079:2;2118:22;;72:20;97:33;72:20;97:33;;;2087:63;-1:-1;2187:2;2226:22;;779:20;;-1:-1;2295:2;2334:22;;779:20;;-1:-1;2403:3;2443:22;;779:20;;-1:-1;2512:3;2552:22;;779:20;;-1:-1;2621:3;2661:22;;779:20;;-1:-1;2730:3;2770:22;;779:20;;-1:-1;2839:3;2879:22;;779:20;;-1:-1;2948:3;2988:22;;72:20;97:33;72:20;97:33;;;2957:63;;;;1882:1154;;;;;;;;;;;;;;3043:1501;;;;;;;;;;;;3318:3;3306:9;3297:7;3293:23;3289:33;3286:2;;;-1:-1;;3325:12;3286:2;85:6;72:20;97:33;124:5;97:33;;;3377:63;-1:-1;3477:2;3516:22;;72:20;97:33;72:20;97:33;;;3485:63;-1:-1;3585:2;3624:22;;779:20;;-1:-1;3693:2;3732:22;;779:20;;-1:-1;3801:3;3841:22;;779:20;;-1:-1;3910:3;3950:22;;779:20;;-1:-1;4019:3;4059:22;;779:20;;-1:-1;4128:3;4168:22;;779:20;;-1:-1;4237:3;4277:22;;779:20;;-1:-1;4346:3;4386:22;;779:20;;-1:-1;4455:3;4496:22;;72:20;97:33;72:20;97:33;;;4464:64;;;;3280:1264;;;;;;;;;;;;;;;4551:366;;;4672:2;4660:9;4651:7;4647:23;4643:32;4640:2;;;-1:-1;;4678:12;4640:2;85:6;72:20;97:33;124:5;97:33;;;4730:63;4830:2;4869:22;;;;779:20;;-1:-1;;;4634:283;4924:257;;5036:2;5024:9;5015:7;5011:23;5007:32;5004:2;;;-1:-1;;5042:12;5004:2;517:6;511:13;42384:5;40391:13;40384:21;42362:5;42359:32;42349:2;;-1:-1;;42395:12;5188:533;;;;5336:2;5324:9;5315:7;5311:23;5307:32;5304:2;;;-1:-1;;5342:12;5304:2;655:6;649:13;667:33;694:5;667:33;;;5505:2;5555:22;;649:13;5394:74;;-1:-1;667:33;649:13;667:33;;;5624:2;5673:22;;1067:13;5513:74;;-1:-1;40891:10;40880:22;;42727:34;;42717:2;;-1:-1;;42765:12;42717:2;5632:73;;;;5298:423;;;;;;5728:241;;5832:2;5820:9;5811:7;5807:23;5803:32;5800:2;;;-1:-1;;5838:12;5800:2;-1:-1;779:20;;5794:175;-1:-1;5794:175;5976:263;;6091:2;6079:9;6070:7;6066:23;6062:32;6059:2;;;-1:-1;;6097:12;6059:2;-1:-1;927:13;;6053:186;-1:-1;6053:186;6246:399;;;6378:2;6366:9;6357:7;6353:23;6349:32;6346:2;;;-1:-1;;6384:12;6346:2;-1:-1;;927:13;;6547:2;6597:22;;;927:13;;;;;-1:-1;6340:305;6652:535;;;;6801:2;6789:9;6780:7;6776:23;6772:32;6769:2;;;-1:-1;;6807:12;6769:2;933:6;927:13;6859:74;;6970:2;7024:9;7020:22;927:13;6978:74;;7089:2;7143:9;7139:22;927:13;7097:74;;6763:424;;;;;;7343:137;-1:-1;;;;;40674:54;7430:45;;7424:56;7876:94;40391:13;40384:21;7931:34;;7925:45;21723:97;40985:4;40974:16;21780:35;;21774:46;21941:383;-1:-1;;42011:2;42007:14;;;;;7806:58;;42007:14;;;;;22185:2;22176:12;;7806:58;22287:12;;;22076:248;22331:262;;8296:5;39601:12;-1:-1;41454:101;41468:6;41465:1;41462:13;41454:101;;;8440:4;41535:11;;;;;41529:18;41516:11;;;41509:39;41483:10;41454:101;;;41570:6;41567:1;41564:13;41561:2;;;-1:-1;41626:6;41621:3;41617:16;41610:27;41561:2;-1:-1;8471:16;;;;;22456:137;-1:-1;;22456:137;22600:917;-1:-1;;;;;;13956:87;;42011:2;42007:14;;;;-1:-1;;42007:14;13941:1;14062:11;;7806:58;23203:12;;;8066:58;15062:66;23314:12;;;15042:87;15148:12;;;22937:580;23524:213;-1:-1;;;;;40674:54;;;;7430:45;;23642:2;23627:18;;23613:124;24232:324;-1:-1;;;;;40674:54;;;7430:45;;40674:54;;24542:2;24527:18;;7430:45;24378:2;24363:18;;24349:207;24563:899;-1:-1;;;;;40674:54;;;7430:45;;40674:54;;;25022:2;25007:18;;7430:45;25105:2;25090:18;;8066:58;;;;25188:2;25173:18;;8066:58;;;;25271:3;25256:19;;8066:58;40674:54;;;40685:42;25348:19;;7273:58;25447:3;25432:19;;8066:58;;;;24857:3;24842:19;;24828:634;25469:1011;-1:-1;;;;;40674:54;;;7430:45;;40674:54;;;25956:2;25941:18;;7430:45;26039:2;26024:18;;8066:58;;;;26122:2;26107:18;;8066:58;;;;26205:3;26190:19;;8066:58;;;;40685:42;26274:19;;8066:58;40674:54;;;26381:3;26366:19;;7273:58;26465:3;26450:19;;8066:58;;;;25791:3;25776:19;;25762:718;26487:324;-1:-1;;;;;40674:54;;;;7430:45;;26797:2;26782:18;;8066:58;26633:2;26618:18;;26604:207;26818:407;27009:2;27023:47;;;8724:2;26994:18;;;39899:19;-1:-1;;;39939:14;;;8740:44;8803:12;;;26980:245;27232:407;27423:2;27437:47;;;9054:2;27408:18;;;39899:19;9090:33;39939:14;;;9070:54;9143:12;;;27394:245;27646:407;27837:2;27851:47;;;27822:18;;;39899:19;9430:34;39939:14;;;9410:55;9484:12;;;27808:245;28060:407;28251:2;28265:47;;;9735:2;28236:18;;;39899:19;-1:-1;;;39939:14;;;9751:43;9813:12;;;28222:245;28474:407;28665:2;28679:47;;;10064:2;28650:18;;;39899:19;10100:34;39939:14;;;10080:55;-1:-1;;;10155:12;;;10148:25;10192:12;;;28636:245;28888:407;29079:2;29093:47;;;10443:2;29064:18;;;39899:19;-1:-1;;;39939:14;;;10459:43;10521:12;;;29050:245;29302:407;29493:2;29507:47;;;10772:2;29478:18;;;39899:19;10808:32;39939:14;;;10788:53;10860:12;;;29464:245;29716:407;29907:2;29921:47;;;11111:2;29892:18;;;39899:19;11147:34;39939:14;;;11127:55;-1:-1;;;11202:12;;;11195:26;11240:12;;;29878:245;30130:407;30321:2;30335:47;;;11491:2;30306:18;;;39899:19;11527:29;39939:14;;;11507:50;11576:12;;;30292:245;30544:407;30735:2;30749:47;;;11827:2;30720:18;;;39899:19;11863:33;39939:14;;;11843:54;11916:12;;;30706:245;30958:407;31149:2;31163:47;;;12167:2;31134:18;;;39899:19;12203:34;39939:14;;;12183:55;-1:-1;;;12258:12;;;12251:26;12296:12;;;31120:245;31372:407;31563:2;31577:47;;;12547:2;31548:18;;;39899:19;12583:33;39939:14;;;12563:54;12636:12;;;31534:245;31786:407;31977:2;31991:47;;;31962:18;;;39899:19;12923:34;39939:14;;;12903:55;12977:12;;;31948:245;32200:407;32391:2;32405:47;;;13228:2;32376:18;;;39899:19;13264:31;39939:14;;;13244:52;13315:12;;;32362:245;32614:407;32805:2;32819:47;;;13566:2;32790:18;;;39899:19;13602:32;39939:14;;;13582:53;13654:12;;;32776:245;33028:407;33219:2;33233:47;;;14312:2;33204:18;;;39899:19;14348:30;39939:14;;;14328:51;14398:12;;;33190:245;33442:407;33633:2;33647:47;;;33618:18;;;39899:19;14685:34;39939:14;;;14665:55;14739:12;;;33604:245;33856:407;34047:2;34061:47;;;15399:2;34032:18;;;39899:19;15435:34;39939:14;;;15415:55;-1:-1;;;15490:12;;;15483:27;15529:12;;;34018:245;34270:407;34461:2;34475:47;;;15780:2;34446:18;;;39899:19;15816:34;39939:14;;;15796:55;-1:-1;;;15871:12;;;15864:27;15910:12;;;34432:245;34684:407;34875:2;34889:47;;;16161:2;34860:18;;;39899:19;16197:34;39939:14;;;16177:55;-1:-1;;;16252:12;;;16245:31;16295:12;;;34846:245;35098:407;35289:2;35303:47;;;16546:2;35274:18;;;39899:19;16582:34;39939:14;;;16562:55;-1:-1;;;16637:12;;;16630:27;16676:12;;;35260:245;35512:407;35703:2;35717:47;;;16927:2;35688:18;;;39899:19;16963:33;39939:14;;;16943:54;17016:12;;;35674:245;35926:407;36117:2;36131:47;;;17267:2;36102:18;;;39899:19;17303:34;39939:14;;;17283:55;-1:-1;;;17358:12;;;17351:26;17396:12;;;36088:245;36340:407;36531:2;36545:47;;;17647:2;36516:18;;;39899:19;17683:34;39939:14;;;17663:55;-1:-1;;;17738:12;;;17731:27;17777:12;;;36502:245;36754:407;36945:2;36959:47;;;18028:2;36930:18;;;39899:19;18064:34;39939:14;;;18044:55;-1:-1;;;18119:12;;;18112:27;18158:12;;;36916:245;37168:407;37359:2;37373:47;;;18409:2;37344:18;;;39899:19;18445:29;39939:14;;;18425:50;18494:12;;;37330:245;37582:407;37773:2;37787:47;;;18745:2;37758:18;;;39899:19;18781:31;39939:14;;;18761:52;18832:12;;;37744:245;37996:306;;38160:3;38149:9;38145:19;38137:27;;19159:59;19203:14;19136:16;19130:23;19159:59;;;19299:4;19292:5;19288:16;19282:23;19311:63;19299:4;19363:3;19359:14;19345:12;19311:63;;;;19455:4;19448:5;19444:16;19438:23;19467:63;19455:4;19519:3;19515:14;19501:12;19467:63;;;;19612:4;19605:5;19601:16;19595:23;19612:4;19676:3;19672:14;8066:58;19769:4;19762:5;19758:16;19752:23;19769:4;19833:3;19829:14;8066:58;19928:4;19921:5;19917:16;19911:23;19928:4;19992:3;19988:14;8066:58;20092:4;20085:5;20081:16;20075:23;20092:4;20156:3;20152:14;8066:58;20253:4;20246:5;20242:16;20236:23;20253:4;20317:3;20313:14;8066:58;20414:6;;20407:5;20403:18;20397:25;20414:6;20480:3;20476:16;8066:58;;20578:6;;20571:5;20567:18;20561:25;20592:65;20578:6;20644:3;20640:16;20626:12;20592:65;;;-1:-1;;20740:6;20729:18;;;20723:25;20802:16;;;8066:58;20907:6;20896:18;;;20890:25;20969:16;;;8066:58;21069:6;21058:18;;;21052:25;21131:16;;;8066:58;21230:6;21219:18;;;21213:25;21244:65;21292:16;;;21213:25;21244:65;;;;;21392:6;;21385:5;21381:18;21375:25;21406:59;21392:6;21452:3;21448:16;21434:12;21406:59;;;;;38131:171;;;;;38309:213;8066:58;;;38427:2;38412:18;;38398:124;38529:324;8066:58;;;-1:-1;;;;;40674:54;38839:2;38824:18;;7430:45;38675:2;38660:18;;38646:207;38860:435;8066:58;;;-1:-1;;;;;40674:54;;;;39198:2;39183:18;;7430:45;39281:2;39266:18;;8066:58;39034:2;39019:18;;39005:290;39302:205;40985:4;40974:16;;;;21780:35;;39416:2;39401:18;;39387:120;42039:117;-1:-1;;;;;40674:54;;42098:35;;42088:2;;42147:1;;42137:12;42421:117;-1:-1;;;;;42508:5;40558:42;42483:5;42480:35;42470:2;;42529:1;;42519:12" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address payable", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_dxSwapFactory", - "type": "address" - }, - { - "internalType": "address", - "name": "_dxSwapRouter", - "type": "address" - }, - { - "internalType": "address", - "name": "_uniswapFactory", - "type": "address" - }, - { - "internalType": "address", - "name": "_uniswapRouter", - "type": "address" - }, - { - "internalType": "address", - "name": "_WETH", - "type": "address" - }, - { - "internalType": "contract OracleCreator", - "name": "_oracleCreater", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_orderIndex", - "type": "uint256" - } - ], - "name": "ExecutedOrder", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_orderIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint8", - "name": "_action", - "type": "uint8" - } - ], - "name": "NewOrder", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_orderIndex", - "type": "uint256" - } - ], - "name": "WithdrawnExpiredOrder", - "type": "event" - }, - { - "inputs": [], - "name": "BOUNTY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "ERC20Withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "ETHWithdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "GAS_ORACLE_UPDATE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "name": "GetOrderDetails", - "outputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "action", - "type": "uint8" - }, - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "priceTolerance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveB", - "type": "uint256" - }, - { - "internalType": "address", - "name": "oraclePair", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxWindowTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "oracleId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "factory", - "type": "address" - }, - { - "internalType": "bool", - "name": "executed", - "type": "bool" - } - ], - "internalType": "struct DXswapRelayer.Order", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PARTS_PER_MILLION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PROVISION", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "REMOVAL", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "dxSwapFactory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "dxSwapRouter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "name": "executeOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "orderCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "priceTolerance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxWindowTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "address", - "name": "factory", - "type": "address" - } - ], - "name": "orderLiquidityProvision", - "outputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "priceTolerance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minReserveB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxWindowTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "address", - "name": "factory", - "type": "address" - } - ], - "name": "orderLiquidityRemoval", - "outputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address payable", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable", - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "uniswapFactory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "uniswapRouter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "name": "updateOracle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "orderIndex", - "type": "uint256" - } - ], - "name": "withdrawExpiredOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "6101c0604052620291ac608052620f424060a052662386f26fc1000060c052600160f81b60e052600160f91b610100523480156200003c57600080fd5b5060405162003756380380620037568339810160408190526200005f91620000ca565b600380546001600160a01b039889166001600160a01b0319918216179091556001600160601b0319606097881b81166101205295871b86166101405293861b85166101605291851b84166101805290931b9091166101a052600080549290931691161790556200018d565b600080600080600080600060e0888a031215620000e5578283fd5b8751620000f28162000174565b6020890151909750620001058162000174565b6040890151909650620001188162000174565b60608901519095506200012b8162000174565b60808901519094506200013e8162000174565b60a0890151909350620001518162000174565b60c0890151909250620001648162000174565b8091505092959891949750929550565b6001600160a01b03811681146200018a57600080fd5b50565b60805160a05160c05160e05160f81c6101005160f81c6101205160601c6101405160601c6101605160601c6101805160601c6101a05160601c61347f620002d7600039806109bb52806110915280611f3352806121b3528061222752806123cb52806124f6528061254552806125b3528061260252508061052752508061054b52806105d052806110f25280611ed3525080610d0c528061106d528061224f528061227a52806122b55280612357528061238352806123f3528061241d52806124ce525080610503528061059552806109e45280610ffc52806110b75280611e985250806104df528061078c5280610b475280610fc7525080610f88528061140d528061161d528061184352508061193e5280611b335250806106e75280610ec65280610f1b52806111fd5280611b9d528061208552508061056f5280611962525061347f6000f3fe60806040526004361061012e5760003560e01c80639dd9b5f1116100ab578063c58125bc1161006f578063c58125bc146102d1578063d081f2b8146102f1578063d530f4e714610306578063ec6ea81214610326578063f2fde38b1461033b578063ffc5ea0d1461035b57610135565b80639dd9b5f11461025f578063ad5c464814610274578063b7345d2f14610289578063b964930a1461029c578063c23c1c9f146102b157610135565b80638bdb2afa116100f25780638bdb2afa146101e05780638c0a63bf146101f55780638d091c341461020a5780638da5cb5b1461022a57806394f611341461023f57610135565b80632453ffa81461013a5780632cb2db61146101655780634860bfe514610187578063659bd06f146101a9578063735de9f7146101cb57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610388565b60405161015c91906133d2565b60405180910390f35b34801561017157600080fd5b50610185610180366004612ab0565b61038e565b005b34801561019357600080fd5b5061019c6104dd565b60405161015c9190613411565b3480156101b557600080fd5b506101be610501565b60405161015c9190612c00565b3480156101d757600080fd5b506101be610525565b3480156101ec57600080fd5b506101be610549565b34801561020157600080fd5b5061014f61056d565b34801561021657600080fd5b5061014f610225366004612976565b610591565b34801561023657600080fd5b506101be610ba2565b34801561024b57600080fd5b5061018561025a366004612ab0565b610bb1565b34801561026b57600080fd5b506101be61106b565b34801561028057600080fd5b506101be61108f565b61014f6102973660046128e6565b6110b3565b3480156102a857600080fd5b5061019c611841565b3480156102bd57600080fd5b506101856102cc366004612ab0565b611865565b3480156102dd57600080fd5b506101856102ec366004612ab0565b611aee565b3480156102fd57600080fd5b5061014f611b31565b34801561031257600080fd5b50610185610321366004612a11565b611b55565b34801561033257600080fd5b5061014f611b9b565b34801561034757600080fd5b506101856103563660046128ca565b611bbf565b34801561036757600080fd5b5061037b610376366004612ab0565b611c3b565b60405161015c91906132f4565b60015481565b60008181526002602052604090206003546001600160a01b031633146103cf5760405162461bcd60e51b81526004016103c690612f31565b60405180910390fd5b806009015442116103f25760405162461bcd60e51b81526004016103c690613144565b600c810154600160a01b900460ff161561041e5760405162461bcd60e51b81526004016103c690612f9d565b8054600182015460028301546003840154600c8501805460ff60a01b1916600160a01b1790556001600160a01b0361010090940484169392909216918361047a57600354610475906001600160a01b031683611d1b565b610492565b6003546104929085906001600160a01b031684611dad565b6003546104aa9084906001600160a01b031683611dad565b60405186907f3f9d01b8340245ea975087559a7911155f1b300f5b19aa35fcc67d4adf962c8590600090a2505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061060457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6106205760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461064a5760405162461bcd60e51b81526004016103c690612f31565b8a6001600160a01b03168c6001600160a01b0316141561067c5760405162461bcd60e51b81526004016103c690612e81565b8a6001600160a01b03168c6001600160a01b0316106106ad5760405162461bcd60e51b81526004016103c690612eef565b6000891180156106bd5750600088115b80156106c9575060008a115b6106e55760405162461bcd60e51b81526004016103c6906130fd565b7f00000000000000000000000000000000000000000000000000000000000000008711156107255760405162461bcd60e51b81526004016103c690612d36565b824211156107455760405162461bcd60e51b81526004016103c690613187565b601e84116107655760405162461bcd60e51b81526004016103c690612d99565b60006107728d8d85611e94565b905061077c611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018e6001600160a01b031681526020018d6001600160a01b031681526020018b81526020018a81526020018c8152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff02191690831515021790555090505060006001600160a01b03168d6001600160a01b0316146109b9578c6109db565b7f00000000000000000000000000000000000000000000000000000000000000005b9c506000610a0a7f00000000000000000000000000000000000000000000000000000000000000008f8f611fe8565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190612a5c565b506001600160701b031691506001600160701b031691506000610aa68e8e85858d612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d6790610ad990849089906004016133db565b602060405180830381600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190612ac8565b600087815260026020526040808220600b0192909255905160ff7f0000000000000000000000000000000000000000000000000000000000000000169188917f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc9190a350505050509b9a5050505050505050505050565b6003546001600160a01b031681565b60008181526002602052604090206001548210610be05760405162461bcd60e51b81526004016103c69061300b565b600c810154600160a01b900460ff1615610c0c5760405162461bcd60e51b81526004016103c690612f9d565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa700391610c3f916004016133d2565b60206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612a3c565b610cab5760405162461bcd60e51b81526004016103c6906131be565b8060090154421115610ccf5760405162461bcd60e51b81526004016103c690613187565b8054600182015460008054600b8501546101009094046001600160a01b039081169493811693911690634023282b908515610d0a5785610d9b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6357600080fd5b505afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b91906128a7565b87600201546040518463ffffffff1660e01b8152600401610dbe939291906133f2565b60206040518083038186803b158015610dd657600080fd5b505afa158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e9190612ac8565b60008054600b8701546003880154604051634023282b60e01b815294955092936001600160a01b0390921692634023282b92610e4f929188916004016133f2565b60206040518083038186803b158015610e6757600080fd5b505afa158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612ac8565b905084600201548111610eb85784600301549150610ebf565b5060028401545b6000610f127f0000000000000000000000000000000000000000000000000000000000000000610efc88600501548561213f90919063ffffffff16565b81610f0357fe5b8491900463ffffffff61217c16565b90506000610f677f0000000000000000000000000000000000000000000000000000000000000000610f5189600501548761213f90919063ffffffff16565b81610f5857fe5b8691900463ffffffff61217c16565b600c8801805460ff60a01b1916600160a01b179055875490915060ff9081167f00000000000000000000000000000000000000000000000000000000000000009091161415610fc357610fbe86868587868661219f565b611036565b86547f000000000000000000000000000000000000000000000000000000000000000060ff9081169116141561103657600061102087877f0000000000000000000000000000000000000000000000000000000000000000611e94565b90506110348787838b6004015487876123b4565b505b60405188907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a25050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061112657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6111425760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461116c5760405162461bcd60e51b81526004016103c690612f31565b896001600160a01b03168b6001600160a01b0316141561119e5760405162461bcd60e51b81526004016103c690612e81565b896001600160a01b03168b6001600160a01b0316106111cf5760405162461bcd60e51b81526004016103c690612eef565b6000891180156111df5750600088115b6111fb5760405162461bcd60e51b81526004016103c690613077565b7f000000000000000000000000000000000000000000000000000000000000000087111561123b5760405162461bcd60e51b81526004016103c690612d36565b8242111561125b5760405162461bcd60e51b81526004016103c690613187565b601e841161127b5760405162461bcd60e51b81526004016103c690612d99565b6001600160a01b038b166112ae57884710156112a95760405162461bcd60e51b81526004016103c690612eb8565b61134a565b6040516370a0823160e01b815289906001600160a01b038d16906370a08231906112dc903090600401612c00565b60206040518083038186803b1580156112f457600080fd5b505afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c9190612ac8565b101561134a5760405162461bcd60e51b81526004016103c6906130ba565b6040516370a0823160e01b815288906001600160a01b038c16906370a0823190611378903090600401612c00565b60206040518083038186803b15801561139057600080fd5b505afa1580156113a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c89190612ac8565b10156113e65760405162461bcd60e51b81526004016103c690613200565b60006113f38c8c85611e94565b90506113fd611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018d6001600160a01b031681526020018c6001600160a01b031681526020018b81526020018a815260200160008152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff0219169083151502179055509050507f000000000000000000000000000000000000000000000000000000000000000060ff16827f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc60405160405180910390a3600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156116a857600080fd5b505afa1580156116bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e09190612a5c565b506001600160701b031691506001600160701b03169150886000148015611705575087155b801561170f575081155b8015611719575080155b15611788576000848152600260208190526040909120600c8101805460ff60a01b1916600160a01b1790550154611758908f908f908f908f908061219f565b60405184907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a2611830565b60006117978d8d85858c612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d67906117ca90849088906004016133db565b602060405180830381600087803b1580156117e457600080fd5b505af11580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190612ac8565b6000868152600260205260409020600b0155505b5050509a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081815260026020526040902060098101544211156118975760405162461bcd60e51b81526004016103c690613187565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa7003916118ca916004016133d2565b60206040518083038186803b1580156118e257600080fd5b505afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a9190612a3c565b156119375760405162461bcd60e51b81526004016103c690612f68565b60006119997f000000000000000000000000000000000000000000000000000000000000000061198d7f00000000000000000000000000000000000000000000000000000000000000003a63ffffffff61213f16565b9063ffffffff61267416565b90506000808360080160009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a269190612a5c565b506001600160701b031691506001600160701b0316915083600601548210158015611a55575083600701548110155b611a715760405162461bcd60e51b81526004016103c6906132bd565b600054600b850154604051634155c48560e11b81526001600160a01b03909216916382ab890a91611aa4916004016133d2565b600060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b50505050824710611ae757611ae73384611d1b565b5050505050565b6003546001600160a01b03163314611b185760405162461bcd60e51b81526004016103c690612f31565b600354611b2e906001600160a01b031682611d1b565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611b7f5760405162461bcd60e51b81526004016103c690612f31565b600354611b979083906001600160a01b031683611dad565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611be95760405162461bcd60e51b81526004016103c690613042565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611c43612808565b5060009081526002602081815260409283902083516101e081018552815460ff80821683526001600160a01b0361010092839004811695840195909552600184015485169683019690965293820154606082015260038201546080820152600482015460a0820152600582015460c0820152600682015460e0820152600782015493810193909352600881015482166101208401526009810154610140840152600a810154610160840152600b810154610180840152600c01549081166101a0830152600160a01b900490911615156101c082015290565b604080516000808252602082019092526001600160a01b038416908390604051611d459190612b71565b60006040518083038185875af1925050503d8060008114611d82576040519150601f19603f3d011682016040523d82523d6000602084013e611d87565b606091505b5050905080611da85760405162461bcd60e51b81526004016103c690613243565b505050565b60006060846001600160a01b031663a9059cbb8585604051602401611dd3929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611e0c9190612b71565b6000604051808303816000865af19150503d8060008114611e49576040519150601f19603f3d011682016040523d82523d6000602084013e611e4e565b606091505b5091509150818015611e78575080511580611e78575080806020019051810190611e789190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612cff565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480611f0757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b611f235760405162461bcd60e51b81526004016103c690612fd4565b6001600160a01b038416611f55577f000000000000000000000000000000000000000000000000000000000000000093505b60405163e6a4390560e01b81526001600160a01b0383169063e6a4390590611f839087908790600401612c14565b60206040518083038186803b158015611f9b57600080fd5b505afa158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906128a7565b949350505050565b6001805480820190915590565b6000806000611ff78585612697565b9150915085828260405160200161200f929190612b4a565b60405160208183030381529060405280519060200120604051602001612036929190612baa565b60408051601f1981840301815291905280516020909101209695505050505050565b600080841180156120695750600083115b15612133576000612080858563ffffffff61267416565b6120c07f00000000000000000000000000000000000000000000000000000000000000006120b48a8a63ffffffff61267416565b9063ffffffff61213f16565b816120c757fe5b0490506103e88110156120dd57601e915061211b565b6109c48110156120f057603c915061211b565b61138881101561210357605a915061211b565b612710811015612116576078915061211b565b609691505b82821115612129578261212b565b815b915050612136565b50805b95945050505050565b600081158061215a5750508082028282828161215757fe5b04145b6121765760405162461bcd60e51b81526004016103c690612d6b565b92915050565b808203828111156121765760405162461bcd60e51b81526004016103c690612cd0565b600080806001600160a01b038916612249577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0886040518263ffffffff1660e01b81526004016000604051808303818588803b15801561220c57600080fd5b505af1158015612220573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000098505b612274897f000000000000000000000000000000000000000000000000000000000000000089612721565b61229f887f000000000000000000000000000000000000000000000000000000000000000088612721565b60405162e8e33760e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e8e33700906122f8908c908c908c908c908c908c9030904290600401612c6e565b606060405180830381600087803b15801561231257600080fd5b505af1158015612326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234a9190612b03565b9194509250905061237d897f00000000000000000000000000000000000000000000000000000000000000006000612721565b6123a9887f00000000000000000000000000000000000000000000000000000000000000006000612721565b505050505050505050565b6001600160a01b038616156123c957856123eb565b7f00000000000000000000000000000000000000000000000000000000000000005b9550612418847f000000000000000000000000000000000000000000000000000000000000000085612721565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663baa2abde898988888830426040518863ffffffff1660e01b81526004016124739796959493929190612c2e565b6040805180830381600087803b15801561248c57600080fd5b505af11580156124a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c49190612ae0565b915091506124f4867f00000000000000000000000000000000000000000000000000000000000000006000612721565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614156125b157604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d9061257a9085906004016133d2565b600060405180830381600087803b15801561259457600080fd5b505af11580156125a8573d6000803e3d6000fd5b5050505061266a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316141561266a57604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906126379084906004016133d2565b600060405180830381600087803b15801561265157600080fd5b505af1158015612665573d6000803e3d6000fd5b505050505b5050505050505050565b808201828110156121765760405162461bcd60e51b81526004016103c690612dda565b600080826001600160a01b0316846001600160a01b031614156126cc5760405162461bcd60e51b81526004016103c690612e3f565b826001600160a01b0316846001600160a01b0316106126ec5782846126ef565b83835b90925090506001600160a01b03821661271a5760405162461bcd60e51b81526004016103c690613286565b9250929050565b60006060846001600160a01b031663095ea7b38585604051602401612747929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516127809190612b71565b6000604051808303816000865af19150503d80600081146127bd576040519150601f19603f3d011682016040523d82523d6000602084013e6127c2565b606091505b50915091508180156127ec5750805115806127ec5750808060200190518101906127ec9190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612e08565b604051806101e00160405280600060ff16815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000151581525090565b6000602082840312156128b8578081fd5b81516128c38161341f565b9392505050565b6000602082840312156128db578081fd5b81356128c38161341f565b6000806000806000806000806000806101408b8d031215612905578586fd5b8a356129108161341f565b995060208b01356129208161341f565b985060408b0135975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b01356129638161341f565b809150509295989b9194979a5092959850565b60008060008060008060008060008060006101608c8e031215612997578081fd5b8b356129a28161341f565b9a5060208c01356129b28161341f565b995060408c0135985060608c0135975060808c0135965060a08c0135955060c08c0135945060e08c013593506101008c013592506101208c013591506101408c01356129fd8161341f565b809150509295989b509295989b9093969950565b60008060408385031215612a23578182fd5b8235612a2e8161341f565b946020939093013593505050565b600060208284031215612a4d578081fd5b815180151581146128c3578182fd5b600080600060608486031215612a70578283fd5b8351612a7b81613434565b6020850151909350612a8c81613434565b604085015190925063ffffffff81168114612aa5578182fd5b809150509250925092565b600060208284031215612ac1578081fd5b5035919050565b600060208284031215612ad9578081fd5b5051919050565b60008060408385031215612af2578182fd5b505080516020909101519092909150565b600080600060608486031215612b17578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03169052565b15159052565b60ff169052565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b60008251815b81811015612b915760208186018101518583015201612b77565b81811115612b9f5782828501525b509190910192915050565b6001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776603582015260550190565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039788168152958716602087015260408601949094526060850192909252608084015290921660a082015260c081019190915260e00190565b6001600160a01b039889168152968816602088015260408701959095526060860193909352608085019190915260a084015290921660c082015260e08101919091526101000190565b6001600160a01b03929092168252602082015260400190565b60208082526015908201527464732d6d6174682d7375622d756e646572666c6f7760581b604082015260600190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b6020808252818101527f44587377617052656c617965723a20494e56414c49445f544f4c4552414e4345604082015260600190565b60208082526014908201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604082015260600190565b60208082526021908201527f44587377617052656c617965723a20494e56414c49445f57494e444f5754494d6040820152604560f81b606082015260800190565b60208082526014908201527364732d6d6174682d6164642d6f766572666c6f7760601b604082015260600190565b6020808252601e908201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604082015260600190565b60208082526022908201527f4458737761704c6962726172793a204944454e544943414c5f41444452455353604082015261455360f01b606082015260800190565b6020808252601b908201527f44587377617052656c617965723a20494e56414c49445f504149520000000000604082015260600190565b6020808252601f908201527f44587377617052656c617965723a20494e53554646494349454e545f45544800604082015260600190565b60208082526022908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f4f524460408201526122a960f11b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252818101527f44587377617052656c617965723a204f42534552564154494f4e5f454e444544604082015260600190565b6020808252601d908201527f44587377617052656c617965723a204f524445525f4558454355544544000000604082015260600190565b6020808252601e908201527f44587377617052656c617965723a20494e56414c49445f464143544f52590000604082015260600190565b6020808252601c908201527f44587377617052656c617965723a20494e56414c49445f4f5244455200000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f414d4f60408201526215539560ea1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b456040820152624e5f4160e81b606082015260800190565b60208082526027908201527f44587377617052656c617965723a20494e56414c49445f4c495155494449545960408201526617d05353d5539560ca1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20444541444c494e455f4e4f545f5245414360408201526212115160ea1b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a20444541444c494e455f5245414348454400604082015260600190565b60208082526022908201527f44587377617052656c617965723a204f42534552564154494f4e5f52554e4e496040820152614e4760f01b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b45604082015262272fa160e91b606082015260800190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201526213115160ea1b606082015260800190565b6020808252601b908201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604082015260600190565b6020808252601d908201527f44587377617052656c617965723a20524553455256455f544f5f4c4f57000000604082015260600190565b60006101e082019050613308828451612b43565b602083015161331a6020840182612b30565b50604083015161332d6040840182612b30565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161337f82850182612b30565b50506101408381015190830152610160808401519083015261018080840151908301526101a0808401516133b582850182612b30565b50506101c0808401516133ca82850182612b3d565b505092915050565b90815260200190565b9182526001600160a01b0316602082015260400190565b9283526001600160a01b03919091166020830152604082015260600190565b60ff91909116815260200190565b6001600160a01b0381168114611b2e57600080fd5b6001600160701b0381168114611b2e57600080fdfea2646970667358221220878d47103d0be171d335c3b565fa1348f7b750cc33c825d6f23a214eb23487c564736f6c63430006060033", - "bin": "6101c0604052620291ac608052620f424060a052662386f26fc1000060c052600160f81b60e052600160f91b610100523480156200003c57600080fd5b5060405162003756380380620037568339810160408190526200005f91620000ca565b600380546001600160a01b039889166001600160a01b0319918216179091556001600160601b0319606097881b81166101205295871b86166101405293861b85166101605291851b84166101805290931b9091166101a052600080549290931691161790556200018d565b600080600080600080600060e0888a031215620000e5578283fd5b8751620000f28162000174565b6020890151909750620001058162000174565b6040890151909650620001188162000174565b60608901519095506200012b8162000174565b60808901519094506200013e8162000174565b60a0890151909350620001518162000174565b60c0890151909250620001648162000174565b8091505092959891949750929550565b6001600160a01b03811681146200018a57600080fd5b50565b60805160a05160c05160e05160f81c6101005160f81c6101205160601c6101405160601c6101605160601c6101805160601c6101a05160601c61347f620002d7600039806109bb52806110915280611f3352806121b3528061222752806123cb52806124f6528061254552806125b3528061260252508061052752508061054b52806105d052806110f25280611ed3525080610d0c528061106d528061224f528061227a52806122b55280612357528061238352806123f3528061241d52806124ce525080610503528061059552806109e45280610ffc52806110b75280611e985250806104df528061078c5280610b475280610fc7525080610f88528061140d528061161d528061184352508061193e5280611b335250806106e75280610ec65280610f1b52806111fd5280611b9d528061208552508061056f5280611962525061347f6000f3fe60806040526004361061012e5760003560e01c80639dd9b5f1116100ab578063c58125bc1161006f578063c58125bc146102d1578063d081f2b8146102f1578063d530f4e714610306578063ec6ea81214610326578063f2fde38b1461033b578063ffc5ea0d1461035b57610135565b80639dd9b5f11461025f578063ad5c464814610274578063b7345d2f14610289578063b964930a1461029c578063c23c1c9f146102b157610135565b80638bdb2afa116100f25780638bdb2afa146101e05780638c0a63bf146101f55780638d091c341461020a5780638da5cb5b1461022a57806394f611341461023f57610135565b80632453ffa81461013a5780632cb2db61146101655780634860bfe514610187578063659bd06f146101a9578063735de9f7146101cb57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610388565b60405161015c91906133d2565b60405180910390f35b34801561017157600080fd5b50610185610180366004612ab0565b61038e565b005b34801561019357600080fd5b5061019c6104dd565b60405161015c9190613411565b3480156101b557600080fd5b506101be610501565b60405161015c9190612c00565b3480156101d757600080fd5b506101be610525565b3480156101ec57600080fd5b506101be610549565b34801561020157600080fd5b5061014f61056d565b34801561021657600080fd5b5061014f610225366004612976565b610591565b34801561023657600080fd5b506101be610ba2565b34801561024b57600080fd5b5061018561025a366004612ab0565b610bb1565b34801561026b57600080fd5b506101be61106b565b34801561028057600080fd5b506101be61108f565b61014f6102973660046128e6565b6110b3565b3480156102a857600080fd5b5061019c611841565b3480156102bd57600080fd5b506101856102cc366004612ab0565b611865565b3480156102dd57600080fd5b506101856102ec366004612ab0565b611aee565b3480156102fd57600080fd5b5061014f611b31565b34801561031257600080fd5b50610185610321366004612a11565b611b55565b34801561033257600080fd5b5061014f611b9b565b34801561034757600080fd5b506101856103563660046128ca565b611bbf565b34801561036757600080fd5b5061037b610376366004612ab0565b611c3b565b60405161015c91906132f4565b60015481565b60008181526002602052604090206003546001600160a01b031633146103cf5760405162461bcd60e51b81526004016103c690612f31565b60405180910390fd5b806009015442116103f25760405162461bcd60e51b81526004016103c690613144565b600c810154600160a01b900460ff161561041e5760405162461bcd60e51b81526004016103c690612f9d565b8054600182015460028301546003840154600c8501805460ff60a01b1916600160a01b1790556001600160a01b0361010090940484169392909216918361047a57600354610475906001600160a01b031683611d1b565b610492565b6003546104929085906001600160a01b031684611dad565b6003546104aa9084906001600160a01b031683611dad565b60405186907f3f9d01b8340245ea975087559a7911155f1b300f5b19aa35fcc67d4adf962c8590600090a2505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061060457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6106205760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461064a5760405162461bcd60e51b81526004016103c690612f31565b8a6001600160a01b03168c6001600160a01b0316141561067c5760405162461bcd60e51b81526004016103c690612e81565b8a6001600160a01b03168c6001600160a01b0316106106ad5760405162461bcd60e51b81526004016103c690612eef565b6000891180156106bd5750600088115b80156106c9575060008a115b6106e55760405162461bcd60e51b81526004016103c6906130fd565b7f00000000000000000000000000000000000000000000000000000000000000008711156107255760405162461bcd60e51b81526004016103c690612d36565b824211156107455760405162461bcd60e51b81526004016103c690613187565b601e84116107655760405162461bcd60e51b81526004016103c690612d99565b60006107728d8d85611e94565b905061077c611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018e6001600160a01b031681526020018d6001600160a01b031681526020018b81526020018a81526020018c8152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff02191690831515021790555090505060006001600160a01b03168d6001600160a01b0316146109b9578c6109db565b7f00000000000000000000000000000000000000000000000000000000000000005b9c506000610a0a7f00000000000000000000000000000000000000000000000000000000000000008f8f611fe8565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190612a5c565b506001600160701b031691506001600160701b031691506000610aa68e8e85858d612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d6790610ad990849089906004016133db565b602060405180830381600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190612ac8565b600087815260026020526040808220600b0192909255905160ff7f0000000000000000000000000000000000000000000000000000000000000000169188917f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc9190a350505050509b9a5050505050505050505050565b6003546001600160a01b031681565b60008181526002602052604090206001548210610be05760405162461bcd60e51b81526004016103c69061300b565b600c810154600160a01b900460ff1615610c0c5760405162461bcd60e51b81526004016103c690612f9d565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa700391610c3f916004016133d2565b60206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612a3c565b610cab5760405162461bcd60e51b81526004016103c6906131be565b8060090154421115610ccf5760405162461bcd60e51b81526004016103c690613187565b8054600182015460008054600b8501546101009094046001600160a01b039081169493811693911690634023282b908515610d0a5785610d9b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6357600080fd5b505afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b91906128a7565b87600201546040518463ffffffff1660e01b8152600401610dbe939291906133f2565b60206040518083038186803b158015610dd657600080fd5b505afa158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e9190612ac8565b60008054600b8701546003880154604051634023282b60e01b815294955092936001600160a01b0390921692634023282b92610e4f929188916004016133f2565b60206040518083038186803b158015610e6757600080fd5b505afa158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612ac8565b905084600201548111610eb85784600301549150610ebf565b5060028401545b6000610f127f0000000000000000000000000000000000000000000000000000000000000000610efc88600501548561213f90919063ffffffff16565b81610f0357fe5b8491900463ffffffff61217c16565b90506000610f677f0000000000000000000000000000000000000000000000000000000000000000610f5189600501548761213f90919063ffffffff16565b81610f5857fe5b8691900463ffffffff61217c16565b600c8801805460ff60a01b1916600160a01b179055875490915060ff9081167f00000000000000000000000000000000000000000000000000000000000000009091161415610fc357610fbe86868587868661219f565b611036565b86547f000000000000000000000000000000000000000000000000000000000000000060ff9081169116141561103657600061102087877f0000000000000000000000000000000000000000000000000000000000000000611e94565b90506110348787838b6004015487876123b4565b505b60405188907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a25050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061112657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6111425760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461116c5760405162461bcd60e51b81526004016103c690612f31565b896001600160a01b03168b6001600160a01b0316141561119e5760405162461bcd60e51b81526004016103c690612e81565b896001600160a01b03168b6001600160a01b0316106111cf5760405162461bcd60e51b81526004016103c690612eef565b6000891180156111df5750600088115b6111fb5760405162461bcd60e51b81526004016103c690613077565b7f000000000000000000000000000000000000000000000000000000000000000087111561123b5760405162461bcd60e51b81526004016103c690612d36565b8242111561125b5760405162461bcd60e51b81526004016103c690613187565b601e841161127b5760405162461bcd60e51b81526004016103c690612d99565b6001600160a01b038b166112ae57884710156112a95760405162461bcd60e51b81526004016103c690612eb8565b61134a565b6040516370a0823160e01b815289906001600160a01b038d16906370a08231906112dc903090600401612c00565b60206040518083038186803b1580156112f457600080fd5b505afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c9190612ac8565b101561134a5760405162461bcd60e51b81526004016103c6906130ba565b6040516370a0823160e01b815288906001600160a01b038c16906370a0823190611378903090600401612c00565b60206040518083038186803b15801561139057600080fd5b505afa1580156113a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c89190612ac8565b10156113e65760405162461bcd60e51b81526004016103c690613200565b60006113f38c8c85611e94565b90506113fd611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018d6001600160a01b031681526020018c6001600160a01b031681526020018b81526020018a815260200160008152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff0219169083151502179055509050507f000000000000000000000000000000000000000000000000000000000000000060ff16827f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc60405160405180910390a3600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156116a857600080fd5b505afa1580156116bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e09190612a5c565b506001600160701b031691506001600160701b03169150886000148015611705575087155b801561170f575081155b8015611719575080155b15611788576000848152600260208190526040909120600c8101805460ff60a01b1916600160a01b1790550154611758908f908f908f908f908061219f565b60405184907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a2611830565b60006117978d8d85858c612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d67906117ca90849088906004016133db565b602060405180830381600087803b1580156117e457600080fd5b505af11580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190612ac8565b6000868152600260205260409020600b0155505b5050509a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081815260026020526040902060098101544211156118975760405162461bcd60e51b81526004016103c690613187565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa7003916118ca916004016133d2565b60206040518083038186803b1580156118e257600080fd5b505afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a9190612a3c565b156119375760405162461bcd60e51b81526004016103c690612f68565b60006119997f000000000000000000000000000000000000000000000000000000000000000061198d7f00000000000000000000000000000000000000000000000000000000000000003a63ffffffff61213f16565b9063ffffffff61267416565b90506000808360080160009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a269190612a5c565b506001600160701b031691506001600160701b0316915083600601548210158015611a55575083600701548110155b611a715760405162461bcd60e51b81526004016103c6906132bd565b600054600b850154604051634155c48560e11b81526001600160a01b03909216916382ab890a91611aa4916004016133d2565b600060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b50505050824710611ae757611ae73384611d1b565b5050505050565b6003546001600160a01b03163314611b185760405162461bcd60e51b81526004016103c690612f31565b600354611b2e906001600160a01b031682611d1b565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611b7f5760405162461bcd60e51b81526004016103c690612f31565b600354611b979083906001600160a01b031683611dad565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611be95760405162461bcd60e51b81526004016103c690613042565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611c43612808565b5060009081526002602081815260409283902083516101e081018552815460ff80821683526001600160a01b0361010092839004811695840195909552600184015485169683019690965293820154606082015260038201546080820152600482015460a0820152600582015460c0820152600682015460e0820152600782015493810193909352600881015482166101208401526009810154610140840152600a810154610160840152600b810154610180840152600c01549081166101a0830152600160a01b900490911615156101c082015290565b604080516000808252602082019092526001600160a01b038416908390604051611d459190612b71565b60006040518083038185875af1925050503d8060008114611d82576040519150601f19603f3d011682016040523d82523d6000602084013e611d87565b606091505b5050905080611da85760405162461bcd60e51b81526004016103c690613243565b505050565b60006060846001600160a01b031663a9059cbb8585604051602401611dd3929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611e0c9190612b71565b6000604051808303816000865af19150503d8060008114611e49576040519150601f19603f3d011682016040523d82523d6000602084013e611e4e565b606091505b5091509150818015611e78575080511580611e78575080806020019051810190611e789190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612cff565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480611f0757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b611f235760405162461bcd60e51b81526004016103c690612fd4565b6001600160a01b038416611f55577f000000000000000000000000000000000000000000000000000000000000000093505b60405163e6a4390560e01b81526001600160a01b0383169063e6a4390590611f839087908790600401612c14565b60206040518083038186803b158015611f9b57600080fd5b505afa158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906128a7565b949350505050565b6001805480820190915590565b6000806000611ff78585612697565b9150915085828260405160200161200f929190612b4a565b60405160208183030381529060405280519060200120604051602001612036929190612baa565b60408051601f1981840301815291905280516020909101209695505050505050565b600080841180156120695750600083115b15612133576000612080858563ffffffff61267416565b6120c07f00000000000000000000000000000000000000000000000000000000000000006120b48a8a63ffffffff61267416565b9063ffffffff61213f16565b816120c757fe5b0490506103e88110156120dd57601e915061211b565b6109c48110156120f057603c915061211b565b61138881101561210357605a915061211b565b612710811015612116576078915061211b565b609691505b82821115612129578261212b565b815b915050612136565b50805b95945050505050565b600081158061215a5750508082028282828161215757fe5b04145b6121765760405162461bcd60e51b81526004016103c690612d6b565b92915050565b808203828111156121765760405162461bcd60e51b81526004016103c690612cd0565b600080806001600160a01b038916612249577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0886040518263ffffffff1660e01b81526004016000604051808303818588803b15801561220c57600080fd5b505af1158015612220573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000098505b612274897f000000000000000000000000000000000000000000000000000000000000000089612721565b61229f887f000000000000000000000000000000000000000000000000000000000000000088612721565b60405162e8e33760e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e8e33700906122f8908c908c908c908c908c908c9030904290600401612c6e565b606060405180830381600087803b15801561231257600080fd5b505af1158015612326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234a9190612b03565b9194509250905061237d897f00000000000000000000000000000000000000000000000000000000000000006000612721565b6123a9887f00000000000000000000000000000000000000000000000000000000000000006000612721565b505050505050505050565b6001600160a01b038616156123c957856123eb565b7f00000000000000000000000000000000000000000000000000000000000000005b9550612418847f000000000000000000000000000000000000000000000000000000000000000085612721565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663baa2abde898988888830426040518863ffffffff1660e01b81526004016124739796959493929190612c2e565b6040805180830381600087803b15801561248c57600080fd5b505af11580156124a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c49190612ae0565b915091506124f4867f00000000000000000000000000000000000000000000000000000000000000006000612721565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614156125b157604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d9061257a9085906004016133d2565b600060405180830381600087803b15801561259457600080fd5b505af11580156125a8573d6000803e3d6000fd5b5050505061266a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316141561266a57604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906126379084906004016133d2565b600060405180830381600087803b15801561265157600080fd5b505af1158015612665573d6000803e3d6000fd5b505050505b5050505050505050565b808201828110156121765760405162461bcd60e51b81526004016103c690612dda565b600080826001600160a01b0316846001600160a01b031614156126cc5760405162461bcd60e51b81526004016103c690612e3f565b826001600160a01b0316846001600160a01b0316106126ec5782846126ef565b83835b90925090506001600160a01b03821661271a5760405162461bcd60e51b81526004016103c690613286565b9250929050565b60006060846001600160a01b031663095ea7b38585604051602401612747929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516127809190612b71565b6000604051808303816000865af19150503d80600081146127bd576040519150601f19603f3d011682016040523d82523d6000602084013e6127c2565b606091505b50915091508180156127ec5750805115806127ec5750808060200190518101906127ec9190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612e08565b604051806101e00160405280600060ff16815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000151581525090565b6000602082840312156128b8578081fd5b81516128c38161341f565b9392505050565b6000602082840312156128db578081fd5b81356128c38161341f565b6000806000806000806000806000806101408b8d031215612905578586fd5b8a356129108161341f565b995060208b01356129208161341f565b985060408b0135975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b01356129638161341f565b809150509295989b9194979a5092959850565b60008060008060008060008060008060006101608c8e031215612997578081fd5b8b356129a28161341f565b9a5060208c01356129b28161341f565b995060408c0135985060608c0135975060808c0135965060a08c0135955060c08c0135945060e08c013593506101008c013592506101208c013591506101408c01356129fd8161341f565b809150509295989b509295989b9093969950565b60008060408385031215612a23578182fd5b8235612a2e8161341f565b946020939093013593505050565b600060208284031215612a4d578081fd5b815180151581146128c3578182fd5b600080600060608486031215612a70578283fd5b8351612a7b81613434565b6020850151909350612a8c81613434565b604085015190925063ffffffff81168114612aa5578182fd5b809150509250925092565b600060208284031215612ac1578081fd5b5035919050565b600060208284031215612ad9578081fd5b5051919050565b60008060408385031215612af2578182fd5b505080516020909101519092909150565b600080600060608486031215612b17578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03169052565b15159052565b60ff169052565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b60008251815b81811015612b915760208186018101518583015201612b77565b81811115612b9f5782828501525b509190910192915050565b6001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776603582015260550190565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039788168152958716602087015260408601949094526060850192909252608084015290921660a082015260c081019190915260e00190565b6001600160a01b039889168152968816602088015260408701959095526060860193909352608085019190915260a084015290921660c082015260e08101919091526101000190565b6001600160a01b03929092168252602082015260400190565b60208082526015908201527464732d6d6174682d7375622d756e646572666c6f7760581b604082015260600190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b6020808252818101527f44587377617052656c617965723a20494e56414c49445f544f4c4552414e4345604082015260600190565b60208082526014908201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604082015260600190565b60208082526021908201527f44587377617052656c617965723a20494e56414c49445f57494e444f5754494d6040820152604560f81b606082015260800190565b60208082526014908201527364732d6d6174682d6164642d6f766572666c6f7760601b604082015260600190565b6020808252601e908201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604082015260600190565b60208082526022908201527f4458737761704c6962726172793a204944454e544943414c5f41444452455353604082015261455360f01b606082015260800190565b6020808252601b908201527f44587377617052656c617965723a20494e56414c49445f504149520000000000604082015260600190565b6020808252601f908201527f44587377617052656c617965723a20494e53554646494349454e545f45544800604082015260600190565b60208082526022908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f4f524460408201526122a960f11b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252818101527f44587377617052656c617965723a204f42534552564154494f4e5f454e444544604082015260600190565b6020808252601d908201527f44587377617052656c617965723a204f524445525f4558454355544544000000604082015260600190565b6020808252601e908201527f44587377617052656c617965723a20494e56414c49445f464143544f52590000604082015260600190565b6020808252601c908201527f44587377617052656c617965723a20494e56414c49445f4f5244455200000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f414d4f60408201526215539560ea1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b456040820152624e5f4160e81b606082015260800190565b60208082526027908201527f44587377617052656c617965723a20494e56414c49445f4c495155494449545960408201526617d05353d5539560ca1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20444541444c494e455f4e4f545f5245414360408201526212115160ea1b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a20444541444c494e455f5245414348454400604082015260600190565b60208082526022908201527f44587377617052656c617965723a204f42534552564154494f4e5f52554e4e496040820152614e4760f01b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b45604082015262272fa160e91b606082015260800190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201526213115160ea1b606082015260800190565b6020808252601b908201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604082015260600190565b6020808252601d908201527f44587377617052656c617965723a20524553455256455f544f5f4c4f57000000604082015260600190565b60006101e082019050613308828451612b43565b602083015161331a6020840182612b30565b50604083015161332d6040840182612b30565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161337f82850182612b30565b50506101408381015190830152610160808401519083015261018080840151908301526101a0808401516133b582850182612b30565b50506101c0808401516133ca82850182612b3d565b505092915050565b90815260200190565b9182526001600160a01b0316602082015260400190565b9283526001600160a01b03919091166020830152604082015260600190565b60ff91909116815260200190565b6001600160a01b0381168114611b2e57600080fd5b6001600160701b0381168114611b2e57600080fdfea2646970667358221220878d47103d0be171d335c3b565fa1348f7b750cc33c825d6f23a214eb23487c564736f6c63430006060033", - "bin-runtime": "60806040526004361061012e5760003560e01c80639dd9b5f1116100ab578063c58125bc1161006f578063c58125bc146102d1578063d081f2b8146102f1578063d530f4e714610306578063ec6ea81214610326578063f2fde38b1461033b578063ffc5ea0d1461035b57610135565b80639dd9b5f11461025f578063ad5c464814610274578063b7345d2f14610289578063b964930a1461029c578063c23c1c9f146102b157610135565b80638bdb2afa116100f25780638bdb2afa146101e05780638c0a63bf146101f55780638d091c341461020a5780638da5cb5b1461022a57806394f611341461023f57610135565b80632453ffa81461013a5780632cb2db61146101655780634860bfe514610187578063659bd06f146101a9578063735de9f7146101cb57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610388565b60405161015c91906133d2565b60405180910390f35b34801561017157600080fd5b50610185610180366004612ab0565b61038e565b005b34801561019357600080fd5b5061019c6104dd565b60405161015c9190613411565b3480156101b557600080fd5b506101be610501565b60405161015c9190612c00565b3480156101d757600080fd5b506101be610525565b3480156101ec57600080fd5b506101be610549565b34801561020157600080fd5b5061014f61056d565b34801561021657600080fd5b5061014f610225366004612976565b610591565b34801561023657600080fd5b506101be610ba2565b34801561024b57600080fd5b5061018561025a366004612ab0565b610bb1565b34801561026b57600080fd5b506101be61106b565b34801561028057600080fd5b506101be61108f565b61014f6102973660046128e6565b6110b3565b3480156102a857600080fd5b5061019c611841565b3480156102bd57600080fd5b506101856102cc366004612ab0565b611865565b3480156102dd57600080fd5b506101856102ec366004612ab0565b611aee565b3480156102fd57600080fd5b5061014f611b31565b34801561031257600080fd5b50610185610321366004612a11565b611b55565b34801561033257600080fd5b5061014f611b9b565b34801561034757600080fd5b506101856103563660046128ca565b611bbf565b34801561036757600080fd5b5061037b610376366004612ab0565b611c3b565b60405161015c91906132f4565b60015481565b60008181526002602052604090206003546001600160a01b031633146103cf5760405162461bcd60e51b81526004016103c690612f31565b60405180910390fd5b806009015442116103f25760405162461bcd60e51b81526004016103c690613144565b600c810154600160a01b900460ff161561041e5760405162461bcd60e51b81526004016103c690612f9d565b8054600182015460028301546003840154600c8501805460ff60a01b1916600160a01b1790556001600160a01b0361010090940484169392909216918361047a57600354610475906001600160a01b031683611d1b565b610492565b6003546104929085906001600160a01b031684611dad565b6003546104aa9084906001600160a01b031683611dad565b60405186907f3f9d01b8340245ea975087559a7911155f1b300f5b19aa35fcc67d4adf962c8590600090a2505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061060457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6106205760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461064a5760405162461bcd60e51b81526004016103c690612f31565b8a6001600160a01b03168c6001600160a01b0316141561067c5760405162461bcd60e51b81526004016103c690612e81565b8a6001600160a01b03168c6001600160a01b0316106106ad5760405162461bcd60e51b81526004016103c690612eef565b6000891180156106bd5750600088115b80156106c9575060008a115b6106e55760405162461bcd60e51b81526004016103c6906130fd565b7f00000000000000000000000000000000000000000000000000000000000000008711156107255760405162461bcd60e51b81526004016103c690612d36565b824211156107455760405162461bcd60e51b81526004016103c690613187565b601e84116107655760405162461bcd60e51b81526004016103c690612d99565b60006107728d8d85611e94565b905061077c611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018e6001600160a01b031681526020018d6001600160a01b031681526020018b81526020018a81526020018c8152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff02191690831515021790555090505060006001600160a01b03168d6001600160a01b0316146109b9578c6109db565b7f00000000000000000000000000000000000000000000000000000000000000005b9c506000610a0a7f00000000000000000000000000000000000000000000000000000000000000008f8f611fe8565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190612a5c565b506001600160701b031691506001600160701b031691506000610aa68e8e85858d612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d6790610ad990849089906004016133db565b602060405180830381600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190612ac8565b600087815260026020526040808220600b0192909255905160ff7f0000000000000000000000000000000000000000000000000000000000000000169188917f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc9190a350505050509b9a5050505050505050505050565b6003546001600160a01b031681565b60008181526002602052604090206001548210610be05760405162461bcd60e51b81526004016103c69061300b565b600c810154600160a01b900460ff1615610c0c5760405162461bcd60e51b81526004016103c690612f9d565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa700391610c3f916004016133d2565b60206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612a3c565b610cab5760405162461bcd60e51b81526004016103c6906131be565b8060090154421115610ccf5760405162461bcd60e51b81526004016103c690613187565b8054600182015460008054600b8501546101009094046001600160a01b039081169493811693911690634023282b908515610d0a5785610d9b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6357600080fd5b505afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b91906128a7565b87600201546040518463ffffffff1660e01b8152600401610dbe939291906133f2565b60206040518083038186803b158015610dd657600080fd5b505afa158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e9190612ac8565b60008054600b8701546003880154604051634023282b60e01b815294955092936001600160a01b0390921692634023282b92610e4f929188916004016133f2565b60206040518083038186803b158015610e6757600080fd5b505afa158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612ac8565b905084600201548111610eb85784600301549150610ebf565b5060028401545b6000610f127f0000000000000000000000000000000000000000000000000000000000000000610efc88600501548561213f90919063ffffffff16565b81610f0357fe5b8491900463ffffffff61217c16565b90506000610f677f0000000000000000000000000000000000000000000000000000000000000000610f5189600501548761213f90919063ffffffff16565b81610f5857fe5b8691900463ffffffff61217c16565b600c8801805460ff60a01b1916600160a01b179055875490915060ff9081167f00000000000000000000000000000000000000000000000000000000000000009091161415610fc357610fbe86868587868661219f565b611036565b86547f000000000000000000000000000000000000000000000000000000000000000060ff9081169116141561103657600061102087877f0000000000000000000000000000000000000000000000000000000000000000611e94565b90506110348787838b6004015487876123b4565b505b60405188907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a25050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061112657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b6111425760405162461bcd60e51b81526004016103c690612fd4565b6003546001600160a01b0316331461116c5760405162461bcd60e51b81526004016103c690612f31565b896001600160a01b03168b6001600160a01b0316141561119e5760405162461bcd60e51b81526004016103c690612e81565b896001600160a01b03168b6001600160a01b0316106111cf5760405162461bcd60e51b81526004016103c690612eef565b6000891180156111df5750600088115b6111fb5760405162461bcd60e51b81526004016103c690613077565b7f000000000000000000000000000000000000000000000000000000000000000087111561123b5760405162461bcd60e51b81526004016103c690612d36565b8242111561125b5760405162461bcd60e51b81526004016103c690613187565b601e841161127b5760405162461bcd60e51b81526004016103c690612d99565b6001600160a01b038b166112ae57884710156112a95760405162461bcd60e51b81526004016103c690612eb8565b61134a565b6040516370a0823160e01b815289906001600160a01b038d16906370a08231906112dc903090600401612c00565b60206040518083038186803b1580156112f457600080fd5b505afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c9190612ac8565b101561134a5760405162461bcd60e51b81526004016103c6906130ba565b6040516370a0823160e01b815288906001600160a01b038c16906370a0823190611378903090600401612c00565b60206040518083038186803b15801561139057600080fd5b505afa1580156113a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c89190612ac8565b10156113e65760405162461bcd60e51b81526004016103c690613200565b60006113f38c8c85611e94565b90506113fd611fdb565b9150604051806101e001604052807f000000000000000000000000000000000000000000000000000000000000000060ff1681526020018d6001600160a01b031681526020018c6001600160a01b031681526020018b81526020018a815260200160008152602001898152602001888152602001878152602001826001600160a01b0316815260200185815260200186815260200160008152602001846001600160a01b03168152602001600015158152506002600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c0160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101c082015181600c0160146101000a81548160ff0219169083151502179055509050507f000000000000000000000000000000000000000000000000000000000000000060ff16827f03d87a0db9f255a83b85d64d1e31d04ca94ac564c50b44f6ba9d52a731e441dc60405160405180910390a3600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156116a857600080fd5b505afa1580156116bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e09190612a5c565b506001600160701b031691506001600160701b03169150886000148015611705575087155b801561170f575081155b8015611719575080155b15611788576000848152600260208190526040909120600c8101805460ff60a01b1916600160a01b1790550154611758908f908f908f908f908061219f565b60405184907f524f8e6c94465b4ab34a95b899f86628f3f6445ae120c4dacc9b3a67011dc25990600090a2611830565b60006117978d8d85858c612058565b6000546040516306649d6760e01b81529192506001600160a01b0316906306649d67906117ca90849088906004016133db565b602060405180830381600087803b1580156117e457600080fd5b505af11580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181c9190612ac8565b6000868152600260205260409020600b0155505b5050509a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081815260026020526040902060098101544211156118975760405162461bcd60e51b81526004016103c690613187565b600054600b8201546040516325fa700360e01b81526001600160a01b03909216916325fa7003916118ca916004016133d2565b60206040518083038186803b1580156118e257600080fd5b505afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a9190612a3c565b156119375760405162461bcd60e51b81526004016103c690612f68565b60006119997f000000000000000000000000000000000000000000000000000000000000000061198d7f00000000000000000000000000000000000000000000000000000000000000003a63ffffffff61213f16565b9063ffffffff61267416565b90506000808360080160009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a269190612a5c565b506001600160701b031691506001600160701b0316915083600601548210158015611a55575083600701548110155b611a715760405162461bcd60e51b81526004016103c6906132bd565b600054600b850154604051634155c48560e11b81526001600160a01b03909216916382ab890a91611aa4916004016133d2565b600060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b50505050824710611ae757611ae73384611d1b565b5050505050565b6003546001600160a01b03163314611b185760405162461bcd60e51b81526004016103c690612f31565b600354611b2e906001600160a01b031682611d1b565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611b7f5760405162461bcd60e51b81526004016103c690612f31565b600354611b979083906001600160a01b031683611dad565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003546001600160a01b03163314611be95760405162461bcd60e51b81526004016103c690613042565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611c43612808565b5060009081526002602081815260409283902083516101e081018552815460ff80821683526001600160a01b0361010092839004811695840195909552600184015485169683019690965293820154606082015260038201546080820152600482015460a0820152600582015460c0820152600682015460e0820152600782015493810193909352600881015482166101208401526009810154610140840152600a810154610160840152600b810154610180840152600c01549081166101a0830152600160a01b900490911615156101c082015290565b604080516000808252602082019092526001600160a01b038416908390604051611d459190612b71565b60006040518083038185875af1925050503d8060008114611d82576040519150601f19603f3d011682016040523d82523d6000602084013e611d87565b606091505b5050905080611da85760405162461bcd60e51b81526004016103c690613243565b505050565b60006060846001600160a01b031663a9059cbb8585604051602401611dd3929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611e0c9190612b71565b6000604051808303816000865af19150503d8060008114611e49576040519150601f19603f3d011682016040523d82523d6000602084013e611e4e565b606091505b5091509150818015611e78575080511580611e78575080806020019051810190611e789190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612cff565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480611f0757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b611f235760405162461bcd60e51b81526004016103c690612fd4565b6001600160a01b038416611f55577f000000000000000000000000000000000000000000000000000000000000000093505b60405163e6a4390560e01b81526001600160a01b0383169063e6a4390590611f839087908790600401612c14565b60206040518083038186803b158015611f9b57600080fd5b505afa158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906128a7565b949350505050565b6001805480820190915590565b6000806000611ff78585612697565b9150915085828260405160200161200f929190612b4a565b60405160208183030381529060405280519060200120604051602001612036929190612baa565b60408051601f1981840301815291905280516020909101209695505050505050565b600080841180156120695750600083115b15612133576000612080858563ffffffff61267416565b6120c07f00000000000000000000000000000000000000000000000000000000000000006120b48a8a63ffffffff61267416565b9063ffffffff61213f16565b816120c757fe5b0490506103e88110156120dd57601e915061211b565b6109c48110156120f057603c915061211b565b61138881101561210357605a915061211b565b612710811015612116576078915061211b565b609691505b82821115612129578261212b565b815b915050612136565b50805b95945050505050565b600081158061215a5750508082028282828161215757fe5b04145b6121765760405162461bcd60e51b81526004016103c690612d6b565b92915050565b808203828111156121765760405162461bcd60e51b81526004016103c690612cd0565b600080806001600160a01b038916612249577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0886040518263ffffffff1660e01b81526004016000604051808303818588803b15801561220c57600080fd5b505af1158015612220573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000098505b612274897f000000000000000000000000000000000000000000000000000000000000000089612721565b61229f887f000000000000000000000000000000000000000000000000000000000000000088612721565b60405162e8e33760e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e8e33700906122f8908c908c908c908c908c908c9030904290600401612c6e565b606060405180830381600087803b15801561231257600080fd5b505af1158015612326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234a9190612b03565b9194509250905061237d897f00000000000000000000000000000000000000000000000000000000000000006000612721565b6123a9887f00000000000000000000000000000000000000000000000000000000000000006000612721565b505050505050505050565b6001600160a01b038616156123c957856123eb565b7f00000000000000000000000000000000000000000000000000000000000000005b9550612418847f000000000000000000000000000000000000000000000000000000000000000085612721565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663baa2abde898988888830426040518863ffffffff1660e01b81526004016124739796959493929190612c2e565b6040805180830381600087803b15801561248c57600080fd5b505af11580156124a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c49190612ae0565b915091506124f4867f00000000000000000000000000000000000000000000000000000000000000006000612721565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614156125b157604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d9061257a9085906004016133d2565b600060405180830381600087803b15801561259457600080fd5b505af11580156125a8573d6000803e3d6000fd5b5050505061266a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316141561266a57604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906126379084906004016133d2565b600060405180830381600087803b15801561265157600080fd5b505af1158015612665573d6000803e3d6000fd5b505050505b5050505050505050565b808201828110156121765760405162461bcd60e51b81526004016103c690612dda565b600080826001600160a01b0316846001600160a01b031614156126cc5760405162461bcd60e51b81526004016103c690612e3f565b826001600160a01b0316846001600160a01b0316106126ec5782846126ef565b83835b90925090506001600160a01b03821661271a5760405162461bcd60e51b81526004016103c690613286565b9250929050565b60006060846001600160a01b031663095ea7b38585604051602401612747929190612cb7565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516127809190612b71565b6000604051808303816000865af19150503d80600081146127bd576040519150601f19603f3d011682016040523d82523d6000602084013e6127c2565b606091505b50915091508180156127ec5750805115806127ec5750808060200190518101906127ec9190612a3c565b611ae75760405162461bcd60e51b81526004016103c690612e08565b604051806101e00160405280600060ff16815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000151581525090565b6000602082840312156128b8578081fd5b81516128c38161341f565b9392505050565b6000602082840312156128db578081fd5b81356128c38161341f565b6000806000806000806000806000806101408b8d031215612905578586fd5b8a356129108161341f565b995060208b01356129208161341f565b985060408b0135975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b01356129638161341f565b809150509295989b9194979a5092959850565b60008060008060008060008060008060006101608c8e031215612997578081fd5b8b356129a28161341f565b9a5060208c01356129b28161341f565b995060408c0135985060608c0135975060808c0135965060a08c0135955060c08c0135945060e08c013593506101008c013592506101208c013591506101408c01356129fd8161341f565b809150509295989b509295989b9093969950565b60008060408385031215612a23578182fd5b8235612a2e8161341f565b946020939093013593505050565b600060208284031215612a4d578081fd5b815180151581146128c3578182fd5b600080600060608486031215612a70578283fd5b8351612a7b81613434565b6020850151909350612a8c81613434565b604085015190925063ffffffff81168114612aa5578182fd5b809150509250925092565b600060208284031215612ac1578081fd5b5035919050565b600060208284031215612ad9578081fd5b5051919050565b60008060408385031215612af2578182fd5b505080516020909101519092909150565b600080600060608486031215612b17578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03169052565b15159052565b60ff169052565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b60008251815b81811015612b915760208186018101518583015201612b77565b81811115612b9f5782828501525b509190910192915050565b6001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776603582015260550190565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039788168152958716602087015260408601949094526060850192909252608084015290921660a082015260c081019190915260e00190565b6001600160a01b039889168152968816602088015260408701959095526060860193909352608085019190915260a084015290921660c082015260e08101919091526101000190565b6001600160a01b03929092168252602082015260400190565b60208082526015908201527464732d6d6174682d7375622d756e646572666c6f7760581b604082015260600190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b6020808252818101527f44587377617052656c617965723a20494e56414c49445f544f4c4552414e4345604082015260600190565b60208082526014908201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604082015260600190565b60208082526021908201527f44587377617052656c617965723a20494e56414c49445f57494e444f5754494d6040820152604560f81b606082015260800190565b60208082526014908201527364732d6d6174682d6164642d6f766572666c6f7760601b604082015260600190565b6020808252601e908201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604082015260600190565b60208082526022908201527f4458737761704c6962726172793a204944454e544943414c5f41444452455353604082015261455360f01b606082015260800190565b6020808252601b908201527f44587377617052656c617965723a20494e56414c49445f504149520000000000604082015260600190565b6020808252601f908201527f44587377617052656c617965723a20494e53554646494349454e545f45544800604082015260600190565b60208082526022908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f4f524460408201526122a960f11b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252818101527f44587377617052656c617965723a204f42534552564154494f4e5f454e444544604082015260600190565b6020808252601d908201527f44587377617052656c617965723a204f524445525f4558454355544544000000604082015260600190565b6020808252601e908201527f44587377617052656c617965723a20494e56414c49445f464143544f52590000604082015260600190565b6020808252601c908201527f44587377617052656c617965723a20494e56414c49445f4f5244455200000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f44587377617052656c617965723a20494e56414c49445f544f4b454e5f414d4f60408201526215539560ea1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b456040820152624e5f4160e81b606082015260800190565b60208082526027908201527f44587377617052656c617965723a20494e56414c49445f4c495155494449545960408201526617d05353d5539560ca1b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20444541444c494e455f4e4f545f5245414360408201526212115160ea1b606082015260800190565b6020808252601f908201527f44587377617052656c617965723a20444541444c494e455f5245414348454400604082015260600190565b60208082526022908201527f44587377617052656c617965723a204f42534552564154494f4e5f52554e4e496040820152614e4760f01b606082015260800190565b60208082526023908201527f44587377617052656c617965723a20494e53554646494349454e545f544f4b45604082015262272fa160e91b606082015260800190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201526213115160ea1b606082015260800190565b6020808252601b908201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604082015260600190565b6020808252601d908201527f44587377617052656c617965723a20524553455256455f544f5f4c4f57000000604082015260600190565b60006101e082019050613308828451612b43565b602083015161331a6020840182612b30565b50604083015161332d6040840182612b30565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161337f82850182612b30565b50506101408381015190830152610160808401519083015261018080840151908301526101a0808401516133b582850182612b30565b50506101c0808401516133ca82850182612b3d565b505092915050565b90815260200190565b9182526001600160a01b0316602082015260400190565b9283526001600160a01b03919091166020830152604082015260600190565b60ff91909116815260200190565b6001600160a01b0381168114611b2e57600080fd5b6001600160701b0381168114611b2e57600080fdfea2646970667358221220878d47103d0be171d335c3b565fa1348f7b750cc33c825d6f23a214eb23487c564736f6c63430006060033", - "srcmap": "377:14694:6:-:0;;;1263:6;1218:51;;1320:7;1275:52;;1367:10;1333:44;;-1:-1:-1;;;1400:36:6;;-1:-1:-1;;;1442:34:6;;1832:499;2:2:-1;;;;27:1;24;17:12;2:2;1832:499:6;;;;;;;;;;;;;;;;;;;;;2088:5;:14;;-1:-1:-1;;;;;2088:14:6;;;-1:-1:-1;;;;;;2088:14:6;;;;;;;-1:-1:-1;;;;;;2112:30:6;;;;;;;;2152:28;;;;;;;2190:32;;;;;;;2232:30;;;;;;;2272:12;;;;;;;;2088:5;2294:30;;;;;;;;;;;377:14694;;490:1145:-1;;;;;;;;738:3;726:9;717:7;713:23;709:33;706:2;;;-1:-1;;745:12;706:2;238:6;232:13;250:41;285:5;250:41;;;916:2;966:22;;83:13;797:82;;-1:-1;101:33;83:13;101:33;;;1035:2;1085:22;;83:13;924:74;;-1:-1;101:33;83:13;101:33;;;1154:2;1204:22;;83:13;1043:74;;-1:-1;101:33;83:13;101:33;;;1273:3;1324:22;;83:13;1162:74;;-1:-1;101:33;83:13;101:33;;;1393:3;1444:22;;83:13;1282:74;;-1:-1;101:33;83:13;101:33;;;1513:3;1587:22;;404:13;1402:74;;-1:-1;422:56;404:13;422:56;;;1522:97;;;;700:935;;;;;;;;;;;2095:117;-1:-1;;;;;2029:54;;2154:35;;2144:2;;2203:1;;2193:12;2144:2;2138:74;;;377:14694:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "srcmap-runtime": "377:14694:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1728:25:6;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1728:25:6;;;:::i;:::-;;;;;;;;;;;;;;;;9857:843;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;9857:843:6;;;;;;;;:::i;:::-;;1442:34;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1442:34:6;;;:::i;:::-;;;;;;;;1483:38;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1483:38:6;;;:::i;:::-;;;;;;;;1615;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1615:38:6;;;:::i;1570:39::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1570:39:6;;;:::i;1218:51::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1218:51:6;;;:::i;5189:2138::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5189:2138:6;;;;;;;;:::i;1797:28::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1797:28:6;;;:::i;7333:1650::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;7333:1650:6;;;;;;;;:::i;1527:37::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1527:37:6;;;:::i;1659:29::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1659:29:6;;;:::i;2337:2846::-;;;;;;;;;:::i;1400:36::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1400:36:6;;;:::i;9052:799::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;9052:799:6;;;;;;;;:::i;14406:181::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14406:181:6;;;;;;;;:::i;1333:44::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1333:44:6;;;:::i;14130:202::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14130:202:6;;;;;;;;:::i;1275:52::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1275:52:6;;;:::i;14771:263::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14771:263:6;;;;;;;;:::i;14639:122::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;14639:122:6;;;;;;;;:::i;:::-;;;;;;;;1728:25;;;;:::o;9857:843::-;9926:19;9948:18;;;:6;:18;;;;;9998:5;;-1:-1:-1;;;;;9998:5:6;9984:10;:19;9976:63;;;;-1:-1:-1;;;9976:63:6;;;;;;;;;;;;;;;;;10075:5;:14;;;10057:15;:32;10049:80;;;;-1:-1:-1;;;10049:80:6;;;;;;;;;10147:14;;;;-1:-1:-1;;;10147:14:6;;;;:23;10139:65;;;;-1:-1:-1;;;10139:65:6;;;;;;;;;10231:12;;;10270;;;10310:13;;;;10351;;;;10374:14;;;:21;;-1:-1:-1;;;;10374:21:6;-1:-1:-1;;;10374:21:6;;;-1:-1:-1;;;;;10231:12:6;;;;;;;10270;;;;;10410:20;10406:179;;10477:5;;10446:46;;-1:-1:-1;;;;;10477:5:6;10484:7;10446:30;:46::i;:::-;10406:179;;;10559:5;;10523:51;;10551:6;;-1:-1:-1;;;;;10559:5:6;10566:7;10523:27;:51::i;:::-;10630:5;;10594:51;;10622:6;;-1:-1:-1;;;;;10630:5:6;10637:7;10594:27;:51::i;:::-;10660:33;;10682:10;;10660:33;;;;;9857:843;;;;;;:::o;1442:34::-;;;:::o;1483:38::-;;;:::o;1615:::-;;;:::o;1570:39::-;;;:::o;1218:51::-;;;:::o;5189:2138::-;5541:18;5590:13;-1:-1:-1;;;;;5579:24:6;:7;-1:-1:-1;;;;;5579:24:6;;:53;;;;5618:14;-1:-1:-1;;;;;5607:25:6;:7;-1:-1:-1;;;;;5607:25:6;;5579:53;5571:96;;;;-1:-1:-1;;;5571:96:6;;;;;;;;;5699:5;;-1:-1:-1;;;;;5699:5:6;5685:10;:19;5677:63;;;;-1:-1:-1;;;5677:63:6;;;;;;;;;5768:6;-1:-1:-1;;;;;5758:16:6;:6;-1:-1:-1;;;;;5758:16:6;;;5750:56;;;;-1:-1:-1;;;5750:56:6;;;;;;;;;5833:6;-1:-1:-1;;;;;5824:15:6;:6;-1:-1:-1;;;;;5824:15:6;;5816:62;;;;-1:-1:-1;;;5816:62:6;;;;;;;;;5906:1;5896:7;:11;:26;;;;;5921:1;5911:7;:11;5896:26;:43;;;;;5938:1;5926:9;:13;5896:43;5888:95;;;;-1:-1:-1;;;5888:95:6;;;;;;;;;6019:17;6001:14;:35;;5993:80;;;;-1:-1:-1;;;5993:80:6;;;;;;;;;6110:8;6091:15;:27;;6083:71;;;;-1:-1:-1;;;6083:71:6;;;;;;;;;6188:2;6172:13;:18;6164:64;;;;-1:-1:-1;;;6164:64:6;;;;;;;;;6239:12;6254:30;6260:6;6268;6276:7;6254:5;:30::i;:::-;6239:45;;6307:13;:11;:13::i;:::-;6294:26;;6351:504;;;;;;;;6379:7;6351:504;;;;;;6408:6;-1:-1:-1;;;;;6351:504:6;;;;;6436:6;-1:-1:-1;;;;;6351:504:6;;;;;6465:7;6351:504;;;;6495:7;6351:504;;;;6527:9;6351:504;;;;6566:14;6351:504;;;;6607:11;6351:504;;;;6645:11;6351:504;;;;6682:4;-1:-1:-1;;;;;6351:504:6;;;;;6710:8;6351:504;;;;6747:13;6351:504;;;;6784:1;6351:504;;;;6808:7;-1:-1:-1;;;;;6351:504:6;;;;;6839:5;6351:504;;;;;6330:6;:18;6337:10;6330:18;;;;;;;;;;;:525;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:525:6;;;;;-1:-1:-1;;;;;6330:525:6;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:525:6;;;;;-1:-1:-1;;;;;6330:525:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:525:6;;;;;-1:-1:-1;;;;;6330:525:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:525:6;;;;;-1:-1:-1;;;;;6330:525:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6893:1;-1:-1:-1;;;;;6875:20:6;:6;-1:-1:-1;;;;;6875:20:6;;:36;;6905:6;6875:36;;;6898:4;6875:36;6866:45;;6921:18;6942:61;6972:13;6988:6;6996;6942:21;:61::i;:::-;6921:82;;7014:13;7029;7059:10;-1:-1:-1;;;;;7047:35:6;;:37;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7047:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7047:37:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7047:37:6;;;;;;;;;7013:71;-1:-1:-1;;;;;7013:71:6;;;-1:-1:-1;;;;;7013:71:6;;;7094:18;7115:77;7140:7;7149;7158:8;7168;7178:13;7115:24;:77::i;:::-;7232:13;;:44;;-1:-1:-1;;;7232:44:6;;7094:98;;-1:-1:-1;;;;;;7232:13:6;;:26;;:44;;7094:98;;7271:4;;7232:44;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7232:44:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7232:44:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7232:44:6;;;;;;;;;7202:18;;;;:6;:18;;;;;;:27;;:74;;;;7291:29;;;7312:7;7291:29;;7209:10;;7291:29;;7202:18;7291:29;5189:2138;;;;;;;;;;;;;;;;;;:::o;1797:28::-;;;-1:-1:-1;;;;;1797:28:6;;:::o;7333:1650::-;7394:19;7416:18;;;:6;:18;;;;;7465:10;;7452:23;;7444:64;;;;-1:-1:-1;;;7444:64:6;;;;;;;;;7527:14;;;;-1:-1:-1;;;7527:14:6;;;;7526:15;7518:57;;;;-1:-1:-1;;;7518:57:6;;;;;;;;;7593:13;;7625:14;;;;7593:47;;-1:-1:-1;;;7593:47:6;;-1:-1:-1;;;;;7593:13:6;;;;:31;;:47;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7593:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7593:47:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7593:47:6;;;;;;;;;7585:95;;;;-1:-1:-1;;;7585:95:6;;;;;;;;;7717:5;:14;;;7698:15;:33;;7690:77;;;;-1:-1:-1;;;7690:77:6;;;;;;;;;7795:12;;;7834;;;7778:14;7891:13;;7924:14;;;;7795:12;;;;-1:-1:-1;;;;;7795:12:6;;;;7834;;;;7891:13;;;:21;;7950:20;;:66;;8010:6;7950:66;;;7987:12;-1:-1:-1;;;;;7973:32:6;;:34;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7973:34:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7973:34:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7973:34:6;;;;;;;;;8028:5;:13;;;7891:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7891:161:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7891:161:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7891:161:6;;;;;;;;;8062:15;8080:13;;8102:14;;;;8126:13;;;;8080:60;;-1:-1:-1;;;8080:60:6;;7881:171;;-1:-1:-1;8062:15:6;;-1:-1:-1;;;;;8080:13:6;;;;:21;;:60;;8102:14;8118:6;;8080:60;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8080:60:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8080:60:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8080:60:6;;;;;;;;;8062:78;;8210:5;:13;;;8199:7;:24;8196:130;;8248:5;:13;;;8238:23;;8196:130;;;-1:-1:-1;8302:13:6;;;;8196:130;8335:12;8350:66;8398:17;8362:33;8374:5;:20;;;8362:7;:11;;:33;;;;:::i;:::-;:53;;;;;8350:7;;8362:53;;8350:66;:11;:66;:::i;:::-;8335:81;;8426:12;8441:66;8489:17;8453:33;8465:5;:20;;;8453:7;:11;;:33;;;;:::i;:::-;:53;;;;;8441:7;;8453:53;;8441:66;:11;:66;:::i;:::-;8518:14;;;:21;;-1:-1:-1;;;;8518:21:6;-1:-1:-1;;;8518:21:6;;;8552:12;;8426:81;;-1:-1:-1;8518:21:6;8552:12;;;8568:9;8552:25;;;;8549:388;;;8592:51;8598:6;8606;8614:7;8623;8632:4;8638;8592:5;:51::i;:::-;8549:388;;;8664:12;;8680:7;8664:23;;;;:12;;:23;8660:277;;;8702:12;8717:36;8723:6;8731;8739:13;8717:5;:36::i;:::-;8702:51;;8767:159;8790:6;8813;8836:4;8857:5;:15;;;8888:4;8908;8767:7;:159::i;:::-;8660:277;;8951:25;;8965:10;;8951:25;;;;;7333:1650;;;;;;;;:::o;1527:37::-;;;:::o;1659:29::-;;;:::o;2337:2846::-;2672:18;2721:13;-1:-1:-1;;;;;2710:24:6;:7;-1:-1:-1;;;;;2710:24:6;;:53;;;;2749:14;-1:-1:-1;;;;;2738:25:6;:7;-1:-1:-1;;;;;2738:25:6;;2710:53;2702:96;;;;-1:-1:-1;;;2702:96:6;;;;;;;;;2830:5;;-1:-1:-1;;;;;2830:5:6;2816:10;:19;2808:63;;;;-1:-1:-1;;;2808:63:6;;;;;;;;;2899:6;-1:-1:-1;;;;;2889:16:6;:6;-1:-1:-1;;;;;2889:16:6;;;2881:56;;;;-1:-1:-1;;;2881:56:6;;;;;;;;;2964:6;-1:-1:-1;;;;;2955:15:6;:6;-1:-1:-1;;;;;2955:15:6;;2947:62;;;;-1:-1:-1;;;2947:62:6;;;;;;;;;3037:1;3027:7;:11;:26;;;;;3052:1;3042:7;:11;3027:26;3019:74;;;;-1:-1:-1;;;3019:74:6;;;;;;;;;3129:17;3111:14;:35;;3103:80;;;;-1:-1:-1;;;3103:80:6;;;;;;;;;3220:8;3201:15;:27;;3193:71;;;;-1:-1:-1;;;3193:71:6;;;;;;;;;3298:2;3282:13;:18;3274:64;;;;-1:-1:-1;;;3274:64:6;;;;;;;;;-1:-1:-1;;;;;3361:20:6;;3357:256;;3430:7;3405:21;:32;;3397:76;;;;-1:-1:-1;;;3397:76:6;;;;;;;;;3357:256;;;3512:39;;-1:-1:-1;;;3512:39:6;;3555:7;;-1:-1:-1;;;;;3512:24:6;;;;;:39;;3545:4;;3512:39;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3512:39:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3512:39:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3512:39:6;;;;;;;;;:50;;3504:98;;;;-1:-1:-1;;;3504:98:6;;;;;;;;;3630:39;;-1:-1:-1;;;3630:39:6;;3673:7;;-1:-1:-1;;;;;3630:24:6;;;;;:39;;3663:4;;3630:39;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3630:39:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3630:39:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3630:39:6;;;;;;;;;:50;;3622:98;;;;-1:-1:-1;;;3622:98:6;;;;;;;;;3731:12;3746:30;3752:6;3760;3768:7;3746:5;:30::i;:::-;3731:45;;3799:13;:11;:13::i;:::-;3786:26;;3843:498;;;;;;;;3871:9;3843:498;;;;;;3902:6;-1:-1:-1;;;;;3843:498:6;;;;;3930:6;-1:-1:-1;;;;;3843:498:6;;;;;3959:7;3843:498;;;;3989:7;3843:498;;;;4021:1;3843:498;;;;4052:14;3843:498;;;;4093:11;3843:498;;;;4131:11;3843:498;;;;4168:4;-1:-1:-1;;;;;3843:498:6;;;;;4196:8;3843:498;;;;4233:13;3843:498;;;;4270:1;3843:498;;;;4294:7;-1:-1:-1;;;;;3843:498:6;;;;;4325:5;3843:498;;;;;3822:6;:18;3829:10;3822:18;;;;;;;;;;;:519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:519:6;;;;;-1:-1:-1;;;;;3822:519:6;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:519:6;;;;;-1:-1:-1;;;;;3822:519:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:519:6;;;;;-1:-1:-1;;;;;3822:519:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:519:6;;;;;-1:-1:-1;;;;;3822:519:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4377:9;4356:31;;4365:10;4356:31;;;;;;;;;;4399:13;4414;4444:4;-1:-1:-1;;;;;4432:29:6;;:31;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4432:31:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4432:31:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4432:31:6;;;;;;;;;4398:65;-1:-1:-1;;;;;4398:65:6;;;-1:-1:-1;;;;;4398:65:6;;;4477:11;4492:1;4477:16;:36;;;;-1:-1:-1;4497:16:6;;4477:36;:53;;;;-1:-1:-1;4517:13:6;;4477:53;:70;;;;-1:-1:-1;4534:13:6;;4477:70;4473:704;;;4673:18;;;;:6;:18;;;;;;;;:27;;;:34;;-1:-1:-1;;;;4673:34:6;-1:-1:-1;;;4673:34:6;;;4761:26;;4721:95;;4727:6;;4735;;4743:7;;4752;;4761:26;4721:5;:95::i;:::-;4835:25;;4849:10;;4835:25;;;;;4473:704;;;4980:18;5001:77;5026:7;5035;5044:8;5054;5064:13;5001:24;:77::i;:::-;5122:13;;:44;;-1:-1:-1;;;5122:44:6;;4980:98;;-1:-1:-1;;;;;;5122:13:6;;:26;;:44;;4980:98;;5161:4;;5122:44;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5122:44:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5122:44:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5122:44:6;;;;;;;;;5092:18;;;;:6;:18;;;;;:27;;:74;-1:-1:-1;4473:704:6;2337:2846;;;;;;;;;;;;;;;:::o;1400:36::-;;;:::o;9052:799::-;9113:19;9135:18;;;:6;:18;;;;;9190:14;;;;9171:15;:33;;9163:77;;;;-1:-1:-1;;;9163:77:6;;;;;;;;;9259:13;;9291:14;;;;9259:47;;-1:-1:-1;;;9259:47:6;;-1:-1:-1;;;;;9259:13:6;;;;:31;;:47;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9259:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9259:47:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9259:47:6;;;;;;;;;9258:48;9250:94;;;;-1:-1:-1;;;9250:94:6;;;;;;;;;9354:20;9377:46;9416:6;9377:34;:17;9399:11;9377:34;:21;:34;:::i;:::-;:38;:46;:38;:46;:::i;:::-;9354:69;;9443:13;9458;9488:5;:16;;;;;;;;;;-1:-1:-1;;;;;9488:16:6;-1:-1:-1;;;;;9476:41:6;;:43;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9476:43:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9476:43:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9476:43:6;;;;;;;;;9442:77;-1:-1:-1;;;;;9442:77:6;;;-1:-1:-1;;;;;9442:77:6;;;9562:5;:17;;;9550:8;:29;;:62;;;;;9595:5;:17;;;9583:8;:29;;9550:62;9529:138;;;;-1:-1:-1;;;9529:138:6;;;;;;;;;9677:13;;9698:14;;;;9677:36;;-1:-1:-1;;;9677:36:6;;-1:-1:-1;;;;;9677:13:6;;;;:20;;:36;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9677:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9677:36:6;;;;9751:12;9726:21;:37;9723:122;;9778:56;9809:10;9821:12;9778:30;:56::i;:::-;9052:799;;;;;:::o;14406:181::-;14484:5;;-1:-1:-1;;;;;14484:5:6;14470:10;:19;14462:63;;;;-1:-1:-1;;;14462:63:6;;;;;;;;;14566:5;;14535:45;;-1:-1:-1;;;;;14566:5:6;14573:6;14535:30;:45::i;:::-;14406:181;:::o;1333:44::-;;;:::o;14130:202::-;14225:5;;-1:-1:-1;;;;;14225:5:6;14211:10;:19;14203:63;;;;-1:-1:-1;;;14203:63:6;;;;;;;;;14311:5;;14276:49;;14304:5;;-1:-1:-1;;;;;14311:5:6;14318:6;14276:27;:49::i;:::-;14130:202;;:::o;1275:52::-;;;:::o;14771:263::-;14866:5;;-1:-1:-1;;;;;14866:5:6;14852:10;:19;14844:64;;;;-1:-1:-1;;;14844:64:6;;;;;;;;;14938:5;;;-1:-1:-1;;;;;14953:17:6;;;-1:-1:-1;;;;;;14953:17:6;;;;;;;14985:42;;14938:5;;;14953:17;14938:5;;14985:42;;14918:17;;14985:42;14771:263;;:::o;14639:122::-;14707:12;;:::i;:::-;-1:-1:-1;14736:18:6;;;;:6;:18;;;;;;;;;14729:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;14729:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14729:25:6;;;;;;;;;;;;14639:122::o;1293:192:24:-;1400:12;;;1362;1400;;;;;;;;;-1:-1:-1;;;;;1379:7:24;;;1393:5;;1379:34;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1361:52:24;;;1431:7;1423:55;;;;-1:-1:-1;;;1423:55:24;;;;;;;;;1293:192;;;:::o;526:357::-;673:12;687:17;708:5;-1:-1:-1;;;;;708:10:24;742;754:2;758:5;719:45;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;719:45:24;;;;;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;719:45:24;708:57;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;672:93:24;;;;783:7;:57;;;;-1:-1:-1;795:11:24;;:16;;:44;;;826:4;815:24;;;;;;;;;;;;;;775:101;;;;-1:-1:-1;;;775:101:24;;;;;;;;13537:321:6;13624:12;13665:13;-1:-1:-1;;;;;13654:24:6;:7;-1:-1:-1;;;;;13654:24:6;;:53;;;;13693:14;-1:-1:-1;;;;;13682:25:6;:7;-1:-1:-1;;;;;13682:25:6;;13654:53;13646:96;;;;-1:-1:-1;;;13646:96:6;;;;;;;;;-1:-1:-1;;;;;13754:20:6;;13750:39;;13785:4;13776:13;;13750:39;13804:47;;-1:-1:-1;;;13804:47:6;;-1:-1:-1;;;;;13804:31:6;;;;;:47;;13836:6;;13844;;13804:47;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13804:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13804:47:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13804:47:6;;;;;;;;;13797:54;13537:321;-1:-1:-1;;;;13537:321:6:o;13936:121::-;14018:10;;;14038:12;;;;;;14018:10;13936:121::o;698:450:18:-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;811:61;;;;963:7;1011:6;1019;994:32;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;994:32:18;;;984:43;;;;;;912:226;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;912:226:18;;;902:237;;49:4:-1;902:237:18;;;;;698:450;-1:-1:-1;;;;;;698:450:18:o;12508:935:6:-;12704:18;12748:1;12737:8;:12;:28;;;;;12764:1;12753:8;:12;12737:28;12734:703;;;12780:17;12848:22;:8;12861;12848:22;:12;:22;:::i;:::-;12800:45;12827:17;12801:20;:7;12813;12801:20;:11;:20;:::i;:::-;12800:26;:45;:26;:45;:::i;:::-;:70;;;;;;12780:90;;12961:4;12949:9;:16;12946:341;;;12996:2;12983:15;;12946:341;;;13035:4;13023:9;:16;13019:268;;;13069:2;13056:15;;13019:268;;;13108:4;13096:9;:16;13092:195;;;13142:2;13129:15;;13092:195;;;13181:5;13169:9;:17;13165:122;;;13216:3;13203:16;;13165:122;;;13269:3;13256:16;;13165:122;13327:13;13313:10;:27;;:56;;13356:13;13313:56;;;13343:10;13313:56;13300:69;;12734:703;;;;-1:-1:-1;13413:13:6;12734:703;12508:935;;;;;;;:::o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;-1:-1:-1;;;489:63:23;;;;;;;;;419:140;;;;:::o;286:127::-;369:5;;;364:16;;;;356:50;;;;-1:-1:-1;;;356:50:23;;;;;;;;10710:917:6;10898:15;;;-1:-1:-1;;;;;10978:21:6;;10975:112;;11018:4;-1:-1:-1;;;;;11012:19:6;;11039:8;11012:38;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11012:38:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11012:38:6;;;;;11072:4;11062:14;;10975:112;11096:59;11123:7;11132:12;11146:8;11096:26;:59::i;:::-;11165;11192:7;11201:12;11215:8;11165:26;:59::i;:::-;11266:230;;-1:-1:-1;;;11266:230:6;;-1:-1:-1;;;;;11280:12:6;11266:40;;;;:230;;11320:7;;11341;;11362:8;;11384;;11406:5;;11425;;11452:4;;11471:15;;11266:230;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11266:230:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11266:230:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11266:230:6;;;;;;;;;11234:262;;-1:-1:-1;11234:262:6;-1:-1:-1;11234:262:6;-1:-1:-1;11506:52:6;11533:7;11542:12;11556:1;11506:26;:52::i;:::-;11568;11595:7;11604:12;11618:1;11568:26;:52::i;:::-;10710:917;;;;;;;;;:::o;11633:785::-;-1:-1:-1;;;;;11832:21:6;;;:38;;11863:7;11832:38;;;11856:4;11832:38;11822:48;;11880:59;11907:5;11914:12;11928:10;11880:26;:59::i;:::-;11950:12;11964;11994;-1:-1:-1;;;;;11980:43:6;;12037:7;12058;12079:10;12103:5;12122;12149:4;12168:15;11980:213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11980:213:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11980:213:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11980:213:6;;;;;;;;;11949:244;;;;12203:50;12230:5;12237:12;12251:1;12203:26;:50::i;:::-;12277:4;-1:-1:-1;;;;;12266:15:6;:7;-1:-1:-1;;;;;12266:15:6;;12263:149;;;12294:29;;-1:-1:-1;;;12294:29:6;;-1:-1:-1;;;;;12300:4:6;12294:20;;;;:29;;12315:7;;12294:29;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12294:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12294:29:6;;;;12263:149;;;12355:4;-1:-1:-1;;;;;12344:15:6;:7;-1:-1:-1;;;;;12344:15:6;;12340:72;;;12372:29;;-1:-1:-1;;;12372:29:6;;-1:-1:-1;;;;;12378:4:6;12372:20;;;;:29;;12393:7;;12372:29;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12372:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12372:29:6;;;;12340:72;11633:785;;;;;;;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;-1:-1:-1;;;224:49:23;;;;;;;;270:339:18;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;-1:-1:-1;;;542:60:18;;;;;;;;;270:339;;;;;:::o;166:354:24:-;311:12;325:17;346:5;-1:-1:-1;;;;;346:10:24;380;392:2;396:5;357:45;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;357:45:24;;;;;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;357:45:24;346:57;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;310:93:24;;;;421:7;:57;;;;-1:-1:-1;433:11:24;;:16;;:44;;;464:4;453:24;;;;;;;;;;;;;;413:100;;;;-1:-1:-1;;;413:100:24;;;;;;;;377:14694:6;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;377:14694:6;;;;;;-1:-1:-1;;;;;377:14694:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;377:14694:6;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;377:14694:6;;;;;;;;;;;;:::o;1129:263:-1:-;;1244:2;1232:9;1223:7;1219:23;1215:32;1212:2;;;-1:-1;;1250:12;1212:2;226:6;220:13;238:33;265:5;238:33;;;1302:74;1206:186;-1:-1;;;1206:186;1399:257;;1511:2;1499:9;1490:7;1486:23;1482:32;1479:2;;;-1:-1;;1517:12;1479:2;371:6;358:20;383:41;418:5;383:41;;1663:1373;;;;;;;;;;;1920:3;1908:9;1899:7;1895:23;1891:33;1888:2;;;-1:-1;;1927:12;1888:2;85:6;72:20;97:33;124:5;97:33;;;1979:63;-1:-1;2079:2;2118:22;;72:20;97:33;72:20;97:33;;;2087:63;-1:-1;2187:2;2226:22;;779:20;;-1:-1;2295:2;2334:22;;779:20;;-1:-1;2403:3;2443:22;;779:20;;-1:-1;2512:3;2552:22;;779:20;;-1:-1;2621:3;2661:22;;779:20;;-1:-1;2730:3;2770:22;;779:20;;-1:-1;2839:3;2879:22;;779:20;;-1:-1;2948:3;2988:22;;72:20;97:33;72:20;97:33;;;2957:63;;;;1882:1154;;;;;;;;;;;;;;3043:1501;;;;;;;;;;;;3318:3;3306:9;3297:7;3293:23;3289:33;3286:2;;;-1:-1;;3325:12;3286:2;85:6;72:20;97:33;124:5;97:33;;;3377:63;-1:-1;3477:2;3516:22;;72:20;97:33;72:20;97:33;;;3485:63;-1:-1;3585:2;3624:22;;779:20;;-1:-1;3693:2;3732:22;;779:20;;-1:-1;3801:3;3841:22;;779:20;;-1:-1;3910:3;3950:22;;779:20;;-1:-1;4019:3;4059:22;;779:20;;-1:-1;4128:3;4168:22;;779:20;;-1:-1;4237:3;4277:22;;779:20;;-1:-1;4346:3;4386:22;;779:20;;-1:-1;4455:3;4496:22;;72:20;97:33;72:20;97:33;;;4464:64;;;;3280:1264;;;;;;;;;;;;;;;4551:366;;;4672:2;4660:9;4651:7;4647:23;4643:32;4640:2;;;-1:-1;;4678:12;4640:2;85:6;72:20;97:33;124:5;97:33;;;4730:63;4830:2;4869:22;;;;779:20;;-1:-1;;;4634:283;4924:257;;5036:2;5024:9;5015:7;5011:23;5007:32;5004:2;;;-1:-1;;5042:12;5004:2;517:6;511:13;42384:5;40391:13;40384:21;42362:5;42359:32;42349:2;;-1:-1;;42395:12;5188:533;;;;5336:2;5324:9;5315:7;5311:23;5307:32;5304:2;;;-1:-1;;5342:12;5304:2;655:6;649:13;667:33;694:5;667:33;;;5505:2;5555:22;;649:13;5394:74;;-1:-1;667:33;649:13;667:33;;;5624:2;5673:22;;1067:13;5513:74;;-1:-1;40891:10;40880:22;;42727:34;;42717:2;;-1:-1;;42765:12;42717:2;5632:73;;;;5298:423;;;;;;5728:241;;5832:2;5820:9;5811:7;5807:23;5803:32;5800:2;;;-1:-1;;5838:12;5800:2;-1:-1;779:20;;5794:175;-1:-1;5794:175;5976:263;;6091:2;6079:9;6070:7;6066:23;6062:32;6059:2;;;-1:-1;;6097:12;6059:2;-1:-1;927:13;;6053:186;-1:-1;6053:186;6246:399;;;6378:2;6366:9;6357:7;6353:23;6349:32;6346:2;;;-1:-1;;6384:12;6346:2;-1:-1;;927:13;;6547:2;6597:22;;;927:13;;;;;-1:-1;6340:305;6652:535;;;;6801:2;6789:9;6780:7;6776:23;6772:32;6769:2;;;-1:-1;;6807:12;6769:2;933:6;927:13;6859:74;;6970:2;7024:9;7020:22;927:13;6978:74;;7089:2;7143:9;7139:22;927:13;7097:74;;6763:424;;;;;;7343:137;-1:-1;;;;;40674:54;7430:45;;7424:56;7876:94;40391:13;40384:21;7931:34;;7925:45;21723:97;40985:4;40974:16;21780:35;;21774:46;21941:383;-1:-1;;42011:2;42007:14;;;;;7806:58;;42007:14;;;;;22185:2;22176:12;;7806:58;22287:12;;;22076:248;22331:262;;8296:5;39601:12;-1:-1;41454:101;41468:6;41465:1;41462:13;41454:101;;;8440:4;41535:11;;;;;41529:18;41516:11;;;41509:39;41483:10;41454:101;;;41570:6;41567:1;41564:13;41561:2;;;-1:-1;41626:6;41621:3;41617:16;41610:27;41561:2;-1:-1;8471:16;;;;;22456:137;-1:-1;;22456:137;22600:917;-1:-1;;;;;;13956:87;;42011:2;42007:14;;;;-1:-1;;42007:14;13941:1;14062:11;;7806:58;23203:12;;;8066:58;15062:66;23314:12;;;15042:87;15148:12;;;22937:580;23524:213;-1:-1;;;;;40674:54;;;;7430:45;;23642:2;23627:18;;23613:124;24232:324;-1:-1;;;;;40674:54;;;7430:45;;40674:54;;24542:2;24527:18;;7430:45;24378:2;24363:18;;24349:207;24563:899;-1:-1;;;;;40674:54;;;7430:45;;40674:54;;;25022:2;25007:18;;7430:45;25105:2;25090:18;;8066:58;;;;25188:2;25173:18;;8066:58;;;;25271:3;25256:19;;8066:58;40674:54;;;40685:42;25348:19;;7273:58;25447:3;25432:19;;8066:58;;;;24857:3;24842:19;;24828:634;25469:1011;-1:-1;;;;;40674:54;;;7430:45;;40674:54;;;25956:2;25941:18;;7430:45;26039:2;26024:18;;8066:58;;;;26122:2;26107:18;;8066:58;;;;26205:3;26190:19;;8066:58;;;;40685:42;26274:19;;8066:58;40674:54;;;26381:3;26366:19;;7273:58;26465:3;26450:19;;8066:58;;;;25791:3;25776:19;;25762:718;26487:324;-1:-1;;;;;40674:54;;;;7430:45;;26797:2;26782:18;;8066:58;26633:2;26618:18;;26604:207;26818:407;27009:2;27023:47;;;8724:2;26994:18;;;39899:19;-1:-1;;;39939:14;;;8740:44;8803:12;;;26980:245;27232:407;27423:2;27437:47;;;9054:2;27408:18;;;39899:19;9090:33;39939:14;;;9070:54;9143:12;;;27394:245;27646:407;27837:2;27851:47;;;27822:18;;;39899:19;9430:34;39939:14;;;9410:55;9484:12;;;27808:245;28060:407;28251:2;28265:47;;;9735:2;28236:18;;;39899:19;-1:-1;;;39939:14;;;9751:43;9813:12;;;28222:245;28474:407;28665:2;28679:47;;;10064:2;28650:18;;;39899:19;10100:34;39939:14;;;10080:55;-1:-1;;;10155:12;;;10148:25;10192:12;;;28636:245;28888:407;29079:2;29093:47;;;10443:2;29064:18;;;39899:19;-1:-1;;;39939:14;;;10459:43;10521:12;;;29050:245;29302:407;29493:2;29507:47;;;10772:2;29478:18;;;39899:19;10808:32;39939:14;;;10788:53;10860:12;;;29464:245;29716:407;29907:2;29921:47;;;11111:2;29892:18;;;39899:19;11147:34;39939:14;;;11127:55;-1:-1;;;11202:12;;;11195:26;11240:12;;;29878:245;30130:407;30321:2;30335:47;;;11491:2;30306:18;;;39899:19;11527:29;39939:14;;;11507:50;11576:12;;;30292:245;30544:407;30735:2;30749:47;;;11827:2;30720:18;;;39899:19;11863:33;39939:14;;;11843:54;11916:12;;;30706:245;30958:407;31149:2;31163:47;;;12167:2;31134:18;;;39899:19;12203:34;39939:14;;;12183:55;-1:-1;;;12258:12;;;12251:26;12296:12;;;31120:245;31372:407;31563:2;31577:47;;;12547:2;31548:18;;;39899:19;12583:33;39939:14;;;12563:54;12636:12;;;31534:245;31786:407;31977:2;31991:47;;;31962:18;;;39899:19;12923:34;39939:14;;;12903:55;12977:12;;;31948:245;32200:407;32391:2;32405:47;;;13228:2;32376:18;;;39899:19;13264:31;39939:14;;;13244:52;13315:12;;;32362:245;32614:407;32805:2;32819:47;;;13566:2;32790:18;;;39899:19;13602:32;39939:14;;;13582:53;13654:12;;;32776:245;33028:407;33219:2;33233:47;;;14312:2;33204:18;;;39899:19;14348:30;39939:14;;;14328:51;14398:12;;;33190:245;33442:407;33633:2;33647:47;;;33618:18;;;39899:19;14685:34;39939:14;;;14665:55;14739:12;;;33604:245;33856:407;34047:2;34061:47;;;15399:2;34032:18;;;39899:19;15435:34;39939:14;;;15415:55;-1:-1;;;15490:12;;;15483:27;15529:12;;;34018:245;34270:407;34461:2;34475:47;;;15780:2;34446:18;;;39899:19;15816:34;39939:14;;;15796:55;-1:-1;;;15871:12;;;15864:27;15910:12;;;34432:245;34684:407;34875:2;34889:47;;;16161:2;34860:18;;;39899:19;16197:34;39939:14;;;16177:55;-1:-1;;;16252:12;;;16245:31;16295:12;;;34846:245;35098:407;35289:2;35303:47;;;16546:2;35274:18;;;39899:19;16582:34;39939:14;;;16562:55;-1:-1;;;16637:12;;;16630:27;16676:12;;;35260:245;35512:407;35703:2;35717:47;;;16927:2;35688:18;;;39899:19;16963:33;39939:14;;;16943:54;17016:12;;;35674:245;35926:407;36117:2;36131:47;;;17267:2;36102:18;;;39899:19;17303:34;39939:14;;;17283:55;-1:-1;;;17358:12;;;17351:26;17396:12;;;36088:245;36340:407;36531:2;36545:47;;;17647:2;36516:18;;;39899:19;17683:34;39939:14;;;17663:55;-1:-1;;;17738:12;;;17731:27;17777:12;;;36502:245;36754:407;36945:2;36959:47;;;18028:2;36930:18;;;39899:19;18064:34;39939:14;;;18044:55;-1:-1;;;18119:12;;;18112:27;18158:12;;;36916:245;37168:407;37359:2;37373:47;;;18409:2;37344:18;;;39899:19;18445:29;39939:14;;;18425:50;18494:12;;;37330:245;37582:407;37773:2;37787:47;;;18745:2;37758:18;;;39899:19;18781:31;39939:14;;;18761:52;18832:12;;;37744:245;37996:306;;38160:3;38149:9;38145:19;38137:27;;19159:59;19203:14;19136:16;19130:23;19159:59;;;19299:4;19292:5;19288:16;19282:23;19311:63;19299:4;19363:3;19359:14;19345:12;19311:63;;;;19455:4;19448:5;19444:16;19438:23;19467:63;19455:4;19519:3;19515:14;19501:12;19467:63;;;;19612:4;19605:5;19601:16;19595:23;19612:4;19676:3;19672:14;8066:58;19769:4;19762:5;19758:16;19752:23;19769:4;19833:3;19829:14;8066:58;19928:4;19921:5;19917:16;19911:23;19928:4;19992:3;19988:14;8066:58;20092:4;20085:5;20081:16;20075:23;20092:4;20156:3;20152:14;8066:58;20253:4;20246:5;20242:16;20236:23;20253:4;20317:3;20313:14;8066:58;20414:6;;20407:5;20403:18;20397:25;20414:6;20480:3;20476:16;8066:58;;20578:6;;20571:5;20567:18;20561:25;20592:65;20578:6;20644:3;20640:16;20626:12;20592:65;;;-1:-1;;20740:6;20729:18;;;20723:25;20802:16;;;8066:58;20907:6;20896:18;;;20890:25;20969:16;;;8066:58;21069:6;21058:18;;;21052:25;21131:16;;;8066:58;21230:6;21219:18;;;21213:25;21244:65;21292:16;;;21213:25;21244:65;;;;;21392:6;;21385:5;21381:18;21375:25;21406:59;21392:6;21452:3;21448:16;21434:12;21406:59;;;;;38131:171;;;;;38309:213;8066:58;;;38427:2;38412:18;;38398:124;38529:324;8066:58;;;-1:-1;;;;;40674:54;38839:2;38824:18;;7430:45;38675:2;38660:18;;38646:207;38860:435;8066:58;;;-1:-1;;;;;40674:54;;;;39198:2;39183:18;;7430:45;39281:2;39266:18;;8066:58;39034:2;39019:18;;39005:290;39302:205;40985:4;40974:16;;;;21780:35;;39416:2;39401:18;;39387:120;42039:117;-1:-1;;;;;40674:54;;42098:35;;42088:2;;42147:1;;42137:12;42421:117;-1:-1;;;;;42508:5;40558:42;42483:5;42480:35;42470:2;;42529:1;;42519:12" - }, - "contracts/examples/ExampleOracleSimple.sol:ExampleOracleSimple": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blockTimestampLast", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price0Average", - "outputs": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1Average", - "outputs": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60e06040523480156200001157600080fd5b5060405162000f9a38038062000f9a833981810160405260608110156200003757600080fd5b508051602080830151604090930151919291906000906200006790859085908590620007996200037d821b17901c565b9050806001600160a01b03166080816001600160a01b031660601b81525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015620000c057600080fd5b505afa158015620000d5573d6000803e3d6000fd5b505050506040513d6020811015620000ec57600080fd5b505160601b6001600160601b03191660a0526040805163d21220a760e01b815290516001600160a01b0383169163d21220a7916004808301926020929190829003018186803b1580156200013f57600080fd5b505afa15801562000154573d6000803e3d6000fd5b505050506040513d60208110156200016b57600080fd5b505160601b6001600160601b03191660c05260408051635909c0d560e01b815290516001600160a01b03831691635909c0d5916004808301926020929190829003018186803b158015620001be57600080fd5b505afa158015620001d3573d6000803e3d6000fd5b505050506040513d6020811015620001ea57600080fd5b505160005560408051635a3d549360e01b815290516001600160a01b03831691635a3d5493916004808301926020929190829003018186803b1580156200023057600080fd5b505afa15801562000245573d6000803e3d6000fd5b505050506040513d60208110156200025c57600080fd5b505160015560408051630240bc6b60e21b8152905160009182916001600160a01b03851691630902f1ac916004808301926060929190829003018186803b158015620002a757600080fd5b505afa158015620002bc573d6000803e3d6000fd5b505050506040513d6060811015620002d357600080fd5b50805160208201516040909201516002805463ffffffff191663ffffffff909216919091179055925090506001600160701b038216158015906200031f57506001600160701b03811615155b62000371576040805162461bcd60e51b815260206004820181905260248201527f4578616d706c654f7261636c6553696d706c653a204e4f5f5245534552564553604482015290519081900360640190fd5b5050505050506200053d565b600080806200039685856001600160e01b036200045a16565b604080516001600160601b0319606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b03161415620004b05760405162461bcd60e51b815260040180806020018281038252602281526020018062000f786022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610620004d2578284620004d5565b83835b90925090506001600160a01b03821662000536576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60805160601c60a05160601c60c05160601c6109fb6200057d60003980610220528061044452508061017e52806101a45250806102f252506109fb6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a2e6204511610066578063a2e6204514610139578063a6bb453914610143578063b4d1d7951461014b578063c5700a0214610153578063d21220a7146101745761009e565b80630dfe1681146100a35780633ddac953146100c75780635909c0d5146101055780635a3d54931461010d5780635e6aaf2c14610115575b600080fd5b6100ab61017c565b604080516001600160a01b039092168252519081900360200190f35b6100f3600480360360408110156100dd57600080fd5b506001600160a01b0381351690602001356101a0565b60408051918252519081900360200190f35b6100f36102cd565b6100f36102d3565b61011d6102d9565b604080516001600160e01b039092168252519081900360200190f35b6101416102e8565b005b61011d610420565b6100f361042f565b61015b610436565b6040805163ffffffff9092168252519081900360200190f35b6100ab610442565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561021e5760408051602081019091526003546001600160e01b0316815261020e90610209908463ffffffff61046616565b6104e4565b6001600160901b031690506102c7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461028e5760405162461bcd60e51b815260040180806020018281038252602281526020018061095a6022913960400191505060405180910390fd5b60408051602081019091526004546001600160e01b031681526102bb90610209908463ffffffff61046616565b6001600160901b031690505b92915050565b60005481565b60015481565b6004546001600160e01b031681565b60008060006103167f00000000000000000000000000000000000000000000000000000000000000006104eb565b600254929550909350915063ffffffff9081168203906201518090821610156103705760405162461bcd60e51b815260040180806020018281038252602781526020018061097c6027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161038e57fe5b046001600160e01b039081169091529051600380546001600160e01b031916919092161790556040805160208101909152600154819063ffffffff8416908603816103d557fe5b046001600160e01b039081169091529051600480546001600160e01b03191691909216179055506000929092556001556002805463ffffffff191663ffffffff909216919091179055565b6003546001600160e01b031681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61046e610774565b600082158061049457505082516001600160e01b03168281029083828161049157fe5b04145b6104cf5760405162461bcd60e51b81526004018080602001828103825260238152602001806109a36023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006104f86106ba565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561053357600080fd5b505afa158015610547573d6000803e3d6000fd5b505050506040513d602081101561055d57600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156105a357600080fd5b505afa1580156105b7573d6000803e3d6000fd5b505050506040513d60208110156105cd57600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d606081101561064357600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146106b05780840363ffffffff811661067d84866106c4565b516001600160e01b031602969096019563ffffffff811661069e85856106c4565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b6106cc610787565b6000826001600160701b03161161072a576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b168161075f57fe5b046001600160e01b0316815250905092915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b60008060006107a88585610859565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b031614156108ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806109386022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106108cd5782846108d0565b83835b90925090506001600160a01b038216610930576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b925092905056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c41505345444669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a2646970667358221220614600884faa860395e79ad314618ada59a3ac38515e96d4b7daacce9265e57664736f6c634300060600334458737761704c6962726172793a204944454e544943414c5f414444524553534553", - "opcodes": "PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xF9A CODESIZE SUB DUP1 PUSH3 0xF9A DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x60 DUP2 LT ISZERO PUSH3 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD SWAP2 SWAP3 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH3 0x67 SWAP1 DUP6 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH3 0x799 PUSH3 0x37D DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 SHL DUP2 MSTORE POP POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0xD5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0xA0 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0xD21220A7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0xD21220A7 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x154 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0xC0 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x5909C0D5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0x5909C0D5 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x1BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x1D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x0 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x245 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x2A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x2BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH3 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH3 0x31F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND ISZERO ISZERO JUMPDEST PUSH3 0x371 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C654F7261636C6553696D706C653A204E4F5F5245534552564553 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP POP PUSH3 0x53D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH3 0x396 DUP6 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH3 0x45A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH3 0x4B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH3 0xF78 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH3 0x4D2 JUMPI DUP3 DUP5 PUSH3 0x4D5 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x536 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH1 0xC0 MLOAD PUSH1 0x60 SHR PUSH2 0x9FB PUSH3 0x57D PUSH1 0x0 CODECOPY DUP1 PUSH2 0x220 MSTORE DUP1 PUSH2 0x444 MSTORE POP DUP1 PUSH2 0x17E MSTORE DUP1 PUSH2 0x1A4 MSTORE POP DUP1 PUSH2 0x2F2 MSTORE POP PUSH2 0x9FB PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA2E62045 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA2E62045 EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xA6BB4539 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0xB4D1D795 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0xC5700A02 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x174 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0xDFE1681 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x3DDAC953 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x5E6AAF2C EQ PUSH2 0x115 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x17C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x2D9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x141 PUSH2 0x2E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11D PUSH2 0x420 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x42F JUMP JUMPDEST PUSH2 0x15B PUSH2 0x436 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH2 0x442 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x21E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x20E SWAP1 PUSH2 0x209 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x466 AND JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x90 SHL SUB AND SWAP1 POP PUSH2 0x2C7 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x95A PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x2BB SWAP1 PUSH2 0x209 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x466 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x90 SHL SUB AND SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x316 PUSH32 0x0 PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 SUB SWAP1 PUSH3 0x15180 SWAP1 DUP3 AND LT ISZERO PUSH2 0x370 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x97C PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0x0 SLOAD DUP8 SUB DUP2 PUSH2 0x38E JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 SLOAD DUP2 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP7 SUB DUP2 PUSH2 0x3D5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH1 0x0 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 SSTORE PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH3 0x15180 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x46E PUSH2 0x774 JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0x494 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0x491 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x9A3 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4F8 PUSH2 0x6BA JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x533 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x547 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5B7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x62D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0x6B0 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x67D DUP5 DUP7 PUSH2 0x6C4 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x69E DUP6 DUP6 PUSH2 0x6C4 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0x6CC PUSH2 0x787 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0x72A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0x75F JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x7A8 DUP6 DUP6 PUSH2 0x859 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x8AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x938 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x8CD JUMPI DUP3 DUP5 PUSH2 0x8D0 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x930 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 GASLIMIT PUSH25 0x616D706C654F7261636C6553696D706C653A20494E56414C49 DIFFICULTY 0x5F SLOAD 0x4F 0x4B GASLIMIT 0x4E GASLIMIT PUSH25 0x616D706C654F7261636C6553696D706C653A20504552494F44 0x5F 0x4E 0x4F SLOAD 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH2 0x4600 DUP9 0x4F 0xAA DUP7 SUB SWAP6 0xE7 SWAP11 0xD3 EQ PUSH2 0x8ADA MSIZE LOG3 0xAC CODESIZE MLOAD 0x5E SWAP7 0xD4 0xB7 0xDA 0xAC 0xCE SWAP3 PUSH6 0xE57664736F6C PUSH4 0x43000606 STOP CALLER DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 ", - "sourceMap": "483:2623:7:-:0;;;915:734;5:9:-1;2:2;;;27:1;24;17:12;2:2;915:734:7;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;915:734:7;;;;;;;;;;;;;;;;993:17;;1025:46;;915:734;;;;;;1025:21;;;;;:46;;:::i;:::-;993:79;;1089:5;-1:-1:-1;;;;;1082:12:7;;;-1:-1:-1;;;;;1082:12:7;;;;;;;1113:5;-1:-1:-1;;;;;1113:12:7;;:14;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1113:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1113:14:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1113:14:7;1104:23;;-1:-1:-1;;;;;;1104:23:7;;;1146:14;;;-1:-1:-1;;;1146:14:7;;;;-1:-1:-1;;;;;1146:12:7;;;;;:14;;;;;1113;;1146;;;;;;;:12;:14;;;2:2:-1;;;;27:1;24;17:12;2:2;1146:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1146:14:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1146:14:7;1137:23;;-1:-1:-1;;;;;;1137:23:7;;;1193:28;;;-1:-1:-1;;;1193:28:7;;;;-1:-1:-1;;;;;1193:26:7;;;;;:28;;;;;1146:14;;1193:28;;;;;;;:26;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;1193:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1193:28:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1193:28:7;1170:20;:51;1307:28;;;-1:-1:-1;;;1307:28:7;;;;-1:-1:-1;;;;;1307:26:7;;;;;:28;;;;;1193;;1307;;;;;;;:26;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;1307:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1307:28:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1307:28:7;1284:20;:51;1493:19;;;-1:-1:-1;;;1493:19:7;;;;1398:16;;;;-1:-1:-1;;;;;1493:17:7;;;;;:19;;;;;;;;;;;;;;:17;:19;;;2:2:-1;;;;27:1;24;17:12;2:2;1493:19:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1493:19:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1493:19:7;;;;;;;;;;;1471:18;1450:62;;-1:-1:-1;;1450:62:7;;;;;;;;;;;1493:19;-1:-1:-1;1493:19:7;-1:-1:-1;;;;;;1530:13:7;;;;;;:30;;-1:-1:-1;;;;;;1547:13:7;;;;1530:30;1522:75;;;;;-1:-1:-1;;;1522:75:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;915:734;;;;;;483:2623;;698:450:18;787:12;;;846:26;857:6;865;-1:-1:-1;;;;;846:10:18;:26;:::i;:::-;994:32;;;-1:-1:-1;;;;;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;912:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;270:339::-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;483:2623:7:-;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "8833": [ - { - "length": 32, - "start": 754 - } - ], - "8835": [ - { - "length": 32, - "start": 382 - }, - { - "length": 32, - "start": 420 - } - ], - "8837": [ - { - "length": 32, - "start": 544 - }, - { - "length": 32, - "start": 1092 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a2e6204511610066578063a2e6204514610139578063a6bb453914610143578063b4d1d7951461014b578063c5700a0214610153578063d21220a7146101745761009e565b80630dfe1681146100a35780633ddac953146100c75780635909c0d5146101055780635a3d54931461010d5780635e6aaf2c14610115575b600080fd5b6100ab61017c565b604080516001600160a01b039092168252519081900360200190f35b6100f3600480360360408110156100dd57600080fd5b506001600160a01b0381351690602001356101a0565b60408051918252519081900360200190f35b6100f36102cd565b6100f36102d3565b61011d6102d9565b604080516001600160e01b039092168252519081900360200190f35b6101416102e8565b005b61011d610420565b6100f361042f565b61015b610436565b6040805163ffffffff9092168252519081900360200190f35b6100ab610442565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561021e5760408051602081019091526003546001600160e01b0316815261020e90610209908463ffffffff61046616565b6104e4565b6001600160901b031690506102c7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461028e5760405162461bcd60e51b815260040180806020018281038252602281526020018061095a6022913960400191505060405180910390fd5b60408051602081019091526004546001600160e01b031681526102bb90610209908463ffffffff61046616565b6001600160901b031690505b92915050565b60005481565b60015481565b6004546001600160e01b031681565b60008060006103167f00000000000000000000000000000000000000000000000000000000000000006104eb565b600254929550909350915063ffffffff9081168203906201518090821610156103705760405162461bcd60e51b815260040180806020018281038252602781526020018061097c6027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161038e57fe5b046001600160e01b039081169091529051600380546001600160e01b031916919092161790556040805160208101909152600154819063ffffffff8416908603816103d557fe5b046001600160e01b039081169091529051600480546001600160e01b03191691909216179055506000929092556001556002805463ffffffff191663ffffffff909216919091179055565b6003546001600160e01b031681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61046e610774565b600082158061049457505082516001600160e01b03168281029083828161049157fe5b04145b6104cf5760405162461bcd60e51b81526004018080602001828103825260238152602001806109a36023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006104f86106ba565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561053357600080fd5b505afa158015610547573d6000803e3d6000fd5b505050506040513d602081101561055d57600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156105a357600080fd5b505afa1580156105b7573d6000803e3d6000fd5b505050506040513d60208110156105cd57600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d606081101561064357600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146106b05780840363ffffffff811661067d84866106c4565b516001600160e01b031602969096019563ffffffff811661069e85856106c4565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b6106cc610787565b6000826001600160701b03161161072a576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b168161075f57fe5b046001600160e01b0316815250905092915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b60008060006107a88585610859565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b031614156108ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806109386022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106108cd5782846108d0565b83835b90925090506001600160a01b038216610930576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b925092905056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c41505345444669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a2646970667358221220614600884faa860395e79ad314618ada59a3ac38515e96d4b7daacce9265e57664736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA2E62045 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA2E62045 EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xA6BB4539 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0xB4D1D795 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0xC5700A02 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x174 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0xDFE1681 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x3DDAC953 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x5E6AAF2C EQ PUSH2 0x115 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x17C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x2D9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x141 PUSH2 0x2E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11D PUSH2 0x420 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x42F JUMP JUMPDEST PUSH2 0x15B PUSH2 0x436 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH2 0x442 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x21E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x20E SWAP1 PUSH2 0x209 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x466 AND JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x90 SHL SUB AND SWAP1 POP PUSH2 0x2C7 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x95A PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x2BB SWAP1 PUSH2 0x209 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x466 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x90 SHL SUB AND SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x316 PUSH32 0x0 PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 SUB SWAP1 PUSH3 0x15180 SWAP1 DUP3 AND LT ISZERO PUSH2 0x370 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x97C PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0x0 SLOAD DUP8 SUB DUP2 PUSH2 0x38E JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 SLOAD DUP2 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP7 SUB DUP2 PUSH2 0x3D5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH1 0x0 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 SSTORE PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH3 0x15180 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x46E PUSH2 0x774 JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0x494 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0x491 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x9A3 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4F8 PUSH2 0x6BA JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x533 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x547 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5B7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x62D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0x6B0 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x67D DUP5 DUP7 PUSH2 0x6C4 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x69E DUP6 DUP6 PUSH2 0x6C4 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0x6CC PUSH2 0x787 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0x72A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0x75F JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x7A8 DUP6 DUP6 PUSH2 0x859 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x8AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x938 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x8CD JUMPI DUP3 DUP5 PUSH2 0x8D0 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x930 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 GASLIMIT PUSH25 0x616D706C654F7261636C6553696D706C653A20494E56414C49 DIFFICULTY 0x5F SLOAD 0x4F 0x4B GASLIMIT 0x4E GASLIMIT PUSH25 0x616D706C654F7261636C6553696D706C653A20504552494F44 0x5F 0x4E 0x4F SLOAD 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH2 0x4600 DUP9 0x4F 0xAA DUP7 SUB SWAP6 0xE7 SWAP11 0xD3 EQ PUSH2 0x8ADA MSIZE LOG3 0xAC CODESIZE MLOAD 0x5E SWAP7 0xD4 0xB7 0xDA 0xAC 0xCE SWAP3 PUSH6 0xE57664736F6C PUSH4 0x43000606 STOP CALLER ", - "sourceMap": "483:2623:7:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;483:2623:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;624:31:7;;;:::i;:::-;;;;-1:-1:-1;;;;;624:31:7;;;;;;;;;;;;;;2747:357;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2747:357:7;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;699:35;;;:::i;740:::-;;;:::i;867:41::-;;;:::i;:::-;;;;-1:-1:-1;;;;;867:41:7;;;;;;;;;;;;;;1655:985;;;:::i;:::-;;820:41;;;:::i;547:38::-;;;:::i;781:33::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;661:31;;;:::i;624:::-;;;:::o;2747:357::-;2817:14;2856:6;-1:-1:-1;;;;;2847:15:7;:5;-1:-1:-1;;;;;2847:15:7;;2843:255;;;2890:17;;;;;;;;;:13;:17;-1:-1:-1;;;;;2890:17:7;;;:39;;:27;;2908:8;2890:27;:17;:27;:::i;:::-;:37;:39::i;:::-;-1:-1:-1;;;;;2878:51:7;;;2843:255;;;2977:6;-1:-1:-1;;;;;2968:15:7;:5;-1:-1:-1;;;;;2968:15:7;;2960:62;;;;-1:-1:-1;;;2960:62:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:17;;;;;;;;;:13;:17;-1:-1:-1;;;;;3048:17:7;;;:39;;:27;;3066:8;3048:27;:17;:27;:::i;:39::-;-1:-1:-1;;;;;3036:51:7;;;2843:255;2747:357;;;;:::o;699:35::-;;;;:::o;740:::-;;;;:::o;867:41::-;;;-1:-1:-1;;;;;867:41:7;;:::o;1655:985::-;1693:21;1716;1739;1776:58;1828:4;1776:43;:58::i;:::-;1882:18;;1692:142;;-1:-1:-1;1692:142:7;;-1:-1:-1;1692:142:7;-1:-1:-1;1882:18:7;;;;1865:35;;;577:8;2023:21;;;;;2015:73;;;;-1:-1:-1;;;2015:73:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2291:86;;;;;;;;2364:11;2320:55;;2340:20;;2321:16;:39;2320:55;;;;;;-1:-1:-1;;;;;2291:86:7;;;;;;2275:102;;:13;:102;;-1:-1:-1;;;;;;2275:102:7;;;;;;;;2403:86;;;;;;;;;-1:-1:-1;2452:20:7;2403:86;;2432:55;;;;2433:39;;2432:55;;;;;;-1:-1:-1;;;;;2403:86:7;;;;;;2387:102;;:13;:102;;-1:-1:-1;;;;;;2387:102:7;;;;;;;;-1:-1:-1;;2500:39:7;;;;-1:-1:-1;2549:39:7;2598:18;:35;;-1:-1:-1;;2598:35:7;;;;;;;;;;;1655:985::o;820:41::-;;;-1:-1:-1;;;;;820:41:7;;:::o;547:38::-;577:8;547:38;:::o;781:33::-;;;;;;:::o;661:31::-;;;:::o;1116:249:20:-;1183:16;;:::i;:::-;1211:6;1235;;;:54;;-1:-1:-1;;1281:7:20;;-1:-1:-1;;;;;1276:13:20;1250:17;;;;1271:1;1250:17;1271:1;1245:27;;;;;:44;1235:54;1227:102;;;;-1:-1:-1;;;1227:102:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1346:12;;;;;;;;;;;;;1116:249;-1:-1:-1;;;1116:249:20:o;2051:128::-;2150:7;407:3;2150:21;;2051:128::o;605:1031:19:-;689:21;712;735;785:23;:21;:23::i;:::-;768:40;;849:4;-1:-1:-1;;;;;837:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;837:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;837:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;837:40:19;906;;;-1:-1:-1;;;906:40:19;;;;837;;-1:-1:-1;;;;;;906:38:19;;;;;:40;;;;;837;;906;;;;;;;;:38;:40;;;2:2:-1;;;;27:1;24;17:12;2:2;906:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;906:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;906:40:19;1123:31;;;-1:-1:-1;;;1123:31:19;;;;906:40;;-1:-1:-1;1058:16:19;;;;;;-1:-1:-1;;;;;1123:29:19;;;;;:31;;;;;;;;;;;;;;:29;:31;;;2:2:-1;;;;27:1;24;17:12;2:2;1123:31:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1123:31:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1123:31:19;;;;;;;;;;;;;-1:-1:-1;1123:31:19;;-1:-1:-1;1123:31:19;-1:-1:-1;1168:36:19;;;;;;;;1164:466;;1288:35;;;1431:62;;;1436:39;1456:8;1466;1436:19;:39::i;:::-;:42;-1:-1:-1;;;;;1431:48:19;:62;1411:82;;;;;1557:62;;;1562:39;1582:8;1592;1562:19;:39::i;:::-;:42;-1:-1:-1;;;;;1557:48:19;:62;1537:82;;;;;-1:-1:-1;1164:466:19;605:1031;;;;;;;;:::o;381:121::-;469:25;:15;:25;;381:121::o;1517:243:20:-;1598:16;;:::i;:::-;1648:1;1634:11;-1:-1:-1;;;;;1634:15:20;;1626:51;;;;;-1:-1:-1;;;1626:51:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:59;;;;;;;;;;-1:-1:-1;;;;;1704:48:20;;-1:-1:-1;;;407:3:20;1705:32;;;;1704:48;;;;;;-1:-1:-1;;;;;1694:59:20;;;;1687:66;;1517:243;;;;:::o;483:2623:7:-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;483:2623:7;;;:::o;698:450:18:-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;270:339::-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blockTimestampLast", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price0Average", - "outputs": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1Average", - "outputs": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "60e06040523480156200001157600080fd5b5060405162000f9a38038062000f9a833981810160405260608110156200003757600080fd5b508051602080830151604090930151919291906000906200006790859085908590620007996200037d821b17901c565b9050806001600160a01b03166080816001600160a01b031660601b81525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015620000c057600080fd5b505afa158015620000d5573d6000803e3d6000fd5b505050506040513d6020811015620000ec57600080fd5b505160601b6001600160601b03191660a0526040805163d21220a760e01b815290516001600160a01b0383169163d21220a7916004808301926020929190829003018186803b1580156200013f57600080fd5b505afa15801562000154573d6000803e3d6000fd5b505050506040513d60208110156200016b57600080fd5b505160601b6001600160601b03191660c05260408051635909c0d560e01b815290516001600160a01b03831691635909c0d5916004808301926020929190829003018186803b158015620001be57600080fd5b505afa158015620001d3573d6000803e3d6000fd5b505050506040513d6020811015620001ea57600080fd5b505160005560408051635a3d549360e01b815290516001600160a01b03831691635a3d5493916004808301926020929190829003018186803b1580156200023057600080fd5b505afa15801562000245573d6000803e3d6000fd5b505050506040513d60208110156200025c57600080fd5b505160015560408051630240bc6b60e21b8152905160009182916001600160a01b03851691630902f1ac916004808301926060929190829003018186803b158015620002a757600080fd5b505afa158015620002bc573d6000803e3d6000fd5b505050506040513d6060811015620002d357600080fd5b50805160208201516040909201516002805463ffffffff191663ffffffff909216919091179055925090506001600160701b038216158015906200031f57506001600160701b03811615155b62000371576040805162461bcd60e51b815260206004820181905260248201527f4578616d706c654f7261636c6553696d706c653a204e4f5f5245534552564553604482015290519081900360640190fd5b5050505050506200053d565b600080806200039685856001600160e01b036200045a16565b604080516001600160601b0319606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b03161415620004b05760405162461bcd60e51b815260040180806020018281038252602281526020018062000f786022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610620004d2578284620004d5565b83835b90925090506001600160a01b03821662000536576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60805160601c60a05160601c60c05160601c6109fb6200057d60003980610220528061044452508061017e52806101a45250806102f252506109fb6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a2e6204511610066578063a2e6204514610139578063a6bb453914610143578063b4d1d7951461014b578063c5700a0214610153578063d21220a7146101745761009e565b80630dfe1681146100a35780633ddac953146100c75780635909c0d5146101055780635a3d54931461010d5780635e6aaf2c14610115575b600080fd5b6100ab61017c565b604080516001600160a01b039092168252519081900360200190f35b6100f3600480360360408110156100dd57600080fd5b506001600160a01b0381351690602001356101a0565b60408051918252519081900360200190f35b6100f36102cd565b6100f36102d3565b61011d6102d9565b604080516001600160e01b039092168252519081900360200190f35b6101416102e8565b005b61011d610420565b6100f361042f565b61015b610436565b6040805163ffffffff9092168252519081900360200190f35b6100ab610442565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561021e5760408051602081019091526003546001600160e01b0316815261020e90610209908463ffffffff61046616565b6104e4565b6001600160901b031690506102c7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461028e5760405162461bcd60e51b815260040180806020018281038252602281526020018061095a6022913960400191505060405180910390fd5b60408051602081019091526004546001600160e01b031681526102bb90610209908463ffffffff61046616565b6001600160901b031690505b92915050565b60005481565b60015481565b6004546001600160e01b031681565b60008060006103167f00000000000000000000000000000000000000000000000000000000000000006104eb565b600254929550909350915063ffffffff9081168203906201518090821610156103705760405162461bcd60e51b815260040180806020018281038252602781526020018061097c6027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161038e57fe5b046001600160e01b039081169091529051600380546001600160e01b031916919092161790556040805160208101909152600154819063ffffffff8416908603816103d557fe5b046001600160e01b039081169091529051600480546001600160e01b03191691909216179055506000929092556001556002805463ffffffff191663ffffffff909216919091179055565b6003546001600160e01b031681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61046e610774565b600082158061049457505082516001600160e01b03168281029083828161049157fe5b04145b6104cf5760405162461bcd60e51b81526004018080602001828103825260238152602001806109a36023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006104f86106ba565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561053357600080fd5b505afa158015610547573d6000803e3d6000fd5b505050506040513d602081101561055d57600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156105a357600080fd5b505afa1580156105b7573d6000803e3d6000fd5b505050506040513d60208110156105cd57600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d606081101561064357600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146106b05780840363ffffffff811661067d84866106c4565b516001600160e01b031602969096019563ffffffff811661069e85856106c4565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b6106cc610787565b6000826001600160701b03161161072a576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b168161075f57fe5b046001600160e01b0316815250905092915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b60008060006107a88585610859565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b031614156108ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806109386022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106108cd5782846108d0565b83835b90925090506001600160a01b038216610930576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b925092905056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c41505345444669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a2646970667358221220614600884faa860395e79ad314618ada59a3ac38515e96d4b7daacce9265e57664736f6c634300060600334458737761704c6962726172793a204944454e544943414c5f414444524553534553", - "bin": "60e06040523480156200001157600080fd5b5060405162000f9a38038062000f9a833981810160405260608110156200003757600080fd5b508051602080830151604090930151919291906000906200006790859085908590620007996200037d821b17901c565b9050806001600160a01b03166080816001600160a01b031660601b81525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015620000c057600080fd5b505afa158015620000d5573d6000803e3d6000fd5b505050506040513d6020811015620000ec57600080fd5b505160601b6001600160601b03191660a0526040805163d21220a760e01b815290516001600160a01b0383169163d21220a7916004808301926020929190829003018186803b1580156200013f57600080fd5b505afa15801562000154573d6000803e3d6000fd5b505050506040513d60208110156200016b57600080fd5b505160601b6001600160601b03191660c05260408051635909c0d560e01b815290516001600160a01b03831691635909c0d5916004808301926020929190829003018186803b158015620001be57600080fd5b505afa158015620001d3573d6000803e3d6000fd5b505050506040513d6020811015620001ea57600080fd5b505160005560408051635a3d549360e01b815290516001600160a01b03831691635a3d5493916004808301926020929190829003018186803b1580156200023057600080fd5b505afa15801562000245573d6000803e3d6000fd5b505050506040513d60208110156200025c57600080fd5b505160015560408051630240bc6b60e21b8152905160009182916001600160a01b03851691630902f1ac916004808301926060929190829003018186803b158015620002a757600080fd5b505afa158015620002bc573d6000803e3d6000fd5b505050506040513d6060811015620002d357600080fd5b50805160208201516040909201516002805463ffffffff191663ffffffff909216919091179055925090506001600160701b038216158015906200031f57506001600160701b03811615155b62000371576040805162461bcd60e51b815260206004820181905260248201527f4578616d706c654f7261636c6553696d706c653a204e4f5f5245534552564553604482015290519081900360640190fd5b5050505050506200053d565b600080806200039685856001600160e01b036200045a16565b604080516001600160601b0319606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b03161415620004b05760405162461bcd60e51b815260040180806020018281038252602281526020018062000f786022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610620004d2578284620004d5565b83835b90925090506001600160a01b03821662000536576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60805160601c60a05160601c60c05160601c6109fb6200057d60003980610220528061044452508061017e52806101a45250806102f252506109fb6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a2e6204511610066578063a2e6204514610139578063a6bb453914610143578063b4d1d7951461014b578063c5700a0214610153578063d21220a7146101745761009e565b80630dfe1681146100a35780633ddac953146100c75780635909c0d5146101055780635a3d54931461010d5780635e6aaf2c14610115575b600080fd5b6100ab61017c565b604080516001600160a01b039092168252519081900360200190f35b6100f3600480360360408110156100dd57600080fd5b506001600160a01b0381351690602001356101a0565b60408051918252519081900360200190f35b6100f36102cd565b6100f36102d3565b61011d6102d9565b604080516001600160e01b039092168252519081900360200190f35b6101416102e8565b005b61011d610420565b6100f361042f565b61015b610436565b6040805163ffffffff9092168252519081900360200190f35b6100ab610442565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561021e5760408051602081019091526003546001600160e01b0316815261020e90610209908463ffffffff61046616565b6104e4565b6001600160901b031690506102c7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461028e5760405162461bcd60e51b815260040180806020018281038252602281526020018061095a6022913960400191505060405180910390fd5b60408051602081019091526004546001600160e01b031681526102bb90610209908463ffffffff61046616565b6001600160901b031690505b92915050565b60005481565b60015481565b6004546001600160e01b031681565b60008060006103167f00000000000000000000000000000000000000000000000000000000000000006104eb565b600254929550909350915063ffffffff9081168203906201518090821610156103705760405162461bcd60e51b815260040180806020018281038252602781526020018061097c6027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161038e57fe5b046001600160e01b039081169091529051600380546001600160e01b031916919092161790556040805160208101909152600154819063ffffffff8416908603816103d557fe5b046001600160e01b039081169091529051600480546001600160e01b03191691909216179055506000929092556001556002805463ffffffff191663ffffffff909216919091179055565b6003546001600160e01b031681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61046e610774565b600082158061049457505082516001600160e01b03168281029083828161049157fe5b04145b6104cf5760405162461bcd60e51b81526004018080602001828103825260238152602001806109a36023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006104f86106ba565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561053357600080fd5b505afa158015610547573d6000803e3d6000fd5b505050506040513d602081101561055d57600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156105a357600080fd5b505afa1580156105b7573d6000803e3d6000fd5b505050506040513d60208110156105cd57600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d606081101561064357600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146106b05780840363ffffffff811661067d84866106c4565b516001600160e01b031602969096019563ffffffff811661069e85856106c4565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b6106cc610787565b6000826001600160701b03161161072a576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b168161075f57fe5b046001600160e01b0316815250905092915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b60008060006107a88585610859565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b031614156108ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806109386022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106108cd5782846108d0565b83835b90925090506001600160a01b038216610930576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b925092905056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c41505345444669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a2646970667358221220614600884faa860395e79ad314618ada59a3ac38515e96d4b7daacce9265e57664736f6c634300060600334458737761704c6962726172793a204944454e544943414c5f414444524553534553", - "bin-runtime": "608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a2e6204511610066578063a2e6204514610139578063a6bb453914610143578063b4d1d7951461014b578063c5700a0214610153578063d21220a7146101745761009e565b80630dfe1681146100a35780633ddac953146100c75780635909c0d5146101055780635a3d54931461010d5780635e6aaf2c14610115575b600080fd5b6100ab61017c565b604080516001600160a01b039092168252519081900360200190f35b6100f3600480360360408110156100dd57600080fd5b506001600160a01b0381351690602001356101a0565b60408051918252519081900360200190f35b6100f36102cd565b6100f36102d3565b61011d6102d9565b604080516001600160e01b039092168252519081900360200190f35b6101416102e8565b005b61011d610420565b6100f361042f565b61015b610436565b6040805163ffffffff9092168252519081900360200190f35b6100ab610442565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561021e5760408051602081019091526003546001600160e01b0316815261020e90610209908463ffffffff61046616565b6104e4565b6001600160901b031690506102c7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461028e5760405162461bcd60e51b815260040180806020018281038252602281526020018061095a6022913960400191505060405180910390fd5b60408051602081019091526004546001600160e01b031681526102bb90610209908463ffffffff61046616565b6001600160901b031690505b92915050565b60005481565b60015481565b6004546001600160e01b031681565b60008060006103167f00000000000000000000000000000000000000000000000000000000000000006104eb565b600254929550909350915063ffffffff9081168203906201518090821610156103705760405162461bcd60e51b815260040180806020018281038252602781526020018061097c6027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161038e57fe5b046001600160e01b039081169091529051600380546001600160e01b031916919092161790556040805160208101909152600154819063ffffffff8416908603816103d557fe5b046001600160e01b039081169091529051600480546001600160e01b03191691909216179055506000929092556001556002805463ffffffff191663ffffffff909216919091179055565b6003546001600160e01b031681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61046e610774565b600082158061049457505082516001600160e01b03168281029083828161049157fe5b04145b6104cf5760405162461bcd60e51b81526004018080602001828103825260238152602001806109a36023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006104f86106ba565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561053357600080fd5b505afa158015610547573d6000803e3d6000fd5b505050506040513d602081101561055d57600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156105a357600080fd5b505afa1580156105b7573d6000803e3d6000fd5b505050506040513d60208110156105cd57600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d606081101561064357600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146106b05780840363ffffffff811661067d84866106c4565b516001600160e01b031602969096019563ffffffff811661069e85856106c4565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b6106cc610787565b6000826001600160701b03161161072a576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b168161075f57fe5b046001600160e01b0316815250905092915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b60008060006107a88585610859565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b031614156108ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806109386022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106108cd5782846108d0565b83835b90925090506001600160a01b038216610930576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b925092905056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c41505345444669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a2646970667358221220614600884faa860395e79ad314618ada59a3ac38515e96d4b7daacce9265e57664736f6c63430006060033", - "srcmap": "483:2623:7:-:0;;;915:734;5:9:-1;2:2;;;27:1;24;17:12;2:2;915:734:7;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;915:734:7;;;;;;;;;;;;;;;;993:17;;1025:46;;915:734;;;;;;1025:21;;;;;:46;;:::i;:::-;993:79;;1089:5;-1:-1:-1;;;;;1082:12:7;;;-1:-1:-1;;;;;1082:12:7;;;;;;;1113:5;-1:-1:-1;;;;;1113:12:7;;:14;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1113:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1113:14:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1113:14:7;1104:23;;-1:-1:-1;;;;;;1104:23:7;;;1146:14;;;-1:-1:-1;;;1146:14:7;;;;-1:-1:-1;;;;;1146:12:7;;;;;:14;;;;;1113;;1146;;;;;;;:12;:14;;;2:2:-1;;;;27:1;24;17:12;2:2;1146:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1146:14:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1146:14:7;1137:23;;-1:-1:-1;;;;;;1137:23:7;;;1193:28;;;-1:-1:-1;;;1193:28:7;;;;-1:-1:-1;;;;;1193:26:7;;;;;:28;;;;;1146:14;;1193:28;;;;;;;:26;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;1193:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1193:28:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1193:28:7;1170:20;:51;1307:28;;;-1:-1:-1;;;1307:28:7;;;;-1:-1:-1;;;;;1307:26:7;;;;;:28;;;;;1193;;1307;;;;;;;:26;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;1307:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1307:28:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1307:28:7;1284:20;:51;1493:19;;;-1:-1:-1;;;1493:19:7;;;;1398:16;;;;-1:-1:-1;;;;;1493:17:7;;;;;:19;;;;;;;;;;;;;;:17;:19;;;2:2:-1;;;;27:1;24;17:12;2:2;1493:19:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1493:19:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1493:19:7;;;;;;;;;;;1471:18;1450:62;;-1:-1:-1;;1450:62:7;;;;;;;;;;;1493:19;-1:-1:-1;1493:19:7;-1:-1:-1;;;;;;1530:13:7;;;;;;:30;;-1:-1:-1;;;;;;1547:13:7;;;;1530:30;1522:75;;;;;-1:-1:-1;;;1522:75:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;915:734;;;;;;483:2623;;698:450:18;787:12;;;846:26;857:6;865;-1:-1:-1;;;;;846:10:18;:26;:::i;:::-;994:32;;;-1:-1:-1;;;;;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;912:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;270:339::-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;483:2623:7:-;;;;;;;;;;;;;;;;;;;;;;", - "srcmap-runtime": "483:2623:7:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;483:2623:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;624:31:7;;;:::i;:::-;;;;-1:-1:-1;;;;;624:31:7;;;;;;;;;;;;;;2747:357;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2747:357:7;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;699:35;;;:::i;740:::-;;;:::i;867:41::-;;;:::i;:::-;;;;-1:-1:-1;;;;;867:41:7;;;;;;;;;;;;;;1655:985;;;:::i;:::-;;820:41;;;:::i;547:38::-;;;:::i;781:33::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;661:31;;;:::i;624:::-;;;:::o;2747:357::-;2817:14;2856:6;-1:-1:-1;;;;;2847:15:7;:5;-1:-1:-1;;;;;2847:15:7;;2843:255;;;2890:17;;;;;;;;;:13;:17;-1:-1:-1;;;;;2890:17:7;;;:39;;:27;;2908:8;2890:27;:17;:27;:::i;:::-;:37;:39::i;:::-;-1:-1:-1;;;;;2878:51:7;;;2843:255;;;2977:6;-1:-1:-1;;;;;2968:15:7;:5;-1:-1:-1;;;;;2968:15:7;;2960:62;;;;-1:-1:-1;;;2960:62:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:17;;;;;;;;;:13;:17;-1:-1:-1;;;;;3048:17:7;;;:39;;:27;;3066:8;3048:27;:17;:27;:::i;:39::-;-1:-1:-1;;;;;3036:51:7;;;2843:255;2747:357;;;;:::o;699:35::-;;;;:::o;740:::-;;;;:::o;867:41::-;;;-1:-1:-1;;;;;867:41:7;;:::o;1655:985::-;1693:21;1716;1739;1776:58;1828:4;1776:43;:58::i;:::-;1882:18;;1692:142;;-1:-1:-1;1692:142:7;;-1:-1:-1;1692:142:7;-1:-1:-1;1882:18:7;;;;1865:35;;;577:8;2023:21;;;;;2015:73;;;;-1:-1:-1;;;2015:73:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2291:86;;;;;;;;2364:11;2320:55;;2340:20;;2321:16;:39;2320:55;;;;;;-1:-1:-1;;;;;2291:86:7;;;;;;2275:102;;:13;:102;;-1:-1:-1;;;;;;2275:102:7;;;;;;;;2403:86;;;;;;;;;-1:-1:-1;2452:20:7;2403:86;;2432:55;;;;2433:39;;2432:55;;;;;;-1:-1:-1;;;;;2403:86:7;;;;;;2387:102;;:13;:102;;-1:-1:-1;;;;;;2387:102:7;;;;;;;;-1:-1:-1;;2500:39:7;;;;-1:-1:-1;2549:39:7;2598:18;:35;;-1:-1:-1;;2598:35:7;;;;;;;;;;;1655:985::o;820:41::-;;;-1:-1:-1;;;;;820:41:7;;:::o;547:38::-;577:8;547:38;:::o;781:33::-;;;;;;:::o;661:31::-;;;:::o;1116:249:20:-;1183:16;;:::i;:::-;1211:6;1235;;;:54;;-1:-1:-1;;1281:7:20;;-1:-1:-1;;;;;1276:13:20;1250:17;;;;1271:1;1250:17;1271:1;1245:27;;;;;:44;1235:54;1227:102;;;;-1:-1:-1;;;1227:102:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1346:12;;;;;;;;;;;;;1116:249;-1:-1:-1;;;1116:249:20:o;2051:128::-;2150:7;407:3;2150:21;;2051:128::o;605:1031:19:-;689:21;712;735;785:23;:21;:23::i;:::-;768:40;;849:4;-1:-1:-1;;;;;837:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;837:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;837:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;837:40:19;906;;;-1:-1:-1;;;906:40:19;;;;837;;-1:-1:-1;;;;;;906:38:19;;;;;:40;;;;;837;;906;;;;;;;;:38;:40;;;2:2:-1;;;;27:1;24;17:12;2:2;906:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;906:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;906:40:19;1123:31;;;-1:-1:-1;;;1123:31:19;;;;906:40;;-1:-1:-1;1058:16:19;;;;;;-1:-1:-1;;;;;1123:29:19;;;;;:31;;;;;;;;;;;;;;:29;:31;;;2:2:-1;;;;27:1;24;17:12;2:2;1123:31:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1123:31:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1123:31:19;;;;;;;;;;;;;-1:-1:-1;1123:31:19;;-1:-1:-1;1123:31:19;-1:-1:-1;1168:36:19;;;;;;;;1164:466;;1288:35;;;1431:62;;;1436:39;1456:8;1466;1436:19;:39::i;:::-;:42;-1:-1:-1;;;;;1431:48:19;:62;1411:82;;;;;1557:62;;;1562:39;1582:8;1592;1562:19;:39::i;:::-;:42;-1:-1:-1;;;;;1557:48:19;:62;1537:82;;;;;-1:-1:-1;1164:466:19;605:1031;;;;;;;;:::o;381:121::-;469:25;:15;:25;;381:121::o;1517:243:20:-;1598:16;;:::i;:::-;1648:1;1634:11;-1:-1:-1;;;;;1634:15:20;;1626:51;;;;;-1:-1:-1;;;1626:51:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:59;;;;;;;;;;-1:-1:-1;;;;;1704:48:20;;-1:-1:-1;;;407:3:20;1705:32;;;;1704:48;;;;;;-1:-1:-1;;;;;1694:59:20;;;;1687:66;;1517:243;;;;:::o;483:2623:7:-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;483:2623:7;;;:::o;698:450:18:-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;270:339::-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o" - }, - "contracts/examples/ExampleSlidingWindowOracle.sol:ExampleSlidingWindowOracle": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "windowSize_", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "granularity_", - "type": "uint8" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "granularity", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "name": "observationIndexOf", - "outputs": [ - { - "internalType": "uint8", - "name": "index", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "pairObservations", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price0Cumulative", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price1Cumulative", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "periodSize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "windowSize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "61010060405234801561001157600080fd5b50604051610e26380380610e268339818101604052606081101561003457600080fd5b5080516020820151604090920151909190600160ff82161161009d576040805162461bcd60e51b815260206004820181905260248201527f536c6964696e6757696e646f774f7261636c653a204752414e554c4152495459604482015290519081900360640190fd5b8160ff82168082816100ab57fe5b0460e081905202146100ee5760405162461bcd60e51b8152600401808060200182810382526030815260200180610df66030913960400191505060405180910390fd5b606083901b6001600160601b03191660805260a082905260f881901b7fff000000000000000000000000000000000000000000000000000000000000001660c05260e0516001600160a01b039093169260ff90911690610c5761019f600039806102a952806104eb528061053e528061059e5250806101c05280610448528061056a52806106925250806101e4528061024a52806102cd52508061020e52806103da52806104035250610c576000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a015514610145578063c640752d14610169578063dbaad32f14610199578063e4463eb2146101b657610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e42146100fb575b600080fd5b6100956101be565b6040805160ff9092168252519081900360200190f35b6100b36101e2565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b506001600160a01b03813581169160208101359160409091013516610206565b6101276004803603604081101561011157600080fd5b506001600160a01b038135169060200135610399565b60408051938452602084019290925282820152519081900360600190f35b61014d6103d8565b604080516001600160a01b039092168252519081900360200190f35b6101976004803603604081101561017f57600080fd5b506001600160a01b03813581169160200135166103fc565b005b610095600480360360208110156101af57600080fd5b5035610539565b6100b361059c565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102347f000000000000000000000000000000000000000000000000000000000000000086856105c0565b9050600061024182610680565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102a75760405162461bcd60e51b8152600401808060200182810382526033815260200180610b7e6033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f00000000000000000000000000000000000000000000000000000000000000000381101561032b5760405162461bcd60e51b815260040180806020018281038252602c815260200180610bb1602c913960400191505060405180910390fd5b6000806103378561070e565b509150915060006103488a896108dd565b509050896001600160a01b0316816001600160a01b0316141561038257610375856001015484868c6109bb565b9650505050505050610392565b610375856002015483868c6109bb565b9392505050565b600060205281600052604060002081815481106103b257fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104297f000000000000000000000000000000000000000000000000000000000000000084846105c0565b6001600160a01b0381166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff1681101561049a576001600160a01b0382166000908152602081905260408120805460019081018255915201610446565b5060006104a642610539565b6001600160a01b03831660009081526020819052604081208054929350909160ff84169081106104d257fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105315760008061051d8661070e565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161056557fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161059457fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105cf85856108dd565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60008061068c42610539565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff16816106c257fe5b069050600080856001600160a01b03166001600160a01b031681526020019081526020016000208160ff16815481106106f757fe5b906000526020600020906003020192505050919050565b600080600061071b610a19565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d60208110156107f057600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561083c57600080fd5b505afa158015610850573d6000803e3d6000fd5b505050506040513d606081101561086657600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146108d35780840363ffffffff81166108a08486610a23565b516001600160e01b031602969096019563ffffffff81166108c18585610a23565b516001600160e01b0316029590950194505b5050509193909250565b600080826001600160a01b0316846001600160a01b031614156109315760405162461bcd60e51b8152600401808060200182810382526022815260200180610bdd6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610951578284610954565b83835b90925090506001600160a01b0382166109b4576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60006109c5610b58565b604051806020016040528085888803816109db57fe5b046001600160e01b0316905290506109fb6109f68285610ad3565b610b51565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610a2b610b58565b6000826001600160701b031611610a89576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610abe57fe5b046001600160e01b0316815250905092915050565b610adb610b6a565b6000821580610b0157505082516001600160e01b031682810290838281610afe57fe5b04145b610b3c5760405162461bcd60e51b8152600401808060200182810382526023815260200180610bff6023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444458737761704c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a26469706673582212203fa5e3cce088b12210373c0520795a9e73e22489fc8e01e247bc1bae171d947564736f6c63430006060033536c6964696e6757696e646f774f7261636c653a2057494e444f575f4e4f545f4556454e4c595f444956495349424c45", - "opcodes": "PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xE26 CODESIZE SUB DUP1 PUSH2 0xE26 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xFF DUP3 AND GT PUSH2 0x9D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536C6964696E6757696E646F774F7261636C653A204752414E554C4152495459 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 PUSH1 0xFF DUP3 AND DUP1 DUP3 DUP2 PUSH2 0xAB JUMPI INVALID JUMPDEST DIV PUSH1 0xE0 DUP2 SWAP1 MSTORE MUL EQ PUSH2 0xEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xDF6 PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH1 0xA0 DUP3 SWAP1 MSTORE PUSH1 0xF8 DUP2 SWAP1 SHL PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0xC0 MSTORE PUSH1 0xE0 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 PUSH2 0xC57 PUSH2 0x19F PUSH1 0x0 CODECOPY DUP1 PUSH2 0x2A9 MSTORE DUP1 PUSH2 0x4EB MSTORE DUP1 PUSH2 0x53E MSTORE DUP1 PUSH2 0x59E MSTORE POP DUP1 PUSH2 0x1C0 MSTORE DUP1 PUSH2 0x448 MSTORE DUP1 PUSH2 0x56A MSTORE DUP1 PUSH2 0x692 MSTORE POP DUP1 PUSH2 0x1E4 MSTORE DUP1 PUSH2 0x24A MSTORE DUP1 PUSH2 0x2CD MSTORE POP DUP1 PUSH2 0x20E MSTORE DUP1 PUSH2 0x3DA MSTORE DUP1 PUSH2 0x403 MSTORE POP PUSH2 0xC57 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC45A0155 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x145 JUMPI DUP1 PUSH4 0xC640752D EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0xDBAAD32F EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0xE4463EB2 EQ PUSH2 0x1B6 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x556F0DC7 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8A14117A EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x8C86F1E4 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0xBFCC8E42 EQ PUSH2 0xFB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1BE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x206 JUMP JUMPDEST PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x14D PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x197 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x17F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x3FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x539 JUMP JUMPDEST PUSH2 0xB3 PUSH2 0x59C JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x234 PUSH32 0x0 DUP7 DUP6 PUSH2 0x5C0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x241 DUP3 PUSH2 0x680 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xB7E PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x2 MUL PUSH32 0x0 SUB DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBB1 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x337 DUP6 PUSH2 0x70E JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x348 DUP11 DUP10 PUSH2 0x8DD JUMP JUMPDEST POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x382 JUMPI PUSH2 0x375 DUP6 PUSH1 0x1 ADD SLOAD DUP5 DUP7 DUP13 PUSH2 0x9BB JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP PUSH2 0x392 JUMP JUMPDEST PUSH2 0x375 DUP6 PUSH1 0x2 ADD SLOAD DUP4 DUP7 DUP13 PUSH2 0x9BB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP4 POP SWAP1 SWAP2 POP DUP4 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x429 PUSH32 0x0 DUP5 DUP5 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP JUMPDEST PUSH32 0x0 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x49A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE ADD PUSH2 0x446 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x4A6 TIMESTAMP PUSH2 0x539 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF DUP5 AND SWAP1 DUP2 LT PUSH2 0x4D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 PUSH2 0x51D DUP7 PUSH2 0x70E JUMP JUMPDEST POP TIMESTAMP DUP7 SSTORE PUSH1 0x1 DUP7 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP6 ADD SSTORE POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 DUP4 DUP2 PUSH2 0x565 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH32 0x0 PUSH1 0xFF AND DUP2 DUP2 PUSH2 0x594 JUMPI INVALID JUMPDEST MOD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x5CF DUP6 DUP6 PUSH2 0x8DD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x68C TIMESTAMP PUSH2 0x539 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0xFF AND DUP3 PUSH1 0x1 ADD PUSH1 0xFF AND DUP2 PUSH2 0x6C2 JUMPI INVALID JUMPDEST MOD SWAP1 POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x6F7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x71B PUSH2 0xA19 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x756 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x76A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x83C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x850 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0x8D3 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8A0 DUP5 DUP7 PUSH2 0xA23 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8C1 DUP6 DUP6 PUSH2 0xA23 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x931 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBDD PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x951 JUMPI DUP3 DUP5 PUSH2 0x954 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C5 PUSH2 0xB58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP9 DUP9 SUB DUP2 PUSH2 0x9DB JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 MSTORE SWAP1 POP PUSH2 0x9FB PUSH2 0x9F6 DUP3 DUP6 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0xB51 JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0xA2B PUSH2 0xB58 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0xA89 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0xABE JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xADB PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0xB01 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0xAFE JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xB3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBFF PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A204D495353 0x49 0x4E SELFBALANCE 0x5F 0x48 0x49 MSTORE8 SLOAD 0x4F MSTORE 0x49 NUMBER COINBASE 0x4C 0x5F 0x4F TIMESTAMP MSTORE8 GASLIMIT MSTORE JUMP COINBASE SLOAD 0x49 0x4F 0x4E MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A20554E4558 POP GASLIMIT NUMBER SLOAD GASLIMIT DIFFICULTY 0x5F SLOAD 0x49 0x4D GASLIMIT 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH 0xA5 0xE3 0xCC 0xE0 DUP9 0xB1 0x22 LT CALLDATACOPY EXTCODECOPY SDIV KECCAK256 PUSH26 0x5A9E73E22489FC8E01E247BC1BAE171D947564736F6C63430006 MOD STOP CALLER MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A2057494E44 0x4F JUMPI 0x5F 0x4E 0x4F SLOAD 0x5F GASLIMIT JUMP GASLIMIT 0x4E 0x4C MSIZE 0x5F DIFFICULTY 0x49 JUMP 0x49 MSTORE8 0x49 TIMESTAMP 0x4C GASLIMIT ", - "sourceMap": "662:5690:8:-:0;;;1933:427;5:9:-1;2:2;;;27:1;24;17:12;2:2;1933:427:8;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1933:427:8;;;;;;;;;;;;;;2041:1;2026:16;;;;2018:61;;;;;-1:-1:-1;;;2018:61:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:11;2110:56;;;;2170:11;2110:56;2124:26;;;;;2111:39;;;;2110:56;:71;2089:166;;;;-1:-1:-1;;;2089:166:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:18;;;;-1:-1:-1;;;;;;2265:18:8;;;2293:24;;;;2327:26;;;;;;;;662:5690;;-1:-1:-1;;;;;662:5690:8;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "9059": [ - { - "length": 32, - "start": 526 - }, - { - "length": 32, - "start": 986 - }, - { - "length": 32, - "start": 1027 - } - ], - "9061": [ - { - "length": 32, - "start": 484 - }, - { - "length": 32, - "start": 586 - }, - { - "length": 32, - "start": 717 - } - ], - "9063": [ - { - "length": 32, - "start": 448 - }, - { - "length": 32, - "start": 1096 - }, - { - "length": 32, - "start": 1386 - }, - { - "length": 32, - "start": 1682 - } - ], - "9065": [ - { - "length": 32, - "start": 681 - }, - { - "length": 32, - "start": 1259 - }, - { - "length": 32, - "start": 1342 - }, - { - "length": 32, - "start": 1438 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a015514610145578063c640752d14610169578063dbaad32f14610199578063e4463eb2146101b657610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e42146100fb575b600080fd5b6100956101be565b6040805160ff9092168252519081900360200190f35b6100b36101e2565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b506001600160a01b03813581169160208101359160409091013516610206565b6101276004803603604081101561011157600080fd5b506001600160a01b038135169060200135610399565b60408051938452602084019290925282820152519081900360600190f35b61014d6103d8565b604080516001600160a01b039092168252519081900360200190f35b6101976004803603604081101561017f57600080fd5b506001600160a01b03813581169160200135166103fc565b005b610095600480360360208110156101af57600080fd5b5035610539565b6100b361059c565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102347f000000000000000000000000000000000000000000000000000000000000000086856105c0565b9050600061024182610680565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102a75760405162461bcd60e51b8152600401808060200182810382526033815260200180610b7e6033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f00000000000000000000000000000000000000000000000000000000000000000381101561032b5760405162461bcd60e51b815260040180806020018281038252602c815260200180610bb1602c913960400191505060405180910390fd5b6000806103378561070e565b509150915060006103488a896108dd565b509050896001600160a01b0316816001600160a01b0316141561038257610375856001015484868c6109bb565b9650505050505050610392565b610375856002015483868c6109bb565b9392505050565b600060205281600052604060002081815481106103b257fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104297f000000000000000000000000000000000000000000000000000000000000000084846105c0565b6001600160a01b0381166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff1681101561049a576001600160a01b0382166000908152602081905260408120805460019081018255915201610446565b5060006104a642610539565b6001600160a01b03831660009081526020819052604081208054929350909160ff84169081106104d257fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105315760008061051d8661070e565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161056557fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161059457fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105cf85856108dd565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60008061068c42610539565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff16816106c257fe5b069050600080856001600160a01b03166001600160a01b031681526020019081526020016000208160ff16815481106106f757fe5b906000526020600020906003020192505050919050565b600080600061071b610a19565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d60208110156107f057600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561083c57600080fd5b505afa158015610850573d6000803e3d6000fd5b505050506040513d606081101561086657600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146108d35780840363ffffffff81166108a08486610a23565b516001600160e01b031602969096019563ffffffff81166108c18585610a23565b516001600160e01b0316029590950194505b5050509193909250565b600080826001600160a01b0316846001600160a01b031614156109315760405162461bcd60e51b8152600401808060200182810382526022815260200180610bdd6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610951578284610954565b83835b90925090506001600160a01b0382166109b4576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60006109c5610b58565b604051806020016040528085888803816109db57fe5b046001600160e01b0316905290506109fb6109f68285610ad3565b610b51565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610a2b610b58565b6000826001600160701b031611610a89576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610abe57fe5b046001600160e01b0316815250905092915050565b610adb610b6a565b6000821580610b0157505082516001600160e01b031682810290838281610afe57fe5b04145b610b3c5760405162461bcd60e51b8152600401808060200182810382526023815260200180610bff6023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444458737761704c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a26469706673582212203fa5e3cce088b12210373c0520795a9e73e22489fc8e01e247bc1bae171d947564736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC45A0155 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x145 JUMPI DUP1 PUSH4 0xC640752D EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0xDBAAD32F EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0xE4463EB2 EQ PUSH2 0x1B6 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x556F0DC7 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8A14117A EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x8C86F1E4 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0xBFCC8E42 EQ PUSH2 0xFB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1BE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x206 JUMP JUMPDEST PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x14D PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x197 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x17F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x3FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x539 JUMP JUMPDEST PUSH2 0xB3 PUSH2 0x59C JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x234 PUSH32 0x0 DUP7 DUP6 PUSH2 0x5C0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x241 DUP3 PUSH2 0x680 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xB7E PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x2 MUL PUSH32 0x0 SUB DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBB1 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x337 DUP6 PUSH2 0x70E JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x348 DUP11 DUP10 PUSH2 0x8DD JUMP JUMPDEST POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x382 JUMPI PUSH2 0x375 DUP6 PUSH1 0x1 ADD SLOAD DUP5 DUP7 DUP13 PUSH2 0x9BB JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP PUSH2 0x392 JUMP JUMPDEST PUSH2 0x375 DUP6 PUSH1 0x2 ADD SLOAD DUP4 DUP7 DUP13 PUSH2 0x9BB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP4 POP SWAP1 SWAP2 POP DUP4 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x429 PUSH32 0x0 DUP5 DUP5 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP JUMPDEST PUSH32 0x0 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x49A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE ADD PUSH2 0x446 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x4A6 TIMESTAMP PUSH2 0x539 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF DUP5 AND SWAP1 DUP2 LT PUSH2 0x4D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 PUSH2 0x51D DUP7 PUSH2 0x70E JUMP JUMPDEST POP TIMESTAMP DUP7 SSTORE PUSH1 0x1 DUP7 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP6 ADD SSTORE POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 DUP4 DUP2 PUSH2 0x565 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH32 0x0 PUSH1 0xFF AND DUP2 DUP2 PUSH2 0x594 JUMPI INVALID JUMPDEST MOD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x5CF DUP6 DUP6 PUSH2 0x8DD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x68C TIMESTAMP PUSH2 0x539 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0xFF AND DUP3 PUSH1 0x1 ADD PUSH1 0xFF AND DUP2 PUSH2 0x6C2 JUMPI INVALID JUMPDEST MOD SWAP1 POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x6F7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x71B PUSH2 0xA19 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x756 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x76A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x83C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x850 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0x8D3 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8A0 DUP5 DUP7 PUSH2 0xA23 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8C1 DUP6 DUP6 PUSH2 0xA23 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x931 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBDD PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x951 JUMPI DUP3 DUP5 PUSH2 0x954 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C5 PUSH2 0xB58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP9 DUP9 SUB DUP2 PUSH2 0x9DB JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 MSTORE SWAP1 POP PUSH2 0x9FB PUSH2 0x9F6 DUP3 DUP6 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0xB51 JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0xA2B PUSH2 0xB58 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0xA89 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0xABE JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xADB PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0xB01 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0xAFE JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xB3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBFF PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A204D495353 0x49 0x4E SELFBALANCE 0x5F 0x48 0x49 MSTORE8 SLOAD 0x4F MSTORE 0x49 NUMBER COINBASE 0x4C 0x5F 0x4F TIMESTAMP MSTORE8 GASLIMIT MSTORE JUMP COINBASE SLOAD 0x49 0x4F 0x4E MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A20554E4558 POP GASLIMIT NUMBER SLOAD GASLIMIT DIFFICULTY 0x5F SLOAD 0x49 0x4D GASLIMIT 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH 0xA5 0xE3 0xCC 0xE0 DUP9 0xB1 0x22 LT CALLDATACOPY EXTCODECOPY SDIV KECCAK256 PUSH26 0x5A9E73E22489FC8E01E247BC1BAE171D947564736F6C63430006 MOD STOP CALLER ", - "sourceMap": "662:5690:8:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;662:5690:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1601:34:8;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1016:32;;;:::i;:::-;;;;;;;;;;;;;;;;5297:1053;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;5297:1053:8;;;;;;;;;;;;;;;;;:::i;1869:57::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1869:57:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;880:32;;;:::i;:::-;;;;-1:-1:-1;;;;;880:32:8;;;;;;;;;;;;;;3331:1044;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;3331:1044:8;;;;;;;;;;:::i;:::-;;2447:185;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2447:185:8;;:::i;1752:32::-;;;:::i;1601:34::-;;;:::o;1016:32::-;;;:::o;5297:1053::-;5387:14;5413:12;5428:49;5450:7;5459;5468:8;5428:21;:49::i;:::-;5413:64;;5487:36;5526:33;5554:4;5526:27;:33::i;:::-;5607:26;;5487:72;;-1:-1:-1;5589:15:8;:44;5666:10;5651:25;;;5643:89;;;;-1:-1:-1;;;5643:89:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5810:10;5823:1;5810:14;5797:10;:27;5782:11;:42;;5774:99;;;;-1:-1:-1;;;5774:99:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5885:21;5908;5934:49;5978:4;5934:43;:49::i;:::-;5884:99;;;;;5994:14;6013:43;6038:7;6047:8;6013:24;:43::i;:::-;5993:63;;;6081:7;-1:-1:-1;;;;;6071:17:8;:6;-1:-1:-1;;;;;6071:17:8;;6067:277;;;6111:92;6128:16;:33;;;6163:16;6181:11;6194:8;6111:16;:92::i;:::-;6104:99;;;;;;;;;;6067:277;6241:92;6258:16;:33;;;6293:16;6311:11;6324:8;6241:16;:92::i;5297:1053::-;;;;;;:::o;1869:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1869:57:8;;-1:-1:-1;1869:57:8;:::o;880:32::-;;;:::o;3331:1044::-;3398:12;3413:46;3435:7;3444:6;3452;3413:21;:46::i;:::-;-1:-1:-1;;;;;3556:22:8;;3547:6;3556:22;;;;;;;;;;:29;3398:61;;-1:-1:-1;3542:121:8;3591:11;3587:15;;:1;:15;3542:121;;;-1:-1:-1;;;;;3623:22:8;;:16;:22;;;;;;;;;;27:10:-1;;3623:29:8;23:18:-1;;;45:23;;3623:29:8;;3604:3;3542:121;;;;3727:22;3752:35;3771:15;3752:18;:35::i;:::-;-1:-1:-1;;;;;3831:22:8;;3797:31;3831:22;;;;;;;;;;:40;;3727:60;;-1:-1:-1;3797:31:8;;3831:40;;;;;;;;;;;;;;;;;;;;;;;4009:21;;3831:40;;-1:-1:-1;3991:15:8;:39;4058:10;4044:24;;4040:329;;;4085:21;4108;4134:49;4178:4;4134:43;:49::i;:::-;-1:-1:-1;4221:15:8;4197:39;;4250:28;;;:47;;;;4311:28;;;:47;-1:-1:-1;;4040:329:8;3331:1044;;;;;;:::o;2447:185::-;2512:11;2535:16;2566:10;2554:9;:22;;;;;;2535:41;;2613:11;2599:25;;:11;:25;;;;;;;2447:185;-1:-1:-1;;;2447:185:8:o;1752:32::-;;;:::o;698:450:18:-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;2753:425:8:-;2826:36;2874:22;2899:35;2918:15;2899:18;:35::i;:::-;2874:60;;3031:27;3086:11;3061:36;;3062:16;3081:1;3062:20;3061:36;;;;;;;;3031:66;;3126:16;:22;3143:4;-1:-1:-1;;;;;3126:22:8;-1:-1:-1;;;;;3126:22:8;;;;;;;;;;;;3149:21;3126:45;;;;;;;;;;;;;;;;;;;;3107:64;;2753:425;;;;;:::o;605:1031:19:-;689:21;712;735;785:23;:21;:23::i;:::-;768:40;;849:4;-1:-1:-1;;;;;837:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;837:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;837:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;837:40:19;906;;;-1:-1:-1;;;906:40:19;;;;837;;-1:-1:-1;;;;;;906:38:19;;;;;:40;;;;;837;;906;;;;;;;;:38;:40;;;2:2:-1;;;;27:1;24;17:12;2:2;906:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;906:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;906:40:19;1123:31;;;-1:-1:-1;;;1123:31:19;;;;906:40;;-1:-1:-1;1058:16:19;;;;;;-1:-1:-1;;;;;1123:29:19;;;;;:31;;;;;;;;;;;;;;:29;:31;;;2:2:-1;;;;27:1;24;17:12;2:2;1123:31:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1123:31:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1123:31:19;;;;;;;;;;;;;-1:-1:-1;1123:31:19;;-1:-1:-1;1123:31:19;-1:-1:-1;1168:36:19;;;;;;;;1164:466;;1288:35;;;1431:62;;;1436:39;1456:8;1466;1436:19;:39::i;:::-;:42;-1:-1:-1;;;;;1431:48:19;:62;1411:82;;;;;1557:62;;;1562:39;1582:8;1592;1562:19;:39::i;:::-;:42;-1:-1:-1;;;;;1557:48:19;:62;1537:82;;;;;-1:-1:-1;1164:466:19;605:1031;;;;;;;;:::o;270:339:18:-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;4575:433:8:-;4730:14;4788:40;;:::i;:::-;4831:110;;;;;;;;4919:11;4895:20;4874:18;:41;4873:57;;;;;;-1:-1:-1;;;;;4831:110:8;;;4788:153;-1:-1:-1;4963:38:8;:26;4788:153;4980:8;4963:16;:26::i;:::-;:36;:38::i;:::-;4951:50;;;4575:433;-1:-1:-1;;;;;;4575:433:8:o;381:121:19:-;469:25;:15;:25;;381:121::o;1517:243:20:-;1598:16;;:::i;:::-;1648:1;1634:11;-1:-1:-1;;;;;1634:15:20;;1626:51;;;;;-1:-1:-1;;;1626:51:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:59;;;;;;;;;;-1:-1:-1;;;;;1704:48:20;;-1:-1:-1;;;407:3:20;1705:32;;;;1704:48;;;;;;-1:-1:-1;;;;;1694:59:20;;;;1687:66;;1517:243;;;;:::o;1116:249::-;1183:16;;:::i;:::-;1211:6;1235;;;:54;;-1:-1:-1;;1281:7:20;;-1:-1:-1;;;;;1276:13:20;1250:17;;;;1271:1;1250:17;1271:1;1245:27;;;;;:44;1235:54;1227:102;;;;-1:-1:-1;;;1227:102:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1346:12;;;;;;;;;;;;;1116:249;-1:-1:-1;;;1116:249:20:o;2051:128::-;2150:7;407:3;2150:21;;2051:128::o;662:5690:8:-;;;;;;;;;;-1:-1:-1;662:5690:8;;;:::o;:::-;;;;;;;;;;;;;;:::o" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "windowSize_", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "granularity_", - "type": "uint8" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "granularity", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "name": "observationIndexOf", - "outputs": [ - { - "internalType": "uint8", - "name": "index", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "pairObservations", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price0Cumulative", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price1Cumulative", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "periodSize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "windowSize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "61010060405234801561001157600080fd5b50604051610e26380380610e268339818101604052606081101561003457600080fd5b5080516020820151604090920151909190600160ff82161161009d576040805162461bcd60e51b815260206004820181905260248201527f536c6964696e6757696e646f774f7261636c653a204752414e554c4152495459604482015290519081900360640190fd5b8160ff82168082816100ab57fe5b0460e081905202146100ee5760405162461bcd60e51b8152600401808060200182810382526030815260200180610df66030913960400191505060405180910390fd5b606083901b6001600160601b03191660805260a082905260f881901b7fff000000000000000000000000000000000000000000000000000000000000001660c05260e0516001600160a01b039093169260ff90911690610c5761019f600039806102a952806104eb528061053e528061059e5250806101c05280610448528061056a52806106925250806101e4528061024a52806102cd52508061020e52806103da52806104035250610c576000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a015514610145578063c640752d14610169578063dbaad32f14610199578063e4463eb2146101b657610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e42146100fb575b600080fd5b6100956101be565b6040805160ff9092168252519081900360200190f35b6100b36101e2565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b506001600160a01b03813581169160208101359160409091013516610206565b6101276004803603604081101561011157600080fd5b506001600160a01b038135169060200135610399565b60408051938452602084019290925282820152519081900360600190f35b61014d6103d8565b604080516001600160a01b039092168252519081900360200190f35b6101976004803603604081101561017f57600080fd5b506001600160a01b03813581169160200135166103fc565b005b610095600480360360208110156101af57600080fd5b5035610539565b6100b361059c565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102347f000000000000000000000000000000000000000000000000000000000000000086856105c0565b9050600061024182610680565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102a75760405162461bcd60e51b8152600401808060200182810382526033815260200180610b7e6033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f00000000000000000000000000000000000000000000000000000000000000000381101561032b5760405162461bcd60e51b815260040180806020018281038252602c815260200180610bb1602c913960400191505060405180910390fd5b6000806103378561070e565b509150915060006103488a896108dd565b509050896001600160a01b0316816001600160a01b0316141561038257610375856001015484868c6109bb565b9650505050505050610392565b610375856002015483868c6109bb565b9392505050565b600060205281600052604060002081815481106103b257fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104297f000000000000000000000000000000000000000000000000000000000000000084846105c0565b6001600160a01b0381166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff1681101561049a576001600160a01b0382166000908152602081905260408120805460019081018255915201610446565b5060006104a642610539565b6001600160a01b03831660009081526020819052604081208054929350909160ff84169081106104d257fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105315760008061051d8661070e565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161056557fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161059457fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105cf85856108dd565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60008061068c42610539565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff16816106c257fe5b069050600080856001600160a01b03166001600160a01b031681526020019081526020016000208160ff16815481106106f757fe5b906000526020600020906003020192505050919050565b600080600061071b610a19565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d60208110156107f057600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561083c57600080fd5b505afa158015610850573d6000803e3d6000fd5b505050506040513d606081101561086657600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146108d35780840363ffffffff81166108a08486610a23565b516001600160e01b031602969096019563ffffffff81166108c18585610a23565b516001600160e01b0316029590950194505b5050509193909250565b600080826001600160a01b0316846001600160a01b031614156109315760405162461bcd60e51b8152600401808060200182810382526022815260200180610bdd6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610951578284610954565b83835b90925090506001600160a01b0382166109b4576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60006109c5610b58565b604051806020016040528085888803816109db57fe5b046001600160e01b0316905290506109fb6109f68285610ad3565b610b51565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610a2b610b58565b6000826001600160701b031611610a89576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610abe57fe5b046001600160e01b0316815250905092915050565b610adb610b6a565b6000821580610b0157505082516001600160e01b031682810290838281610afe57fe5b04145b610b3c5760405162461bcd60e51b8152600401808060200182810382526023815260200180610bff6023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444458737761704c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a26469706673582212203fa5e3cce088b12210373c0520795a9e73e22489fc8e01e247bc1bae171d947564736f6c63430006060033536c6964696e6757696e646f774f7261636c653a2057494e444f575f4e4f545f4556454e4c595f444956495349424c45", - "bin": "61010060405234801561001157600080fd5b50604051610e26380380610e268339818101604052606081101561003457600080fd5b5080516020820151604090920151909190600160ff82161161009d576040805162461bcd60e51b815260206004820181905260248201527f536c6964696e6757696e646f774f7261636c653a204752414e554c4152495459604482015290519081900360640190fd5b8160ff82168082816100ab57fe5b0460e081905202146100ee5760405162461bcd60e51b8152600401808060200182810382526030815260200180610df66030913960400191505060405180910390fd5b606083901b6001600160601b03191660805260a082905260f881901b7fff000000000000000000000000000000000000000000000000000000000000001660c05260e0516001600160a01b039093169260ff90911690610c5761019f600039806102a952806104eb528061053e528061059e5250806101c05280610448528061056a52806106925250806101e4528061024a52806102cd52508061020e52806103da52806104035250610c576000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a015514610145578063c640752d14610169578063dbaad32f14610199578063e4463eb2146101b657610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e42146100fb575b600080fd5b6100956101be565b6040805160ff9092168252519081900360200190f35b6100b36101e2565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b506001600160a01b03813581169160208101359160409091013516610206565b6101276004803603604081101561011157600080fd5b506001600160a01b038135169060200135610399565b60408051938452602084019290925282820152519081900360600190f35b61014d6103d8565b604080516001600160a01b039092168252519081900360200190f35b6101976004803603604081101561017f57600080fd5b506001600160a01b03813581169160200135166103fc565b005b610095600480360360208110156101af57600080fd5b5035610539565b6100b361059c565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102347f000000000000000000000000000000000000000000000000000000000000000086856105c0565b9050600061024182610680565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102a75760405162461bcd60e51b8152600401808060200182810382526033815260200180610b7e6033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f00000000000000000000000000000000000000000000000000000000000000000381101561032b5760405162461bcd60e51b815260040180806020018281038252602c815260200180610bb1602c913960400191505060405180910390fd5b6000806103378561070e565b509150915060006103488a896108dd565b509050896001600160a01b0316816001600160a01b0316141561038257610375856001015484868c6109bb565b9650505050505050610392565b610375856002015483868c6109bb565b9392505050565b600060205281600052604060002081815481106103b257fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104297f000000000000000000000000000000000000000000000000000000000000000084846105c0565b6001600160a01b0381166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff1681101561049a576001600160a01b0382166000908152602081905260408120805460019081018255915201610446565b5060006104a642610539565b6001600160a01b03831660009081526020819052604081208054929350909160ff84169081106104d257fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105315760008061051d8661070e565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161056557fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161059457fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105cf85856108dd565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60008061068c42610539565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff16816106c257fe5b069050600080856001600160a01b03166001600160a01b031681526020019081526020016000208160ff16815481106106f757fe5b906000526020600020906003020192505050919050565b600080600061071b610a19565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d60208110156107f057600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561083c57600080fd5b505afa158015610850573d6000803e3d6000fd5b505050506040513d606081101561086657600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146108d35780840363ffffffff81166108a08486610a23565b516001600160e01b031602969096019563ffffffff81166108c18585610a23565b516001600160e01b0316029590950194505b5050509193909250565b600080826001600160a01b0316846001600160a01b031614156109315760405162461bcd60e51b8152600401808060200182810382526022815260200180610bdd6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610951578284610954565b83835b90925090506001600160a01b0382166109b4576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60006109c5610b58565b604051806020016040528085888803816109db57fe5b046001600160e01b0316905290506109fb6109f68285610ad3565b610b51565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610a2b610b58565b6000826001600160701b031611610a89576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610abe57fe5b046001600160e01b0316815250905092915050565b610adb610b6a565b6000821580610b0157505082516001600160e01b031682810290838281610afe57fe5b04145b610b3c5760405162461bcd60e51b8152600401808060200182810382526023815260200180610bff6023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444458737761704c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a26469706673582212203fa5e3cce088b12210373c0520795a9e73e22489fc8e01e247bc1bae171d947564736f6c63430006060033536c6964696e6757696e646f774f7261636c653a2057494e444f575f4e4f545f4556454e4c595f444956495349424c45", - "bin-runtime": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a015514610145578063c640752d14610169578063dbaad32f14610199578063e4463eb2146101b657610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e42146100fb575b600080fd5b6100956101be565b6040805160ff9092168252519081900360200190f35b6100b36101e2565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b506001600160a01b03813581169160208101359160409091013516610206565b6101276004803603604081101561011157600080fd5b506001600160a01b038135169060200135610399565b60408051938452602084019290925282820152519081900360600190f35b61014d6103d8565b604080516001600160a01b039092168252519081900360200190f35b6101976004803603604081101561017f57600080fd5b506001600160a01b03813581169160200135166103fc565b005b610095600480360360208110156101af57600080fd5b5035610539565b6100b361059c565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102347f000000000000000000000000000000000000000000000000000000000000000086856105c0565b9050600061024182610680565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102a75760405162461bcd60e51b8152600401808060200182810382526033815260200180610b7e6033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f00000000000000000000000000000000000000000000000000000000000000000381101561032b5760405162461bcd60e51b815260040180806020018281038252602c815260200180610bb1602c913960400191505060405180910390fd5b6000806103378561070e565b509150915060006103488a896108dd565b509050896001600160a01b0316816001600160a01b0316141561038257610375856001015484868c6109bb565b9650505050505050610392565b610375856002015483868c6109bb565b9392505050565b600060205281600052604060002081815481106103b257fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104297f000000000000000000000000000000000000000000000000000000000000000084846105c0565b6001600160a01b0381166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff1681101561049a576001600160a01b0382166000908152602081905260408120805460019081018255915201610446565b5060006104a642610539565b6001600160a01b03831660009081526020819052604081208054929350909160ff84169081106104d257fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105315760008061051d8661070e565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161056557fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161059457fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105cf85856108dd565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60008061068c42610539565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff16816106c257fe5b069050600080856001600160a01b03166001600160a01b031681526020019081526020016000208160ff16815481106106f757fe5b906000526020600020906003020192505050919050565b600080600061071b610a19565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d60208110156107f057600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561083c57600080fd5b505afa158015610850573d6000803e3d6000fd5b505050506040513d606081101561086657600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146108d35780840363ffffffff81166108a08486610a23565b516001600160e01b031602969096019563ffffffff81166108c18585610a23565b516001600160e01b0316029590950194505b5050509193909250565b600080826001600160a01b0316846001600160a01b031614156109315760405162461bcd60e51b8152600401808060200182810382526022815260200180610bdd6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610951578284610954565b83835b90925090506001600160a01b0382166109b4576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60006109c5610b58565b604051806020016040528085888803816109db57fe5b046001600160e01b0316905290506109fb6109f68285610ad3565b610b51565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610a2b610b58565b6000826001600160701b031611610a89576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610abe57fe5b046001600160e01b0316815250905092915050565b610adb610b6a565b6000821580610b0157505082516001600160e01b031682810290838281610afe57fe5b04145b610b3c5760405162461bcd60e51b8152600401808060200182810382526023815260200180610bff6023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444458737761704c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a26469706673582212203fa5e3cce088b12210373c0520795a9e73e22489fc8e01e247bc1bae171d947564736f6c63430006060033", - "srcmap": "662:5690:8:-:0;;;1933:427;5:9:-1;2:2;;;27:1;24;17:12;2:2;1933:427:8;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1933:427:8;;;;;;;;;;;;;;2041:1;2026:16;;;;2018:61;;;;;-1:-1:-1;;;2018:61:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:11;2110:56;;;;2170:11;2110:56;2124:26;;;;;2111:39;;;;2110:56;:71;2089:166;;;;-1:-1:-1;;;2089:166:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:18;;;;-1:-1:-1;;;;;;2265:18:8;;;2293:24;;;;2327:26;;;;;;;;662:5690;;-1:-1:-1;;;;;662:5690:8;;;;;;;;;;;;;;;;;;;", - "srcmap-runtime": "662:5690:8:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;662:5690:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1601:34:8;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1016:32;;;:::i;:::-;;;;;;;;;;;;;;;;5297:1053;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;5297:1053:8;;;;;;;;;;;;;;;;;:::i;1869:57::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1869:57:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;880:32;;;:::i;:::-;;;;-1:-1:-1;;;;;880:32:8;;;;;;;;;;;;;;3331:1044;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;3331:1044:8;;;;;;;;;;:::i;:::-;;2447:185;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2447:185:8;;:::i;1752:32::-;;;:::i;1601:34::-;;;:::o;1016:32::-;;;:::o;5297:1053::-;5387:14;5413:12;5428:49;5450:7;5459;5468:8;5428:21;:49::i;:::-;5413:64;;5487:36;5526:33;5554:4;5526:27;:33::i;:::-;5607:26;;5487:72;;-1:-1:-1;5589:15:8;:44;5666:10;5651:25;;;5643:89;;;;-1:-1:-1;;;5643:89:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5810:10;5823:1;5810:14;5797:10;:27;5782:11;:42;;5774:99;;;;-1:-1:-1;;;5774:99:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5885:21;5908;5934:49;5978:4;5934:43;:49::i;:::-;5884:99;;;;;5994:14;6013:43;6038:7;6047:8;6013:24;:43::i;:::-;5993:63;;;6081:7;-1:-1:-1;;;;;6071:17:8;:6;-1:-1:-1;;;;;6071:17:8;;6067:277;;;6111:92;6128:16;:33;;;6163:16;6181:11;6194:8;6111:16;:92::i;:::-;6104:99;;;;;;;;;;6067:277;6241:92;6258:16;:33;;;6293:16;6311:11;6324:8;6241:16;:92::i;5297:1053::-;;;;;;:::o;1869:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1869:57:8;;-1:-1:-1;1869:57:8;:::o;880:32::-;;;:::o;3331:1044::-;3398:12;3413:46;3435:7;3444:6;3452;3413:21;:46::i;:::-;-1:-1:-1;;;;;3556:22:8;;3547:6;3556:22;;;;;;;;;;:29;3398:61;;-1:-1:-1;3542:121:8;3591:11;3587:15;;:1;:15;3542:121;;;-1:-1:-1;;;;;3623:22:8;;:16;:22;;;;;;;;;;27:10:-1;;3623:29:8;23:18:-1;;;45:23;;3623:29:8;;3604:3;3542:121;;;;3727:22;3752:35;3771:15;3752:18;:35::i;:::-;-1:-1:-1;;;;;3831:22:8;;3797:31;3831:22;;;;;;;;;;:40;;3727:60;;-1:-1:-1;3797:31:8;;3831:40;;;;;;;;;;;;;;;;;;;;;;;4009:21;;3831:40;;-1:-1:-1;3991:15:8;:39;4058:10;4044:24;;4040:329;;;4085:21;4108;4134:49;4178:4;4134:43;:49::i;:::-;-1:-1:-1;4221:15:8;4197:39;;4250:28;;;:47;;;;4311:28;;;:47;-1:-1:-1;;4040:329:8;3331:1044;;;;;;:::o;2447:185::-;2512:11;2535:16;2566:10;2554:9;:22;;;;;;2535:41;;2613:11;2599:25;;:11;:25;;;;;;;2447:185;-1:-1:-1;;;2447:185:8:o;1752:32::-;;;:::o;698:450:18:-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;2753:425:8:-;2826:36;2874:22;2899:35;2918:15;2899:18;:35::i;:::-;2874:60;;3031:27;3086:11;3061:36;;3062:16;3081:1;3062:20;3061:36;;;;;;;;3031:66;;3126:16;:22;3143:4;-1:-1:-1;;;;;3126:22:8;-1:-1:-1;;;;;3126:22:8;;;;;;;;;;;;3149:21;3126:45;;;;;;;;;;;;;;;;;;;;3107:64;;2753:425;;;;;:::o;605:1031:19:-;689:21;712;735;785:23;:21;:23::i;:::-;768:40;;849:4;-1:-1:-1;;;;;837:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;837:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;837:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;837:40:19;906;;;-1:-1:-1;;;906:40:19;;;;837;;-1:-1:-1;;;;;;906:38:19;;;;;:40;;;;;837;;906;;;;;;;;:38;:40;;;2:2:-1;;;;27:1;24;17:12;2:2;906:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;906:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;906:40:19;1123:31;;;-1:-1:-1;;;1123:31:19;;;;906:40;;-1:-1:-1;1058:16:19;;;;;;-1:-1:-1;;;;;1123:29:19;;;;;:31;;;;;;;;;;;;;;:29;:31;;;2:2:-1;;;;27:1;24;17:12;2:2;1123:31:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1123:31:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1123:31:19;;;;;;;;;;;;;-1:-1:-1;1123:31:19;;-1:-1:-1;1123:31:19;-1:-1:-1;1168:36:19;;;;;;;;1164:466;;1288:35;;;1431:62;;;1436:39;1456:8;1466;1436:19;:39::i;:::-;:42;-1:-1:-1;;;;;1431:48:19;:62;1411:82;;;;;1557:62;;;1562:39;1582:8;1592;1562:19;:39::i;:::-;:42;-1:-1:-1;;;;;1557:48:19;:62;1537:82;;;;;-1:-1:-1;1164:466:19;605:1031;;;;;;;;:::o;270:339:18:-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;4575:433:8:-;4730:14;4788:40;;:::i;:::-;4831:110;;;;;;;;4919:11;4895:20;4874:18;:41;4873:57;;;;;;-1:-1:-1;;;;;4831:110:8;;;4788:153;-1:-1:-1;4963:38:8;:26;4788:153;4980:8;4963:16;:26::i;:::-;:36;:38::i;:::-;4951:50;;;4575:433;-1:-1:-1;;;;;;4575:433:8:o;381:121:19:-;469:25;:15;:25;;381:121::o;1517:243:20:-;1598:16;;:::i;:::-;1648:1;1634:11;-1:-1:-1;;;;;1634:15:20;;1626:51;;;;;-1:-1:-1;;;1626:51:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:59;;;;;;;;;;-1:-1:-1;;;;;1704:48:20;;-1:-1:-1;;;407:3:20;1705:32;;;;1704:48;;;;;;-1:-1:-1;;;;;1694:59:20;;;;1687:66;;1517:243;;;;:::o;1116:249::-;1183:16;;:::i;:::-;1211:6;1235;;;:54;;-1:-1:-1;;1281:7:20;;-1:-1:-1;;;;;1276:13:20;1250:17;;;;1271:1;1250:17;1271:1;1245:27;;;;;:44;1235:54;1227:102;;;;-1:-1:-1;;;1227:102:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1346:12;;;;;;;;;;;;;1116:249;-1:-1:-1;;;1116:249:20:o;2051:128::-;2150:7;407:3;2150:21;;2051:128::o;662:5690:8:-;;;;;;;;;;-1:-1:-1;662:5690:8;;;:::o;:::-;;;;;;;;;;;;;;:::o" - }, - "contracts/examples/ExampleSwapToPrice.sol:ExampleSwapToPrice": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory_", - "type": "address" - }, - { - "internalType": "contract IDXswapRouter", - "name": "router_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "truePriceTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "truePriceTokenB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "computeProfitMaximizingTrade", - "outputs": [ - { - "internalType": "bool", - "name": "aToB", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "router", - "outputs": [ - { - "internalType": "contract IDXswapRouter", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "truePriceTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "truePriceTokenB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxSpendTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxSpendTokenB", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapToPrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60c060405234801561001057600080fd5b50604051610e26380380610e268339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b811660a052911b1660805260805160601c60a05160601c610d94610092600039806102f0528061032152806106065250806103b25280610455528061062a5250610d946000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806398f1254a14610051578063bef90fd3146100a1578063c45a0155146100f8578063f887ea401461011c575b600080fd5b610086600480360360a081101561006757600080fd5b5080359060208101359060408101359060608101359060800135610124565b60408051921515835260208301919091528051918290030190f35b6100f660048036036101008110156100b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135610228565b005b610100610604565b604080516001600160a01b039092168252519081900360200190f35b610100610628565b6000808684610139878963ffffffff61064c16565b8161014057fe5b041091506000610156868663ffffffff61064c16565b905060006101bb61018b6101726127108863ffffffff6106b516565b8661017d578b61017f565b8a5b9063ffffffff61064c16565b6101ae61271061017f8861019f578c6101a1565b8d5b879063ffffffff61064c16565b816101b557fe5b04610705565b905060006101d16127108763ffffffff6106b516565b856101ed576101e88861271063ffffffff61064c16565b6101ff565b6101ff8961271063ffffffff61064c16565b8161020657fe5b049050610219828263ffffffff6106b516565b93505050509550959350505050565b851580159061023657508415155b610287576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061029457508215155b6102e5576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806103167f00000000000000000000000000000000000000000000000000000000000000008d8d610757565b9150915060006103477f00000000000000000000000000000000000000000000000000000000000000008e8e610825565b90506103568b8b858585610124565b809550819650505050505060008261036e5785610370565b865b90508082111561037e578091505b60008361038b578a61038d565b8b5b905060008461039c578c61039e565b8b5b90506103ac823330876108b3565b6103d7827f000000000000000000000000000000000000000000000000000000000000000086610a10565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061040557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811061043357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338ed1739866000848c8c6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156105015781810151838201526020016104e9565b505050509050019650505050505050600060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056757600080fd5b810190808051604051939291908464010000000082111561058757600080fd5b90830190602082018581111561059c57600080fd5b82518660208202830111640100000000821117156105b957600080fd5b82525081516020918201928201910280838360005b838110156105e65781810151838201526020016105ce565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008115806106675750508082028282828161066457fe5b04145b6106af576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b808203828111156106af576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b60006003821115610748575080600160028204015b818110156107425780915060028182858161073157fe5b04018161073a57fe5b04905061071a565b50610752565b8115610752575060015b919050565b60008060006107668585610b7a565b509050600080610777888888610c58565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d60608110156107d957600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614610813578082610816565b81815b90999098509650505050505050565b6000806108328484610b7a565b509050610840858585610c58565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d60208110156108a257600080fd5b505163ffffffff1695945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106109385780518252601f199092019160209182019101610919565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461099a576040519150601f19603f3d011682016040523d82523d6000602084013e61099f565b606091505b50915091508180156109cd5750805115806109cd57508080602001905160208110156109ca57600080fd5b50515b610a085760405162461bcd60e51b8152600401808060200182810382526024815260200180610d3b6024913960400191505060405180910390fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310610a8d5780518252601f199092019160209182019101610a6e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5091509150818015610b22575080511580610b225750808060200190516020811015610b1f57600080fd5b50515b610b73576040805162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b5050505050565b600080826001600160a01b0316846001600160a01b03161415610bce5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d196022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610bee578284610bf1565b83835b90925090506001600160a01b038216610c51576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6000806000610c678585610b7a565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd90920190975280519601959095209594505050505056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220d876890f27d1e389238a7b0583eb728a8ca4c39e10c963fb2cb2a11d552052d164736f6c63430006060033", - "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xE26 CODESIZE SUB DUP1 PUSH2 0xE26 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0xA0 MSTORE SWAP2 SHL AND PUSH1 0x80 MSTORE PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0xD94 PUSH2 0x92 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x2F0 MSTORE DUP1 PUSH2 0x321 MSTORE DUP1 PUSH2 0x606 MSTORE POP DUP1 PUSH2 0x3B2 MSTORE DUP1 PUSH2 0x455 MSTORE DUP1 PUSH2 0x62A MSTORE POP PUSH2 0xD94 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x98F1254A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBEF90FD3 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xF887EA40 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x124 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 ISZERO ISZERO DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x228 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x100 PUSH2 0x604 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH2 0x628 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP5 PUSH2 0x139 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x140 JUMPI INVALID JUMPDEST DIV LT SWAP2 POP PUSH1 0x0 PUSH2 0x156 DUP7 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1BB PUSH2 0x18B PUSH2 0x172 PUSH2 0x2710 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST DUP7 PUSH2 0x17D JUMPI DUP12 PUSH2 0x17F JUMP JUMPDEST DUP11 JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH2 0x1AE PUSH2 0x2710 PUSH2 0x17F DUP9 PUSH2 0x19F JUMPI DUP13 PUSH2 0x1A1 JUMP JUMPDEST DUP14 JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x1B5 JUMPI INVALID JUMPDEST DIV PUSH2 0x705 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D1 PUSH2 0x2710 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST DUP6 PUSH2 0x1ED JUMPI PUSH2 0x1E8 DUP9 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH2 0x1FF JUMP JUMPDEST PUSH2 0x1FF DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x206 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x219 DUP3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST DUP6 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x236 JUMPI POP DUP5 ISZERO ISZERO JUMPDEST PUSH2 0x287 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C6553776170546F50726963653A205A45524F5F50524943450000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 ISZERO ISZERO DUP1 PUSH2 0x294 JUMPI POP DUP3 ISZERO ISZERO JUMPDEST PUSH2 0x2E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C6553776170546F50726963653A205A45524F5F5350454E440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x316 PUSH32 0x0 DUP14 DUP14 PUSH2 0x757 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x347 PUSH32 0x0 DUP15 DUP15 PUSH2 0x825 JUMP JUMPDEST SWAP1 POP PUSH2 0x356 DUP12 DUP12 DUP6 DUP6 DUP6 PUSH2 0x124 JUMP JUMPDEST DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP POP POP POP PUSH1 0x0 DUP3 PUSH2 0x36E JUMPI DUP6 PUSH2 0x370 JUMP JUMPDEST DUP7 JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x37E JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x38B JUMPI DUP11 PUSH2 0x38D JUMP JUMPDEST DUP12 JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 PUSH2 0x39C JUMPI DUP13 PUSH2 0x39E JUMP JUMPDEST DUP12 JUMPDEST SWAP1 POP PUSH2 0x3AC DUP3 CALLER ADDRESS DUP8 PUSH2 0x8B3 JUMP JUMPDEST PUSH2 0x3D7 DUP3 PUSH32 0x0 DUP7 PUSH2 0xA10 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP1 DUP4 ADD DUP5 MSTORE SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x405 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP DUP2 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x433 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 DUP7 PUSH1 0x0 DUP5 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x501 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4E9 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x53E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x59C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5E6 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5CE JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x667 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x664 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x6AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x6AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x748 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x742 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x731 JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x73A JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x71A JUMP JUMPDEST POP PUSH2 0x752 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x752 JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x766 DUP6 DUP6 PUSH2 0xB7A JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x777 DUP9 DUP9 DUP9 PUSH2 0xC58 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x813 JUMPI DUP1 DUP3 PUSH2 0x816 JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x832 DUP5 DUP5 PUSH2 0xB7A JUMP JUMPDEST POP SWAP1 POP PUSH2 0x840 DUP6 DUP6 DUP6 PUSH2 0xC58 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x938 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x919 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x99A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x99F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x9CD JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x9CD JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0xA08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xD3B PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA8D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xAEF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xAF4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0xB22 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0xB22 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0xB73 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A20415050524F56455F4641494C45440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xD19 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0xBEE JUMPI DUP3 DUP5 PUSH2 0xBF1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC51 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC67 DUP6 DUP6 PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD8 PUSH23 0x890F27D1E389238A7B0583EB728A8CA4C39E10C963FB2C 0xB2 LOG1 SAR SSTORE KECCAK256 MSTORE 0xD1 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "320:3322:9:-:0;;;469:121;5:9:-1;2:2;;;27:1;24;17:12;2:2;469:121:9;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;469:121:9;;;;;;;-1:-1:-1;;;;;;539:18:9;;;;;;;;567:16;;;;;320:3322;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "9407": [ - { - "length": 32, - "start": 946 - }, - { - "length": 32, - "start": 1109 - }, - { - "length": 32, - "start": 1578 - } - ], - "9409": [ - { - "length": 32, - "start": 752 - }, - { - "length": 32, - "start": 801 - }, - { - "length": 32, - "start": 1542 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c806398f1254a14610051578063bef90fd3146100a1578063c45a0155146100f8578063f887ea401461011c575b600080fd5b610086600480360360a081101561006757600080fd5b5080359060208101359060408101359060608101359060800135610124565b60408051921515835260208301919091528051918290030190f35b6100f660048036036101008110156100b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135610228565b005b610100610604565b604080516001600160a01b039092168252519081900360200190f35b610100610628565b6000808684610139878963ffffffff61064c16565b8161014057fe5b041091506000610156868663ffffffff61064c16565b905060006101bb61018b6101726127108863ffffffff6106b516565b8661017d578b61017f565b8a5b9063ffffffff61064c16565b6101ae61271061017f8861019f578c6101a1565b8d5b879063ffffffff61064c16565b816101b557fe5b04610705565b905060006101d16127108763ffffffff6106b516565b856101ed576101e88861271063ffffffff61064c16565b6101ff565b6101ff8961271063ffffffff61064c16565b8161020657fe5b049050610219828263ffffffff6106b516565b93505050509550959350505050565b851580159061023657508415155b610287576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061029457508215155b6102e5576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806103167f00000000000000000000000000000000000000000000000000000000000000008d8d610757565b9150915060006103477f00000000000000000000000000000000000000000000000000000000000000008e8e610825565b90506103568b8b858585610124565b809550819650505050505060008261036e5785610370565b865b90508082111561037e578091505b60008361038b578a61038d565b8b5b905060008461039c578c61039e565b8b5b90506103ac823330876108b3565b6103d7827f000000000000000000000000000000000000000000000000000000000000000086610a10565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061040557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811061043357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338ed1739866000848c8c6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156105015781810151838201526020016104e9565b505050509050019650505050505050600060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056757600080fd5b810190808051604051939291908464010000000082111561058757600080fd5b90830190602082018581111561059c57600080fd5b82518660208202830111640100000000821117156105b957600080fd5b82525081516020918201928201910280838360005b838110156105e65781810151838201526020016105ce565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008115806106675750508082028282828161066457fe5b04145b6106af576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b808203828111156106af576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b60006003821115610748575080600160028204015b818110156107425780915060028182858161073157fe5b04018161073a57fe5b04905061071a565b50610752565b8115610752575060015b919050565b60008060006107668585610b7a565b509050600080610777888888610c58565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d60608110156107d957600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614610813578082610816565b81815b90999098509650505050505050565b6000806108328484610b7a565b509050610840858585610c58565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d60208110156108a257600080fd5b505163ffffffff1695945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106109385780518252601f199092019160209182019101610919565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461099a576040519150601f19603f3d011682016040523d82523d6000602084013e61099f565b606091505b50915091508180156109cd5750805115806109cd57508080602001905160208110156109ca57600080fd5b50515b610a085760405162461bcd60e51b8152600401808060200182810382526024815260200180610d3b6024913960400191505060405180910390fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310610a8d5780518252601f199092019160209182019101610a6e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5091509150818015610b22575080511580610b225750808060200190516020811015610b1f57600080fd5b50515b610b73576040805162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b5050505050565b600080826001600160a01b0316846001600160a01b03161415610bce5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d196022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610bee578284610bf1565b83835b90925090506001600160a01b038216610c51576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6000806000610c678585610b7a565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd90920190975280519601959095209594505050505056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220d876890f27d1e389238a7b0583eb728a8ca4c39e10c963fb2cb2a11d552052d164736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x98F1254A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBEF90FD3 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xF887EA40 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x124 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 ISZERO ISZERO DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x228 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x100 PUSH2 0x604 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH2 0x628 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP5 PUSH2 0x139 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x140 JUMPI INVALID JUMPDEST DIV LT SWAP2 POP PUSH1 0x0 PUSH2 0x156 DUP7 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1BB PUSH2 0x18B PUSH2 0x172 PUSH2 0x2710 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST DUP7 PUSH2 0x17D JUMPI DUP12 PUSH2 0x17F JUMP JUMPDEST DUP11 JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH2 0x1AE PUSH2 0x2710 PUSH2 0x17F DUP9 PUSH2 0x19F JUMPI DUP13 PUSH2 0x1A1 JUMP JUMPDEST DUP14 JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x1B5 JUMPI INVALID JUMPDEST DIV PUSH2 0x705 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D1 PUSH2 0x2710 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST DUP6 PUSH2 0x1ED JUMPI PUSH2 0x1E8 DUP9 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH2 0x1FF JUMP JUMPDEST PUSH2 0x1FF DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x206 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x219 DUP3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST DUP6 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x236 JUMPI POP DUP5 ISZERO ISZERO JUMPDEST PUSH2 0x287 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C6553776170546F50726963653A205A45524F5F50524943450000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 ISZERO ISZERO DUP1 PUSH2 0x294 JUMPI POP DUP3 ISZERO ISZERO JUMPDEST PUSH2 0x2E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C6553776170546F50726963653A205A45524F5F5350454E440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x316 PUSH32 0x0 DUP14 DUP14 PUSH2 0x757 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x347 PUSH32 0x0 DUP15 DUP15 PUSH2 0x825 JUMP JUMPDEST SWAP1 POP PUSH2 0x356 DUP12 DUP12 DUP6 DUP6 DUP6 PUSH2 0x124 JUMP JUMPDEST DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP POP POP POP PUSH1 0x0 DUP3 PUSH2 0x36E JUMPI DUP6 PUSH2 0x370 JUMP JUMPDEST DUP7 JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x37E JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x38B JUMPI DUP11 PUSH2 0x38D JUMP JUMPDEST DUP12 JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 PUSH2 0x39C JUMPI DUP13 PUSH2 0x39E JUMP JUMPDEST DUP12 JUMPDEST SWAP1 POP PUSH2 0x3AC DUP3 CALLER ADDRESS DUP8 PUSH2 0x8B3 JUMP JUMPDEST PUSH2 0x3D7 DUP3 PUSH32 0x0 DUP7 PUSH2 0xA10 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP1 DUP4 ADD DUP5 MSTORE SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x405 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP DUP2 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x433 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 DUP7 PUSH1 0x0 DUP5 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x501 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4E9 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x53E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x59C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5E6 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5CE JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x667 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x664 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x6AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x6AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x748 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x742 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x731 JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x73A JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x71A JUMP JUMPDEST POP PUSH2 0x752 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x752 JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x766 DUP6 DUP6 PUSH2 0xB7A JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x777 DUP9 DUP9 DUP9 PUSH2 0xC58 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x813 JUMPI DUP1 DUP3 PUSH2 0x816 JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x832 DUP5 DUP5 PUSH2 0xB7A JUMP JUMPDEST POP SWAP1 POP PUSH2 0x840 DUP6 DUP6 DUP6 PUSH2 0xC58 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x938 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x919 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x99A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x99F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x9CD JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x9CD JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0xA08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xD3B PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA8D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xAEF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xAF4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0xB22 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0xB22 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0xB73 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A20415050524F56455F4641494C45440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xD19 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0xBEE JUMPI DUP3 DUP5 PUSH2 0xBF1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC51 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC67 DUP6 DUP6 PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD8 PUSH23 0x890F27D1E389238A7B0583EB728A8CA4C39E10C963FB2C 0xB2 LOG1 SAR SSTORE KECCAK256 MSTORE 0xD1 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "320:3322:9:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;320:3322:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;671:850:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;671:850:9;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1795:1845;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;1795:1845:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;430:32;;;:::i;:::-;;;;-1:-1:-1;;;;;430:32:9;;;;;;;;;;;;;;387:37;;;:::i;671:850::-;879:9;;968:15;957:8;925:29;:8;938:15;925:29;:12;:29;:::i;:::-;:40;;;;;;:58;;-1:-1:-1;994:17:9;1014:22;:8;1027;1014:22;:12;:22;:::i;:::-;994:42;-1:-1:-1;1047:16:9;1066:199;1176:79;1230:24;1235:5;1246:7;1230:24;:15;:24;:::i;:::-;1184:4;:40;;1209:15;1184:40;;;1191:15;1184:40;1176:53;:79;:53;:79;:::i;:::-;1095:66;1155:5;1095:55;1109:4;:40;;1134:15;1109:40;;;1116:15;1109:40;1095:9;;:55;:13;:55;:::i;:66::-;:160;;;;;;1066:15;:199::i;:::-;1047:218;-1:-1:-1;1275:17:9;1348:24;1353:5;1364:7;1348:24;:15;:24;:::i;:::-;1296:4;:48;;1325:19;:8;1338:5;1325:19;:12;:19;:::i;:::-;1296:48;;;1303:19;:8;1316:5;1303:19;:12;:19;:::i;:::-;1295:77;;;;;;;-1:-1:-1;1491:23:9;:8;1295:77;1491:23;:12;:23;:::i;:::-;1480:34;;671:850;;;;;;;;;;;:::o;1795:1845::-;2150:20;;;;;:44;;-1:-1:-1;2174:20:9;;;2150:44;2142:87;;;;;-1:-1:-1;;;2142:87:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2347:19;;;;:42;;-1:-1:-1;2370:19:9;;;2347:42;2339:85;;;;;-1:-1:-1;;;2339:85:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2435:9;2454:16;2495;2513;2533:50;2559:7;2568:6;2576;2533:25;:50::i;:::-;2494:89;;;;2597:15;2615:49;2640:7;2649:6;2657;2615:24;:49::i;:::-;2597:67;;2697:137;2743:15;2760;2793:8;2803;2813:7;2697:28;:137::i;:::-;2678:156;;;;;;;;1795:1845;;;2908:16;2927:4;:38;;2951:14;2927:38;;;2934:14;2927:38;2908:57;;2990:8;2979;:19;2975:69;;;3025:8;3014:19;;2975:69;3054:15;3072:4;:22;;3088:6;3072:22;;;3079:6;3072:22;3054:40;;3104:16;3123:4;:22;;3139:6;3123:22;;;3130:6;3123:22;3104:41;;3155:77;3187:7;3196:10;3216:4;3223:8;3155:31;:77::i;:::-;3242:62;3269:7;3286:6;3295:8;3242:26;:62::i;:::-;3339:16;;;3353:1;3339:16;;;3315:21;3339:16;;;;;3315:21;3339:16;;;;;109:14:-1;3339:16:9;88:42:-1;144:17;;-1:-1;3339:16:9;3315:40;;3375:7;3365:4;3370:1;3365:7;;;;;;;;;;;;;:17;-1:-1:-1;;;;;3365:17:9;;;-1:-1:-1;;;;;3365:17:9;;;;;3402:8;3392:4;3397:1;3392:7;;;;;;;;;;;;;:18;-1:-1:-1;;;;;3392:18:9;;;-1:-1:-1;;;;;3392:18:9;;;;;3421:6;-1:-1:-1;;;;;3421:31:9;;3466:8;3488:1;3581:4;3599:2;3615:8;3421:212;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3421:212:9;-1:-1:-1;;;;;3421:212:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3421:212:9;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3421:212:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3421:212:9;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3421:212:9;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;15:2;7:11;;4:2;;;31:1;28;21:12;4:2;3421:212:9;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;3421:212:9;;421:4:-1;412:14;;;;3421:212:9;;;;;412:14:-1;3421:212:9;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3421:212:9;;;;;;;;;;;;1795:1845;;;;;;;;;;;;;;:::o;430:32::-;;;:::o;387:37::-;;;:::o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;;;;419:140;;;;:::o;286:127::-;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;189:314:17;234:6;260:1;256;:5;252:223;;;-1:-1:-1;281:1:17;313;309;305:5;;:9;328:89;339:1;335;:5;328:89;;;364:1;360:5;;401:1;396;392;388;:5;;;;;;:9;387:15;;;;;;383:19;;328:89;;;252:223;;;;437:6;;433:42;;-1:-1:-1;463:1:17;433:42;189:314;;;:::o;1203:384:18:-;1296:13;1311;1337:14;1356:26;1367:6;1375;1356:10;:26::i;:::-;1336:46;;;1393:13;1408;1438:32;1446:7;1455:6;1463;1438:7;:32::i;:::-;-1:-1:-1;;;;;1426:57:18;;:59;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1426:59:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1426:59:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1426:59:18;;;;;;;1392:93;;;;;-1:-1:-1;1392:93:18;;-1:-1:-1;;;;;;1518:16:18;;;;;;;:62;;1561:8;1571;1518:62;;;1538:8;1548;1518:62;1495:85;;;;-1:-1:-1;1203:384:18;-1:-1:-1;;;;;;;1203:384:18:o;1646:244::-;1738:12;1763:14;1782:26;1793:6;1801;1782:10;:26::i;:::-;1762:46;;;1840:32;1848:7;1857:6;1865;1840:7;:32::i;:::-;-1:-1:-1;;;;;1828:53:18;;:55;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1828:55:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1828:55:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1828:55:18;1818:65;;;1646:244;-1:-1:-1;;;;;1646:244:18:o;889:398:24:-;1112:51;;;-1:-1:-1;;;;;1112:51:24;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1112:51:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1101:63:24;;;;1066:12;;1080:17;;1101:10;;;;1112:51;1101:63;;;25:18:-1;1101:63:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1101:63:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1065:99:24;;;;1182:7;:57;;;;-1:-1:-1;1194:11:24;;:16;;:44;;;1225:4;1214:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1214:24:24;1194:44;1174:106;;;;-1:-1:-1;;;1174:106:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:398;;;;;;:::o;166:354::-;357:45;;;-1:-1:-1;;;;;357:45:24;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;357:45:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;346:57:24;;;;311:12;;325:17;;346:10;;;;357:45;346:57;;;25:18:-1;346:57:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;346:57:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;310:93:24;;;;421:7;:57;;;;-1:-1:-1;433:11:24;;:16;;:44;;;464:4;453:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;453:24:24;433:44;413:100;;;;;-1:-1:-1;;;413:100:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;166:354;;;;;:::o;270:339:18:-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;698:450::-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory_", - "type": "address" - }, - { - "internalType": "contract IDXswapRouter", - "name": "router_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "truePriceTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "truePriceTokenB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "computeProfitMaximizingTrade", - "outputs": [ - { - "internalType": "bool", - "name": "aToB", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "router", - "outputs": [ - { - "internalType": "contract IDXswapRouter", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "truePriceTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "truePriceTokenB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxSpendTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxSpendTokenB", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapToPrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "60c060405234801561001057600080fd5b50604051610e26380380610e268339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b811660a052911b1660805260805160601c60a05160601c610d94610092600039806102f0528061032152806106065250806103b25280610455528061062a5250610d946000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806398f1254a14610051578063bef90fd3146100a1578063c45a0155146100f8578063f887ea401461011c575b600080fd5b610086600480360360a081101561006757600080fd5b5080359060208101359060408101359060608101359060800135610124565b60408051921515835260208301919091528051918290030190f35b6100f660048036036101008110156100b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135610228565b005b610100610604565b604080516001600160a01b039092168252519081900360200190f35b610100610628565b6000808684610139878963ffffffff61064c16565b8161014057fe5b041091506000610156868663ffffffff61064c16565b905060006101bb61018b6101726127108863ffffffff6106b516565b8661017d578b61017f565b8a5b9063ffffffff61064c16565b6101ae61271061017f8861019f578c6101a1565b8d5b879063ffffffff61064c16565b816101b557fe5b04610705565b905060006101d16127108763ffffffff6106b516565b856101ed576101e88861271063ffffffff61064c16565b6101ff565b6101ff8961271063ffffffff61064c16565b8161020657fe5b049050610219828263ffffffff6106b516565b93505050509550959350505050565b851580159061023657508415155b610287576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061029457508215155b6102e5576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806103167f00000000000000000000000000000000000000000000000000000000000000008d8d610757565b9150915060006103477f00000000000000000000000000000000000000000000000000000000000000008e8e610825565b90506103568b8b858585610124565b809550819650505050505060008261036e5785610370565b865b90508082111561037e578091505b60008361038b578a61038d565b8b5b905060008461039c578c61039e565b8b5b90506103ac823330876108b3565b6103d7827f000000000000000000000000000000000000000000000000000000000000000086610a10565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061040557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811061043357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338ed1739866000848c8c6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156105015781810151838201526020016104e9565b505050509050019650505050505050600060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056757600080fd5b810190808051604051939291908464010000000082111561058757600080fd5b90830190602082018581111561059c57600080fd5b82518660208202830111640100000000821117156105b957600080fd5b82525081516020918201928201910280838360005b838110156105e65781810151838201526020016105ce565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008115806106675750508082028282828161066457fe5b04145b6106af576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b808203828111156106af576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b60006003821115610748575080600160028204015b818110156107425780915060028182858161073157fe5b04018161073a57fe5b04905061071a565b50610752565b8115610752575060015b919050565b60008060006107668585610b7a565b509050600080610777888888610c58565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d60608110156107d957600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614610813578082610816565b81815b90999098509650505050505050565b6000806108328484610b7a565b509050610840858585610c58565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d60208110156108a257600080fd5b505163ffffffff1695945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106109385780518252601f199092019160209182019101610919565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461099a576040519150601f19603f3d011682016040523d82523d6000602084013e61099f565b606091505b50915091508180156109cd5750805115806109cd57508080602001905160208110156109ca57600080fd5b50515b610a085760405162461bcd60e51b8152600401808060200182810382526024815260200180610d3b6024913960400191505060405180910390fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310610a8d5780518252601f199092019160209182019101610a6e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5091509150818015610b22575080511580610b225750808060200190516020811015610b1f57600080fd5b50515b610b73576040805162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b5050505050565b600080826001600160a01b0316846001600160a01b03161415610bce5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d196022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610bee578284610bf1565b83835b90925090506001600160a01b038216610c51576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6000806000610c678585610b7a565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd90920190975280519601959095209594505050505056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220d876890f27d1e389238a7b0583eb728a8ca4c39e10c963fb2cb2a11d552052d164736f6c63430006060033", - "bin": "60c060405234801561001057600080fd5b50604051610e26380380610e268339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b811660a052911b1660805260805160601c60a05160601c610d94610092600039806102f0528061032152806106065250806103b25280610455528061062a5250610d946000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806398f1254a14610051578063bef90fd3146100a1578063c45a0155146100f8578063f887ea401461011c575b600080fd5b610086600480360360a081101561006757600080fd5b5080359060208101359060408101359060608101359060800135610124565b60408051921515835260208301919091528051918290030190f35b6100f660048036036101008110156100b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135610228565b005b610100610604565b604080516001600160a01b039092168252519081900360200190f35b610100610628565b6000808684610139878963ffffffff61064c16565b8161014057fe5b041091506000610156868663ffffffff61064c16565b905060006101bb61018b6101726127108863ffffffff6106b516565b8661017d578b61017f565b8a5b9063ffffffff61064c16565b6101ae61271061017f8861019f578c6101a1565b8d5b879063ffffffff61064c16565b816101b557fe5b04610705565b905060006101d16127108763ffffffff6106b516565b856101ed576101e88861271063ffffffff61064c16565b6101ff565b6101ff8961271063ffffffff61064c16565b8161020657fe5b049050610219828263ffffffff6106b516565b93505050509550959350505050565b851580159061023657508415155b610287576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061029457508215155b6102e5576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806103167f00000000000000000000000000000000000000000000000000000000000000008d8d610757565b9150915060006103477f00000000000000000000000000000000000000000000000000000000000000008e8e610825565b90506103568b8b858585610124565b809550819650505050505060008261036e5785610370565b865b90508082111561037e578091505b60008361038b578a61038d565b8b5b905060008461039c578c61039e565b8b5b90506103ac823330876108b3565b6103d7827f000000000000000000000000000000000000000000000000000000000000000086610a10565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061040557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811061043357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338ed1739866000848c8c6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156105015781810151838201526020016104e9565b505050509050019650505050505050600060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056757600080fd5b810190808051604051939291908464010000000082111561058757600080fd5b90830190602082018581111561059c57600080fd5b82518660208202830111640100000000821117156105b957600080fd5b82525081516020918201928201910280838360005b838110156105e65781810151838201526020016105ce565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008115806106675750508082028282828161066457fe5b04145b6106af576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b808203828111156106af576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b60006003821115610748575080600160028204015b818110156107425780915060028182858161073157fe5b04018161073a57fe5b04905061071a565b50610752565b8115610752575060015b919050565b60008060006107668585610b7a565b509050600080610777888888610c58565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d60608110156107d957600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614610813578082610816565b81815b90999098509650505050505050565b6000806108328484610b7a565b509050610840858585610c58565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d60208110156108a257600080fd5b505163ffffffff1695945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106109385780518252601f199092019160209182019101610919565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461099a576040519150601f19603f3d011682016040523d82523d6000602084013e61099f565b606091505b50915091508180156109cd5750805115806109cd57508080602001905160208110156109ca57600080fd5b50515b610a085760405162461bcd60e51b8152600401808060200182810382526024815260200180610d3b6024913960400191505060405180910390fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310610a8d5780518252601f199092019160209182019101610a6e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5091509150818015610b22575080511580610b225750808060200190516020811015610b1f57600080fd5b50515b610b73576040805162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b5050505050565b600080826001600160a01b0316846001600160a01b03161415610bce5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d196022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610bee578284610bf1565b83835b90925090506001600160a01b038216610c51576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6000806000610c678585610b7a565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd90920190975280519601959095209594505050505056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220d876890f27d1e389238a7b0583eb728a8ca4c39e10c963fb2cb2a11d552052d164736f6c63430006060033", - "bin-runtime": "608060405234801561001057600080fd5b506004361061004c5760003560e01c806398f1254a14610051578063bef90fd3146100a1578063c45a0155146100f8578063f887ea401461011c575b600080fd5b610086600480360360a081101561006757600080fd5b5080359060208101359060408101359060608101359060800135610124565b60408051921515835260208301919091528051918290030190f35b6100f660048036036101008110156100b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135610228565b005b610100610604565b604080516001600160a01b039092168252519081900360200190f35b610100610628565b6000808684610139878963ffffffff61064c16565b8161014057fe5b041091506000610156868663ffffffff61064c16565b905060006101bb61018b6101726127108863ffffffff6106b516565b8661017d578b61017f565b8a5b9063ffffffff61064c16565b6101ae61271061017f8861019f578c6101a1565b8d5b879063ffffffff61064c16565b816101b557fe5b04610705565b905060006101d16127108763ffffffff6106b516565b856101ed576101e88861271063ffffffff61064c16565b6101ff565b6101ff8961271063ffffffff61064c16565b8161020657fe5b049050610219828263ffffffff6106b516565b93505050509550959350505050565b851580159061023657508415155b610287576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061029457508215155b6102e5576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806103167f00000000000000000000000000000000000000000000000000000000000000008d8d610757565b9150915060006103477f00000000000000000000000000000000000000000000000000000000000000008e8e610825565b90506103568b8b858585610124565b809550819650505050505060008261036e5785610370565b865b90508082111561037e578091505b60008361038b578a61038d565b8b5b905060008461039c578c61039e565b8b5b90506103ac823330876108b3565b6103d7827f000000000000000000000000000000000000000000000000000000000000000086610a10565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061040557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811061043357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338ed1739866000848c8c6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156105015781810151838201526020016104e9565b505050509050019650505050505050600060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056757600080fd5b810190808051604051939291908464010000000082111561058757600080fd5b90830190602082018581111561059c57600080fd5b82518660208202830111640100000000821117156105b957600080fd5b82525081516020918201928201910280838360005b838110156105e65781810151838201526020016105ce565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008115806106675750508082028282828161066457fe5b04145b6106af576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b808203828111156106af576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b60006003821115610748575080600160028204015b818110156107425780915060028182858161073157fe5b04018161073a57fe5b04905061071a565b50610752565b8115610752575060015b919050565b60008060006107668585610b7a565b509050600080610777888888610c58565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d60608110156107d957600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614610813578082610816565b81815b90999098509650505050505050565b6000806108328484610b7a565b509050610840858585610c58565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d60208110156108a257600080fd5b505163ffffffff1695945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106109385780518252601f199092019160209182019101610919565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461099a576040519150601f19603f3d011682016040523d82523d6000602084013e61099f565b606091505b50915091508180156109cd5750805115806109cd57508080602001905160208110156109ca57600080fd5b50515b610a085760405162461bcd60e51b8152600401808060200182810382526024815260200180610d3b6024913960400191505060405180910390fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310610a8d5780518252601f199092019160209182019101610a6e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5091509150818015610b22575080511580610b225750808060200190516020811015610b1f57600080fd5b50515b610b73576040805162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b5050505050565b600080826001600160a01b0316846001600160a01b03161415610bce5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d196022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610bee578284610bf1565b83835b90925090506001600160a01b038216610c51576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6000806000610c678585610b7a565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd90920190975280519601959095209594505050505056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220d876890f27d1e389238a7b0583eb728a8ca4c39e10c963fb2cb2a11d552052d164736f6c63430006060033", - "srcmap": "320:3322:9:-:0;;;469:121;5:9:-1;2:2;;;27:1;24;17:12;2:2;469:121:9;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;469:121:9;;;;;;;-1:-1:-1;;;;;;539:18:9;;;;;;;;567:16;;;;;320:3322;;;;;;;;;;;;;;;;", - "srcmap-runtime": "320:3322:9:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;320:3322:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;671:850:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;671:850:9;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1795:1845;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;1795:1845:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;430:32;;;:::i;:::-;;;;-1:-1:-1;;;;;430:32:9;;;;;;;;;;;;;;387:37;;;:::i;671:850::-;879:9;;968:15;957:8;925:29;:8;938:15;925:29;:12;:29;:::i;:::-;:40;;;;;;:58;;-1:-1:-1;994:17:9;1014:22;:8;1027;1014:22;:12;:22;:::i;:::-;994:42;-1:-1:-1;1047:16:9;1066:199;1176:79;1230:24;1235:5;1246:7;1230:24;:15;:24;:::i;:::-;1184:4;:40;;1209:15;1184:40;;;1191:15;1184:40;1176:53;:79;:53;:79;:::i;:::-;1095:66;1155:5;1095:55;1109:4;:40;;1134:15;1109:40;;;1116:15;1109:40;1095:9;;:55;:13;:55;:::i;:66::-;:160;;;;;;1066:15;:199::i;:::-;1047:218;-1:-1:-1;1275:17:9;1348:24;1353:5;1364:7;1348:24;:15;:24;:::i;:::-;1296:4;:48;;1325:19;:8;1338:5;1325:19;:12;:19;:::i;:::-;1296:48;;;1303:19;:8;1316:5;1303:19;:12;:19;:::i;:::-;1295:77;;;;;;;-1:-1:-1;1491:23:9;:8;1295:77;1491:23;:12;:23;:::i;:::-;1480:34;;671:850;;;;;;;;;;;:::o;1795:1845::-;2150:20;;;;;:44;;-1:-1:-1;2174:20:9;;;2150:44;2142:87;;;;;-1:-1:-1;;;2142:87:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2347:19;;;;:42;;-1:-1:-1;2370:19:9;;;2347:42;2339:85;;;;;-1:-1:-1;;;2339:85:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2435:9;2454:16;2495;2513;2533:50;2559:7;2568:6;2576;2533:25;:50::i;:::-;2494:89;;;;2597:15;2615:49;2640:7;2649:6;2657;2615:24;:49::i;:::-;2597:67;;2697:137;2743:15;2760;2793:8;2803;2813:7;2697:28;:137::i;:::-;2678:156;;;;;;;;1795:1845;;;2908:16;2927:4;:38;;2951:14;2927:38;;;2934:14;2927:38;2908:57;;2990:8;2979;:19;2975:69;;;3025:8;3014:19;;2975:69;3054:15;3072:4;:22;;3088:6;3072:22;;;3079:6;3072:22;3054:40;;3104:16;3123:4;:22;;3139:6;3123:22;;;3130:6;3123:22;3104:41;;3155:77;3187:7;3196:10;3216:4;3223:8;3155:31;:77::i;:::-;3242:62;3269:7;3286:6;3295:8;3242:26;:62::i;:::-;3339:16;;;3353:1;3339:16;;;3315:21;3339:16;;;;;3315:21;3339:16;;;;;109:14:-1;3339:16:9;88:42:-1;144:17;;-1:-1;3339:16:9;3315:40;;3375:7;3365:4;3370:1;3365:7;;;;;;;;;;;;;:17;-1:-1:-1;;;;;3365:17:9;;;-1:-1:-1;;;;;3365:17:9;;;;;3402:8;3392:4;3397:1;3392:7;;;;;;;;;;;;;:18;-1:-1:-1;;;;;3392:18:9;;;-1:-1:-1;;;;;3392:18:9;;;;;3421:6;-1:-1:-1;;;;;3421:31:9;;3466:8;3488:1;3581:4;3599:2;3615:8;3421:212;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3421:212:9;-1:-1:-1;;;;;3421:212:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3421:212:9;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3421:212:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3421:212:9;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3421:212:9;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;15:2;7:11;;4:2;;;31:1;28;21:12;4:2;3421:212:9;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;3421:212:9;;421:4:-1;412:14;;;;3421:212:9;;;;;412:14:-1;3421:212:9;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3421:212:9;;;;;;;;;;;;1795:1845;;;;;;;;;;;;;;:::o;430:32::-;;;:::o;387:37::-;;;:::o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;;;;419:140;;;;:::o;286:127::-;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;189:314:17;234:6;260:1;256;:5;252:223;;;-1:-1:-1;281:1:17;313;309;305:5;;:9;328:89;339:1;335;:5;328:89;;;364:1;360:5;;401:1;396;392;388;:5;;;;;;:9;387:15;;;;;;383:19;;328:89;;;252:223;;;;437:6;;433:42;;-1:-1:-1;463:1:17;433:42;189:314;;;:::o;1203:384:18:-;1296:13;1311;1337:14;1356:26;1367:6;1375;1356:10;:26::i;:::-;1336:46;;;1393:13;1408;1438:32;1446:7;1455:6;1463;1438:7;:32::i;:::-;-1:-1:-1;;;;;1426:57:18;;:59;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1426:59:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1426:59:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1426:59:18;;;;;;;1392:93;;;;;-1:-1:-1;1392:93:18;;-1:-1:-1;;;;;;1518:16:18;;;;;;;:62;;1561:8;1571;1518:62;;;1538:8;1548;1518:62;1495:85;;;;-1:-1:-1;1203:384:18;-1:-1:-1;;;;;;;1203:384:18:o;1646:244::-;1738:12;1763:14;1782:26;1793:6;1801;1782:10;:26::i;:::-;1762:46;;;1840:32;1848:7;1857:6;1865;1840:7;:32::i;:::-;-1:-1:-1;;;;;1828:53:18;;:55;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1828:55:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1828:55:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1828:55:18;1818:65;;;1646:244;-1:-1:-1;;;;;1646:244:18:o;889:398:24:-;1112:51;;;-1:-1:-1;;;;;1112:51:24;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1112:51:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1101:63:24;;;;1066:12;;1080:17;;1101:10;;;;1112:51;1101:63;;;25:18:-1;1101:63:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1101:63:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1065:99:24;;;;1182:7;:57;;;;-1:-1:-1;1194:11:24;;:16;;:44;;;1225:4;1214:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1214:24:24;1194:44;1174:106;;;;-1:-1:-1;;;1174:106:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:398;;;;;;:::o;166:354::-;357:45;;;-1:-1:-1;;;;;357:45:24;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;357:45:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;346:57:24;;;;311:12;;325:17;;346:10;;;;357:45;346:57;;;25:18:-1;346:57:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;346:57:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;310:93:24;;;;421:7;:57;;;;-1:-1:-1;433:11:24;;:16;;:44;;;464:4;453:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;453:24:24;433:44;413:100;;;;;-1:-1:-1;;;413:100:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;166:354;;;;;:::o;270:339:18:-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;698:450::-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o" - }, - "contracts/examples/OracleCreator.sol:OracleCreator": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_oracleIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_windowTime", - "type": "uint256" - } - ], - "name": "OracleCreated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oracleIndex", - "type": "uint256" - }, - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "windowTime", - "type": "uint256" - }, - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "name": "createOracle", - "outputs": [ - { - "internalType": "uint256", - "name": "oracleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oracleIndex", - "type": "uint256" - } - ], - "name": "getOracleDetails", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "windowTime", - "type": "uint256" - }, - { - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "internalType": "contract IDXswapPair", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "price0CumulativeLast", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price1CumulativeLast", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "internalType": "struct FixedPoint.uq112x112", - "name": "price0Average", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "internalType": "struct FixedPoint.uq112x112", - "name": "price1Average", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "observationsCount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "internalType": "struct OracleCreator.Oracle", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oracleIndex", - "type": "uint256" - } - ], - "name": "isOracleFinalized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "oracles", - "outputs": [ - { - "internalType": "uint256", - "name": "windowTime", - "type": "uint256" - }, - { - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "internalType": "contract IDXswapPair", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "price0CumulativeLast", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price1CumulativeLast", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "internalType": "struct FixedPoint.uq112x112", - "name": "price0Average", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "internalType": "struct FixedPoint.uq112x112", - "name": "price1Average", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "observationsCount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oraclesIndex", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oracleIndex", - "type": "uint256" - } - ], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50611100806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80634023282b1161005b5780634023282b146100d35780635b69a7d8146100e657806382ab890a14610110578063c6668d45146101255761007d565b806306649d67146100825780630eb5295f146100ab57806325fa7003146100b3575b600080fd5b610095610090366004610d6c565b610145565b6040516100a29190611028565b60405180910390f35b61009561055c565b6100c66100c1366004610d3c565b610562565b6040516100a29190610df7565b6100956100e1366004610d9b565b61057a565b6100f96100f4366004610d3c565b610654565b6040516100a29b9a99989796959493929190611031565b61012361011e366004610d3c565b6106e8565b005b610138610133366004610d3c565b61088a565b6040516100a29190610f70565b6000808290506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561018657600080fd5b505afa15801561019a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101be9190610cc5565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156101fb57600080fd5b505afa15801561020f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102339190610cc5565b90506000836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561027057600080fd5b505afa158015610284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a89190610ce8565b92505050604051806101600160405280888152602001846001600160a01b03168152602001836001600160a01b03168152602001856001600160a01b031681526020018263ffffffff168152602001856001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561033057600080fd5b505afa158015610344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103689190610d54565b8152602001856001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b1580156103a657600080fd5b505afa1580156103ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103de9190610d54565b81526040805160208181018352600080835281850192909252825180820184528281528385015260608085018390523360809586015260018054845283835292849020865181559186015182840180546001600160a01b039283166001600160a01b03199182161790915587860151600285018054918416918316919091179055918701516003840180549789015163ffffffff16600160a01b0263ffffffff60a01b1992841698851698909817919091169690961790955560a0860151600483015560c0860151600583015560e0860151516006830180546001600160e01b039283166001600160e01b0319918216179091556101008801515160078501805491909316911617905561012086015160088301556101409095015160099091018054918516919095161790935582548084019093555191965085169086907ffe5474489c150632f13da433a8fbebd5e91fe495940c6776c0b3934f5f636c509061054a908b90611028565b60405180910390a35050505092915050565b60015481565b60009081526020819052604090206008015460021490565b6000838152602081905260408120610590610c19565b60018201546001600160a01b03868116911614156105c95750604080516020810190915260068201546001600160e01b0316815261061e565b60028201546001600160a01b038681169116146106015760405162461bcd60e51b81526004016105f890610e39565b60405180910390fd5b50604080516020810190915260078201546001600160e01b031681525b610636610631828663ffffffff61095916565b6109b8565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b600060208181529181526040908190208054600182015460028301546003840154600485015460058601548751808a01895260068801546001600160e01b03908116825289519a8b0190995260078801549098168952600887015460099097015495986001600160a01b03958616989486169786851697600160a01b90950463ffffffff169693959294929391929091168b565b600081815260208190526040902060098101546001600160a01b031633146107225760405162461bcd60e51b81526004016105f890610e02565b60028160080154106107465760405162461bcd60e51b81526004016105f890610f2b565b600381015460009081908190610764906001600160a01b03166109bf565b600387015460088801549396509194509250600160a01b900463ffffffff1682039015806107995750845463ffffffff821610155b6107b55760405162461bcd60e51b81526004016105f890610eb3565b60405180602001604052808263ffffffff1687600401548703816107d557fe5b046001600160e01b0390811690915290516006870180546001600160e01b0319169190921617905560408051602081019091526005860154819063ffffffff84169086038161082057fe5b046001600160e01b0390811690915290516007870180546001600160e01b03191691909216179055506004840192909255600583015560038201805463ffffffff60a01b1916600160a01b63ffffffff909316929092029190911790556008018054600101905550565b610892610c2b565b50600090815260208181526040918290208251610160810184528154815260018201546001600160a01b0390811682850152600283015481168286015260038301548082166060840152600160a01b900463ffffffff166080830152600483015460a0830152600583015460c08301528451808501865260068401546001600160e01b03908116825260e084019190915285519485019095526007830154909416835261010081019290925260088101546101208301526009015490911661014082015290565b610961610cb2565b600082158061098757505082516001600160e01b03168281029083828161098457fe5b04145b6109a35760405162461bcd60e51b81526004016105f890610e70565b60408051602081019091529081529392505050565b5160701c90565b60008060006109cc610b94565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0757600080fd5b505afa158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f9190610d54565b9250836001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7a57600080fd5b505afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab29190610d54565b91506000806000866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610af257600080fd5b505afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190610ce8565b9250925092508363ffffffff168163ffffffff1614610b8a5780840363ffffffff8116610b578486610b9e565b516001600160e01b031602969096019563ffffffff8116610b788585610b9e565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b610ba6610c19565b6000826001600160701b031611610bcf5760405162461bcd60e51b81526004016105f890610ef4565b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610c0457fe5b046001600160e01b0316815250905092915050565b60408051602081019091526000815290565b6040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600063ffffffff1681526020016000815260200160008152602001610c91610c19565b8152602001610c9e610c19565b815260006020820181905260409091015290565b6040518060200160405280600081525090565b600060208284031215610cd6578081fd5b8151610ce18161109d565b9392505050565b600080600060608486031215610cfc578182fd5b8351610d07816110b5565b6020850151909350610d18816110b5565b604085015190925063ffffffff81168114610d31578182fd5b809150509250925092565b600060208284031215610d4d578081fd5b5035919050565b600060208284031215610d65578081fd5b5051919050565b60008060408385031215610d7e578182fd5b823591506020830135610d908161109d565b809150509250929050565b600080600060608486031215610daf578283fd5b833592506020840135610dc18161109d565b929592945050506040919091013590565b6001600160a01b03169052565b516001600160e01b03169052565b63ffffffff169052565b901515815260200190565b6020808252601f908201527f4f7261636c6543726561746f723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252601c908201527f4f7261636c6543726561746f723a20494e56414c49445f544f4b454e00000000604082015260600190565b60208082526023908201527f4669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552466040820152624c4f5760e81b606082015260800190565b60208082526021908201527f4f7261636c6543726561746f723a20504552494f445f4e4f545f454c415053456040820152601160fa1b606082015260800190565b60208082526017908201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604082015260600190565b60208082526025908201527f4f7261636c6543726561746f723a2046494e49534845445f4f4245525345525660408201526420aa24a7a760d91b606082015260800190565b81518152602080830151610160830191610f8c90840182610dd2565b506040830151610f9f6040840182610dd2565b506060830151610fb26060840182610dd2565b506080830151610fc56080840182610ded565b5060a083015160a083015260c083015160c083015260e0830151610fec60e0840182610ddf565b506101008084015161100082850182610ddf565b505061012083810151908301526101408084015161102082850182610dd2565b505092915050565b90815260200190565b9a8b526001600160a01b03998a1660208c015297891660408b015295881660608a015263ffffffff94909416608089015260a088019290925260c0870152516001600160e01b0390811660e0870152905116610100850152610120840152166101408201526101600190565b6001600160a01b03811681146110b257600080fd5b50565b6001600160701b03811681146110b257600080fdfea26469706673582212204e7a74c82834f93ac8011317dd95e71a56a7f1354095b6f78728d03e10c3347464736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1100 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4023282B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x4023282B EQ PUSH2 0xD3 JUMPI DUP1 PUSH4 0x5B69A7D8 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x82AB890A EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0xC6668D45 EQ PUSH2 0x125 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x6649D67 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0xEB5295F EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x25FA7003 EQ PUSH2 0xB3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0xD6C JUMP JUMPDEST PUSH2 0x145 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x1028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0x55C JUMP JUMPDEST PUSH2 0xC6 PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0xDF7 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xE1 CALLDATASIZE PUSH1 0x4 PUSH2 0xD9B JUMP JUMPDEST PUSH2 0x57A JUMP JUMPDEST PUSH2 0xF9 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1031 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x6E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x138 PUSH2 0x133 CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x88A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0xF70 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x233 SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x284 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x344 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x368 SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5A3D5493 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3DE SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE DUP2 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 MLOAD DUP1 DUP3 ADD DUP5 MSTORE DUP3 DUP2 MSTORE DUP4 DUP6 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE CALLER PUSH1 0x80 SWAP6 DUP7 ADD MSTORE PUSH1 0x1 DUP1 SLOAD DUP5 MSTORE DUP4 DUP4 MSTORE SWAP3 DUP5 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SSTORE SWAP2 DUP7 ADD MLOAD DUP3 DUP5 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE DUP8 DUP7 ADD MLOAD PUSH1 0x2 DUP6 ADD DUP1 SLOAD SWAP2 DUP5 AND SWAP2 DUP4 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE SWAP2 DUP8 ADD MLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD SWAP8 DUP10 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT SWAP3 DUP5 AND SWAP9 DUP6 AND SWAP9 SWAP1 SWAP9 OR SWAP2 SWAP1 SWAP2 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x4 DUP4 ADD SSTORE PUSH1 0xC0 DUP7 ADD MLOAD PUSH1 0x5 DUP4 ADD SSTORE PUSH1 0xE0 DUP7 ADD MLOAD MLOAD PUSH1 0x6 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH2 0x100 DUP9 ADD MLOAD MLOAD PUSH1 0x7 DUP6 ADD DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE PUSH2 0x120 DUP7 ADD MLOAD PUSH1 0x8 DUP4 ADD SSTORE PUSH2 0x140 SWAP1 SWAP6 ADD MLOAD PUSH1 0x9 SWAP1 SWAP2 ADD DUP1 SLOAD SWAP2 DUP6 AND SWAP2 SWAP1 SWAP6 AND OR SWAP1 SWAP4 SSTORE DUP3 SLOAD DUP1 DUP5 ADD SWAP1 SWAP4 SSTORE MLOAD SWAP2 SWAP7 POP DUP6 AND SWAP1 DUP7 SWAP1 PUSH32 0xFE5474489C150632F13DA433A8FBEBD5E91FE495940C6776C0B3934F5F636C50 SWAP1 PUSH2 0x54A SWAP1 DUP12 SWAP1 PUSH2 0x1028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 ADD SLOAD PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x590 PUSH2 0xC19 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x5C9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x61E JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x601 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xE39 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE JUMPDEST PUSH2 0x636 PUSH2 0x631 DUP3 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x959 AND JUMP JUMPDEST PUSH2 0x9B8 JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD SLOAD DUP8 MLOAD DUP1 DUP11 ADD DUP10 MSTORE PUSH1 0x6 DUP9 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE DUP10 MLOAD SWAP11 DUP12 ADD SWAP1 SWAP10 MSTORE PUSH1 0x7 DUP9 ADD SLOAD SWAP1 SWAP9 AND DUP10 MSTORE PUSH1 0x8 DUP8 ADD SLOAD PUSH1 0x9 SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND SWAP9 SWAP5 DUP7 AND SWAP8 DUP7 DUP6 AND SWAP8 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP6 DIV PUSH4 0xFFFFFFFF AND SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x722 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x8 ADD SLOAD LT PUSH2 0x746 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xF2B JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH2 0x764 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x3 DUP8 ADD SLOAD PUSH1 0x8 DUP9 ADD SLOAD SWAP4 SWAP7 POP SWAP2 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP3 SUB SWAP1 ISZERO DUP1 PUSH2 0x799 JUMPI POP DUP5 SLOAD PUSH4 0xFFFFFFFF DUP3 AND LT ISZERO JUMPDEST PUSH2 0x7B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH4 0xFFFFFFFF AND DUP8 PUSH1 0x4 ADD SLOAD DUP8 SUB DUP2 PUSH2 0x7D5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x6 DUP8 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x5 DUP7 ADD SLOAD DUP2 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP7 SUB DUP2 PUSH2 0x820 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x7 DUP8 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH1 0x4 DUP5 ADD SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 DUP4 ADD SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH4 0xFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x8 ADD DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x892 PUSH2 0xC2B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x160 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 DUP6 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD DUP2 AND DUP3 DUP7 ADD MSTORE PUSH1 0x3 DUP4 ADD SLOAD DUP1 DUP3 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x4 DUP4 ADD SLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0xC0 DUP4 ADD MSTORE DUP5 MLOAD DUP1 DUP6 ADD DUP7 MSTORE PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0xE0 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 MLOAD SWAP5 DUP6 ADD SWAP1 SWAP6 MSTORE PUSH1 0x7 DUP4 ADD SLOAD SWAP1 SWAP5 AND DUP4 MSTORE PUSH2 0x100 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH1 0x9 ADD SLOAD SWAP1 SWAP2 AND PUSH2 0x140 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x961 PUSH2 0xCB2 JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0x987 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0x984 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x9A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x9CC PUSH2 0xB94 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA3F SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST SWAP3 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5A3D5493 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA8E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAB2 SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB06 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP DUP4 PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND EQ PUSH2 0xB8A JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0xB57 DUP5 DUP7 PUSH2 0xB9E JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0xB78 DUP6 DUP6 PUSH2 0xB9E JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0xBA6 PUSH2 0xC19 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0xBCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0xC04 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC91 PUSH2 0xC19 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC9E PUSH2 0xC19 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCD6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCE1 DUP2 PUSH2 0x109D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCFC JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 MLOAD PUSH2 0xD07 DUP2 PUSH2 0x10B5 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0xD18 DUP2 PUSH2 0x10B5 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xD31 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4D JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD65 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD7E JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0xD90 DUP2 PUSH2 0x109D JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDAF JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0xDC1 DUP2 PUSH2 0x109D JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x4F7261636C6543726561746F723A2043414C4C45525F4E4F545F4F574E455200 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4F7261636C6543726561746F723A20494E56414C49445F544F4B454E00000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204D554C5449504C49434154494F4E5F4F56455246 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x4C4F57 PUSH1 0xE8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4F7261636C6543726561746F723A20504552494F445F4E4F545F454C41505345 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4F7261636C6543726561746F723A2046494E49534845445F4F42455253455256 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x20AA24A7A7 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0xF8C SWAP1 DUP5 ADD DUP3 PUSH2 0xDD2 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0xF9F PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0xDD2 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0xFB2 PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0xDD2 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xFC5 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xDED JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0xFEC PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0xDDF JUMP JUMPDEST POP PUSH2 0x100 DUP1 DUP5 ADD MLOAD PUSH2 0x1000 DUP3 DUP6 ADD DUP3 PUSH2 0xDDF JUMP JUMPDEST POP POP PUSH2 0x120 DUP4 DUP2 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD MLOAD PUSH2 0x1020 DUP3 DUP6 ADD DUP3 PUSH2 0xDD2 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP11 DUP12 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP10 DUP11 AND PUSH1 0x20 DUP13 ADD MSTORE SWAP8 DUP10 AND PUSH1 0x40 DUP12 ADD MSTORE SWAP6 DUP9 AND PUSH1 0x60 DUP11 ADD MSTORE PUSH4 0xFFFFFFFF SWAP5 SWAP1 SWAP5 AND PUSH1 0x80 DUP10 ADD MSTORE PUSH1 0xA0 DUP9 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xC0 DUP8 ADD MSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND PUSH1 0xE0 DUP8 ADD MSTORE SWAP1 MLOAD AND PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x120 DUP5 ADD MSTORE AND PUSH2 0x140 DUP3 ADD MSTORE PUSH2 0x160 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x10B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x10B2 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E PUSH27 0x74C82834F93AC8011317DD95E71A56A7F1354095B6F78728D03E10 0xC3 CALLVALUE PUSH21 0x64736F6C6343000606003300000000000000000000 ", - "sourceMap": "234:4037:10:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;234:4037:10;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061007d5760003560e01c80634023282b1161005b5780634023282b146100d35780635b69a7d8146100e657806382ab890a14610110578063c6668d45146101255761007d565b806306649d67146100825780630eb5295f146100ab57806325fa7003146100b3575b600080fd5b610095610090366004610d6c565b610145565b6040516100a29190611028565b60405180910390f35b61009561055c565b6100c66100c1366004610d3c565b610562565b6040516100a29190610df7565b6100956100e1366004610d9b565b61057a565b6100f96100f4366004610d3c565b610654565b6040516100a29b9a99989796959493929190611031565b61012361011e366004610d3c565b6106e8565b005b610138610133366004610d3c565b61088a565b6040516100a29190610f70565b6000808290506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561018657600080fd5b505afa15801561019a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101be9190610cc5565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156101fb57600080fd5b505afa15801561020f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102339190610cc5565b90506000836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561027057600080fd5b505afa158015610284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a89190610ce8565b92505050604051806101600160405280888152602001846001600160a01b03168152602001836001600160a01b03168152602001856001600160a01b031681526020018263ffffffff168152602001856001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561033057600080fd5b505afa158015610344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103689190610d54565b8152602001856001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b1580156103a657600080fd5b505afa1580156103ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103de9190610d54565b81526040805160208181018352600080835281850192909252825180820184528281528385015260608085018390523360809586015260018054845283835292849020865181559186015182840180546001600160a01b039283166001600160a01b03199182161790915587860151600285018054918416918316919091179055918701516003840180549789015163ffffffff16600160a01b0263ffffffff60a01b1992841698851698909817919091169690961790955560a0860151600483015560c0860151600583015560e0860151516006830180546001600160e01b039283166001600160e01b0319918216179091556101008801515160078501805491909316911617905561012086015160088301556101409095015160099091018054918516919095161790935582548084019093555191965085169086907ffe5474489c150632f13da433a8fbebd5e91fe495940c6776c0b3934f5f636c509061054a908b90611028565b60405180910390a35050505092915050565b60015481565b60009081526020819052604090206008015460021490565b6000838152602081905260408120610590610c19565b60018201546001600160a01b03868116911614156105c95750604080516020810190915260068201546001600160e01b0316815261061e565b60028201546001600160a01b038681169116146106015760405162461bcd60e51b81526004016105f890610e39565b60405180910390fd5b50604080516020810190915260078201546001600160e01b031681525b610636610631828663ffffffff61095916565b6109b8565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b600060208181529181526040908190208054600182015460028301546003840154600485015460058601548751808a01895260068801546001600160e01b03908116825289519a8b0190995260078801549098168952600887015460099097015495986001600160a01b03958616989486169786851697600160a01b90950463ffffffff169693959294929391929091168b565b600081815260208190526040902060098101546001600160a01b031633146107225760405162461bcd60e51b81526004016105f890610e02565b60028160080154106107465760405162461bcd60e51b81526004016105f890610f2b565b600381015460009081908190610764906001600160a01b03166109bf565b600387015460088801549396509194509250600160a01b900463ffffffff1682039015806107995750845463ffffffff821610155b6107b55760405162461bcd60e51b81526004016105f890610eb3565b60405180602001604052808263ffffffff1687600401548703816107d557fe5b046001600160e01b0390811690915290516006870180546001600160e01b0319169190921617905560408051602081019091526005860154819063ffffffff84169086038161082057fe5b046001600160e01b0390811690915290516007870180546001600160e01b03191691909216179055506004840192909255600583015560038201805463ffffffff60a01b1916600160a01b63ffffffff909316929092029190911790556008018054600101905550565b610892610c2b565b50600090815260208181526040918290208251610160810184528154815260018201546001600160a01b0390811682850152600283015481168286015260038301548082166060840152600160a01b900463ffffffff166080830152600483015460a0830152600583015460c08301528451808501865260068401546001600160e01b03908116825260e084019190915285519485019095526007830154909416835261010081019290925260088101546101208301526009015490911661014082015290565b610961610cb2565b600082158061098757505082516001600160e01b03168281029083828161098457fe5b04145b6109a35760405162461bcd60e51b81526004016105f890610e70565b60408051602081019091529081529392505050565b5160701c90565b60008060006109cc610b94565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0757600080fd5b505afa158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f9190610d54565b9250836001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7a57600080fd5b505afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab29190610d54565b91506000806000866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610af257600080fd5b505afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190610ce8565b9250925092508363ffffffff168163ffffffff1614610b8a5780840363ffffffff8116610b578486610b9e565b516001600160e01b031602969096019563ffffffff8116610b788585610b9e565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b610ba6610c19565b6000826001600160701b031611610bcf5760405162461bcd60e51b81526004016105f890610ef4565b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610c0457fe5b046001600160e01b0316815250905092915050565b60408051602081019091526000815290565b6040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600063ffffffff1681526020016000815260200160008152602001610c91610c19565b8152602001610c9e610c19565b815260006020820181905260409091015290565b6040518060200160405280600081525090565b600060208284031215610cd6578081fd5b8151610ce18161109d565b9392505050565b600080600060608486031215610cfc578182fd5b8351610d07816110b5565b6020850151909350610d18816110b5565b604085015190925063ffffffff81168114610d31578182fd5b809150509250925092565b600060208284031215610d4d578081fd5b5035919050565b600060208284031215610d65578081fd5b5051919050565b60008060408385031215610d7e578182fd5b823591506020830135610d908161109d565b809150509250929050565b600080600060608486031215610daf578283fd5b833592506020840135610dc18161109d565b929592945050506040919091013590565b6001600160a01b03169052565b516001600160e01b03169052565b63ffffffff169052565b901515815260200190565b6020808252601f908201527f4f7261636c6543726561746f723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252601c908201527f4f7261636c6543726561746f723a20494e56414c49445f544f4b454e00000000604082015260600190565b60208082526023908201527f4669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552466040820152624c4f5760e81b606082015260800190565b60208082526021908201527f4f7261636c6543726561746f723a20504552494f445f4e4f545f454c415053456040820152601160fa1b606082015260800190565b60208082526017908201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604082015260600190565b60208082526025908201527f4f7261636c6543726561746f723a2046494e49534845445f4f4245525345525660408201526420aa24a7a760d91b606082015260800190565b81518152602080830151610160830191610f8c90840182610dd2565b506040830151610f9f6040840182610dd2565b506060830151610fb26060840182610dd2565b506080830151610fc56080840182610ded565b5060a083015160a083015260c083015160c083015260e0830151610fec60e0840182610ddf565b506101008084015161100082850182610ddf565b505061012083810151908301526101408084015161102082850182610dd2565b505092915050565b90815260200190565b9a8b526001600160a01b03998a1660208c015297891660408b015295881660608a015263ffffffff94909416608089015260a088019290925260c0870152516001600160e01b0390811660e0870152905116610100850152610120840152166101408201526101600190565b6001600160a01b03811681146110b257600080fd5b50565b6001600160701b03811681146110b257600080fdfea26469706673582212204e7a74c82834f93ac8011317dd95e71a56a7f1354095b6f78728d03e10c3347464736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4023282B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x4023282B EQ PUSH2 0xD3 JUMPI DUP1 PUSH4 0x5B69A7D8 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x82AB890A EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0xC6668D45 EQ PUSH2 0x125 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x6649D67 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0xEB5295F EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x25FA7003 EQ PUSH2 0xB3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0xD6C JUMP JUMPDEST PUSH2 0x145 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x1028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0x55C JUMP JUMPDEST PUSH2 0xC6 PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0xDF7 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xE1 CALLDATASIZE PUSH1 0x4 PUSH2 0xD9B JUMP JUMPDEST PUSH2 0x57A JUMP JUMPDEST PUSH2 0xF9 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1031 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x6E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x138 PUSH2 0x133 CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x88A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0xF70 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x233 SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x284 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x344 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x368 SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5A3D5493 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3DE SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE DUP2 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 MLOAD DUP1 DUP3 ADD DUP5 MSTORE DUP3 DUP2 MSTORE DUP4 DUP6 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE CALLER PUSH1 0x80 SWAP6 DUP7 ADD MSTORE PUSH1 0x1 DUP1 SLOAD DUP5 MSTORE DUP4 DUP4 MSTORE SWAP3 DUP5 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SSTORE SWAP2 DUP7 ADD MLOAD DUP3 DUP5 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE DUP8 DUP7 ADD MLOAD PUSH1 0x2 DUP6 ADD DUP1 SLOAD SWAP2 DUP5 AND SWAP2 DUP4 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE SWAP2 DUP8 ADD MLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD SWAP8 DUP10 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT SWAP3 DUP5 AND SWAP9 DUP6 AND SWAP9 SWAP1 SWAP9 OR SWAP2 SWAP1 SWAP2 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x4 DUP4 ADD SSTORE PUSH1 0xC0 DUP7 ADD MLOAD PUSH1 0x5 DUP4 ADD SSTORE PUSH1 0xE0 DUP7 ADD MLOAD MLOAD PUSH1 0x6 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH2 0x100 DUP9 ADD MLOAD MLOAD PUSH1 0x7 DUP6 ADD DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE PUSH2 0x120 DUP7 ADD MLOAD PUSH1 0x8 DUP4 ADD SSTORE PUSH2 0x140 SWAP1 SWAP6 ADD MLOAD PUSH1 0x9 SWAP1 SWAP2 ADD DUP1 SLOAD SWAP2 DUP6 AND SWAP2 SWAP1 SWAP6 AND OR SWAP1 SWAP4 SSTORE DUP3 SLOAD DUP1 DUP5 ADD SWAP1 SWAP4 SSTORE MLOAD SWAP2 SWAP7 POP DUP6 AND SWAP1 DUP7 SWAP1 PUSH32 0xFE5474489C150632F13DA433A8FBEBD5E91FE495940C6776C0B3934F5F636C50 SWAP1 PUSH2 0x54A SWAP1 DUP12 SWAP1 PUSH2 0x1028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 ADD SLOAD PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x590 PUSH2 0xC19 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x5C9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x61E JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x601 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xE39 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE JUMPDEST PUSH2 0x636 PUSH2 0x631 DUP3 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x959 AND JUMP JUMPDEST PUSH2 0x9B8 JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD SLOAD DUP8 MLOAD DUP1 DUP11 ADD DUP10 MSTORE PUSH1 0x6 DUP9 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE DUP10 MLOAD SWAP11 DUP12 ADD SWAP1 SWAP10 MSTORE PUSH1 0x7 DUP9 ADD SLOAD SWAP1 SWAP9 AND DUP10 MSTORE PUSH1 0x8 DUP8 ADD SLOAD PUSH1 0x9 SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND SWAP9 SWAP5 DUP7 AND SWAP8 DUP7 DUP6 AND SWAP8 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP6 DIV PUSH4 0xFFFFFFFF AND SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x722 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x8 ADD SLOAD LT PUSH2 0x746 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xF2B JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH2 0x764 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x3 DUP8 ADD SLOAD PUSH1 0x8 DUP9 ADD SLOAD SWAP4 SWAP7 POP SWAP2 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP3 SUB SWAP1 ISZERO DUP1 PUSH2 0x799 JUMPI POP DUP5 SLOAD PUSH4 0xFFFFFFFF DUP3 AND LT ISZERO JUMPDEST PUSH2 0x7B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH4 0xFFFFFFFF AND DUP8 PUSH1 0x4 ADD SLOAD DUP8 SUB DUP2 PUSH2 0x7D5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x6 DUP8 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x5 DUP7 ADD SLOAD DUP2 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP7 SUB DUP2 PUSH2 0x820 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x7 DUP8 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH1 0x4 DUP5 ADD SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 DUP4 ADD SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH4 0xFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x8 ADD DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x892 PUSH2 0xC2B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x160 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 DUP6 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD DUP2 AND DUP3 DUP7 ADD MSTORE PUSH1 0x3 DUP4 ADD SLOAD DUP1 DUP3 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x4 DUP4 ADD SLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0xC0 DUP4 ADD MSTORE DUP5 MLOAD DUP1 DUP6 ADD DUP7 MSTORE PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0xE0 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 MLOAD SWAP5 DUP6 ADD SWAP1 SWAP6 MSTORE PUSH1 0x7 DUP4 ADD SLOAD SWAP1 SWAP5 AND DUP4 MSTORE PUSH2 0x100 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH1 0x9 ADD SLOAD SWAP1 SWAP2 AND PUSH2 0x140 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x961 PUSH2 0xCB2 JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0x987 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0x984 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x9A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x9CC PUSH2 0xB94 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA3F SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST SWAP3 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5A3D5493 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA8E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAB2 SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB06 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP DUP4 PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND EQ PUSH2 0xB8A JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0xB57 DUP5 DUP7 PUSH2 0xB9E JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0xB78 DUP6 DUP6 PUSH2 0xB9E JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0xBA6 PUSH2 0xC19 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0xBCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F8 SWAP1 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0xC04 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC91 PUSH2 0xC19 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC9E PUSH2 0xC19 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCD6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCE1 DUP2 PUSH2 0x109D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCFC JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 MLOAD PUSH2 0xD07 DUP2 PUSH2 0x10B5 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0xD18 DUP2 PUSH2 0x10B5 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xD31 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4D JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD65 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD7E JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0xD90 DUP2 PUSH2 0x109D JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDAF JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0xDC1 DUP2 PUSH2 0x109D JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1F SWAP1 DUP3 ADD MSTORE PUSH32 0x4F7261636C6543726561746F723A2043414C4C45525F4E4F545F4F574E455200 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4F7261636C6543726561746F723A20494E56414C49445F544F4B454E00000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204D554C5449504C49434154494F4E5F4F56455246 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x4C4F57 PUSH1 0xE8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4F7261636C6543726561746F723A20504552494F445F4E4F545F454C41505345 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4F7261636C6543726561746F723A2046494E49534845445F4F42455253455256 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x20AA24A7A7 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0xF8C SWAP1 DUP5 ADD DUP3 PUSH2 0xDD2 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0xF9F PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0xDD2 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0xFB2 PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0xDD2 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xFC5 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xDED JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0xFEC PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0xDDF JUMP JUMPDEST POP PUSH2 0x100 DUP1 DUP5 ADD MLOAD PUSH2 0x1000 DUP3 DUP6 ADD DUP3 PUSH2 0xDDF JUMP JUMPDEST POP POP PUSH2 0x120 DUP4 DUP2 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD MLOAD PUSH2 0x1020 DUP3 DUP6 ADD DUP3 PUSH2 0xDD2 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP11 DUP12 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP10 DUP11 AND PUSH1 0x20 DUP13 ADD MSTORE SWAP8 DUP10 AND PUSH1 0x40 DUP12 ADD MSTORE SWAP6 DUP9 AND PUSH1 0x60 DUP11 ADD MSTORE PUSH4 0xFFFFFFFF SWAP5 SWAP1 SWAP5 AND PUSH1 0x80 DUP10 ADD MSTORE PUSH1 0xA0 DUP9 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xC0 DUP8 ADD MSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND PUSH1 0xE0 DUP8 ADD MSTORE SWAP1 MLOAD AND PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x120 DUP5 ADD MSTORE AND PUSH2 0x140 DUP3 ADD MSTORE PUSH2 0x160 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x10B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x10B2 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E PUSH27 0x74C82834F93AC8011317DD95E71A56A7F1354095B6F78728D03E10 0xC3 CALLVALUE PUSH21 0x64736F6C6343000606003300000000000000000000 ", - "sourceMap": "234:4037:10:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;234:4037:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;920:993:10;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;886:27;;;:::i;3992:143::-;;;;;;;;;:::i;:::-;;;;;;;;3502:484;;;;;;;;;:::i;839:41::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1919:1476;;;;;;;;;:::i;:::-;;4141:127;;;;;;;;;:::i;:::-;;;;;;;;920:993;1014:16;1042:22;1079:4;1042:42;;1094:14;1111:10;-1:-1:-1;;;;;1111:17:10;;:19;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1111:19:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1111:19:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1111:19:10;;;;;;;;;1094:36;;1140:14;1157:10;-1:-1:-1;;;;;1157:17:10;;:19;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1157:19:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1157:19:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1157:19:10;;;;;;;;;1140:36;;1190:25;1220:10;-1:-1:-1;;;;;1220:22:10;;:24;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1220:24:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1220:24:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1220:24:10;;;;;;;;;1186:58;;;;1279:499;;;;;;;;1312:10;1279:499;;;;1344:6;-1:-1:-1;;;;;1279:499:10;;;;;1372:6;-1:-1:-1;;;;;1279:499:10;;;;;1398:10;-1:-1:-1;;;;;1279:499:10;;;;;1442:18;1279:499;;;;;;1496:10;-1:-1:-1;;;;;1496:31:10;;:33;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1496:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1496:33:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1496:33:10;;;;;;;;;1279:499;;;;1565:10;-1:-1:-1;;;;;1565:31:10;;:33;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1565:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1565:33:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1565:33:10;;;;;;;;;1279:499;;1627:23;;;1279:499;1627:23;;;;;-1:-1:-1;1627:23:10;;;1279:499;;;;;;;1679:23;;;;;;;;;;1279:499;;;;;;;;;;;1757:10;1279:499;;;;;1263:12;;;1255:21;;;;;;;;;:523;;;;;;;;;;;;;-1:-1:-1;;;;;1255:523:10;;;-1:-1:-1;;;;;;1255:523:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1255:523:10;-1:-1:-1;;;;1255:523:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1255:523:10;;;-1:-1:-1;;;;;;1255:523:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:12;;1821:14;;;;;;1850:56;1799:12;;-1:-1:-1;1850:56:10;;;1799:12;;1850:56;;;;1895:10;;1850:56;;;;;;;;;;920:993;;;;;;;;:::o;886:27::-;;;;:::o;3992:143::-;4063:4;4085:20;;;;;;;;;;:38;;;4127:1;4085:43;;3992:143::o;3502:484::-;3596:17;3649:20;;;;;;;;;;3679:31;;:::i;:::-;3733:13;;;;-1:-1:-1;;;;;3724:22:10;;;3733:13;;3724:22;3720:209;;;-1:-1:-1;3761:26:10;;;;;;;;;3767:20;;;3761:26;-1:-1:-1;;;;;3761:26:10;;;3720:209;;;3833:13;;;;-1:-1:-1;;;;;3824:22:10;;;3833:13;;3824:22;3816:63;;;;-1:-1:-1;;;3816:63:10;;;;;;;;;;;;;;;;;-1:-1:-1;3892:26:10;;;;;;;;;3898:20;;;3892:26;-1:-1:-1;;;;;3892:26:10;;;3720:209;3950:29;:17;:3;3958:8;3950:17;:7;:17;:::i;:::-;:27;:29::i;:::-;3938:41;;;3502:484;-1:-1:-1;;;;;;3502:484:10:o;839:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;839:41:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;839:41:10;;;;;;;;;;;;-1:-1:-1;;;839:41:10;;;;;;;;;;;;;;;;;;:::o;1919:1476::-;1973:21;1997:20;;;;;;;;;;2049:12;;;;-1:-1:-1;;;;;2049:12:10;2035:10;:26;2027:70;;;;-1:-1:-1;;;2027:70:10;;;;;;;;;2142:1;2115:6;:24;;;:28;2107:78;;;;-1:-1:-1;;;2107:78:10;;;;;;;;;2331:11;;;;2196:21;;;;;;2279:65;;-1:-1:-1;;;;;2331:11:10;2279:43;:65::i;:::-;2392:25;;;;2595:24;;;;2195:149;;-1:-1:-1;2195:149:10;;-1:-1:-1;2195:149:10;-1:-1:-1;;;;2392:25:10;;;;2375:42;;;2595:29;;:65;;-1:-1:-1;2643:17:10;;2628:32;;;;;2595:65;2576:142;;;;-1:-1:-1;;;2576:142:10;;;;;;;;;2928:113;;;;;;;;3019:11;2968:62;;2988:6;:27;;;2969:16;:46;2968:62;;;;;;-1:-1:-1;;;;;2928:113:10;;;;;;2905:136;;:20;;;:136;;-1:-1:-1;;;;;;2905:136:10;;;;;;;;3074:113;;;;;;;;;3134:27;;;;3074:113;;3114:62;;;;3115:46;;3114:62;;;;;;-1:-1:-1;;;;;3074:113:10;;;;;;3051:136;;:20;;;:136;;-1:-1:-1;;;;;;3051:136:10;;;;;;;;-1:-1:-1;3198:27:10;;;:46;;;;3254:27;;;:46;-1:-1:-1;3310:25:10;;:42;;-1:-1:-1;;;;3310:42:10;-1:-1:-1;;;3310:42:10;;;;;;;;;;;;;;3362:24;;:26;;-1:-1:-1;3362:26:10;;;-1:-1:-1;1919:1476:10:o;4141:127::-;4211:13;;:::i;:::-;-1:-1:-1;4241:7:10;:20;;;;;;;;;;;;4234:27;;;;;;;;;;;;;;;-1:-1:-1;;;;;4234:27:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4234:27:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4234:27:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4141:127::o;1116:249:20:-;1183:16;;:::i;:::-;1211:6;1235;;;:54;;-1:-1:-1;;1281:7:20;;-1:-1:-1;;;;;1276:13:20;1250:17;;;;1271:1;1250:17;1271:1;1245:27;;;;;:44;1235:54;1227:102;;;;-1:-1:-1;;;1227:102:20;;;;;;;;;1346:12;;;;;;;;;;;;;1116:249;-1:-1:-1;;;1116:249:20:o;2051:128::-;2150:7;407:3;2150:21;;2051:128::o;605:1031:19:-;689:21;712;735;785:23;:21;:23::i;:::-;768:40;;849:4;-1:-1:-1;;;;;837:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;837:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;837:40:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;837:40:19;;;;;;;;;818:59;;918:4;-1:-1:-1;;;;;906:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;906:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;906:40:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;906:40:19;;;;;;;;;887:59;;1058:16;1076;1094:25;1135:4;-1:-1:-1;;;;;1123:29:19;;:31;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1123:31:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1123:31:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1123:31:19;;;;;;;;;1057:97;;;;;;1190:14;1168:36;;:18;:36;;;1164:466;;1288:35;;;1431:62;;;1436:39;1456:8;1466;1436:19;:39::i;:::-;:42;-1:-1:-1;;;;;1431:48:19;:62;1411:82;;;;;1557:62;;;1562:39;1582:8;1592;1562:19;:39::i;:::-;:42;-1:-1:-1;;;;;1557:48:19;:62;1537:82;;;;;-1:-1:-1;1164:466:19;605:1031;;;;;;;;:::o;381:121::-;469:25;:15;:25;;381:121::o;1517:243:20:-;1598:16;;:::i;:::-;1648:1;1634:11;-1:-1:-1;;;;;1634:15:20;;1626:51;;;;-1:-1:-1;;;1626:51:20;;;;;;;;;1694:59;;;;;;;;;;-1:-1:-1;;;;;1704:48:20;;-1:-1:-1;;;407:3:20;1705:32;;;;1704:48;;;;;;-1:-1:-1;;;;;1694:59:20;;;;1687:66;;1517:243;;;;:::o;234:4037:10:-;;;;;;;;;;-1:-1:-1;234:4037:10;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;234:4037:10;;;;;;-1:-1:-1;;;;;234:4037:10;;;;;;-1:-1:-1;;;;;234:4037:10;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;841:263:-1:-;;956:2;944:9;935:7;931:23;927:32;924:2;;;-1:-1;;962:12;924:2;226:6;220:13;238:33;265:5;238:33;;;1014:74;918:186;-1:-1;;;918:186;1111:533;;;;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;-1:-1;;1265:12;1227:2;367:6;361:13;379:33;406:5;379:33;;;1428:2;1478:22;;361:13;1317:74;;-1:-1;379:33;361:13;379:33;;;1547:2;1596:22;;779:13;1436:74;;-1:-1;15106:10;15095:22;;15859:34;;15849:2;;-1:-1;;15897:12;15849:2;1555:73;;;;1221:423;;;;;;1651:241;;1755:2;1743:9;1734:7;1730:23;1726:32;1723:2;;;-1:-1;;1761:12;1723:2;-1:-1;491:20;;1717:175;-1:-1;1717:175;1899:263;;2014:2;2002:9;1993:7;1989:23;1985:32;1982:2;;;-1:-1;;2020:12;1982:2;-1:-1;639:13;;1976:186;-1:-1;1976:186;2169:366;;;2290:2;2278:9;2269:7;2265:23;2261:32;2258:2;;;-1:-1;;2296:12;2258:2;504:6;491:20;2348:63;;2448:2;2491:9;2487:22;72:20;97:33;124:5;97:33;;;2456:63;;;;2252:283;;;;;;2542:491;;;;2680:2;2668:9;2659:7;2655:23;2651:32;2648:2;;;-1:-1;;2686:12;2648:2;504:6;491:20;2738:63;;2838:2;2881:9;2877:22;72:20;97:33;124:5;97:33;;;2642:391;;2846:63;;-1:-1;;;2946:2;2985:22;;;;491:20;;2642:391;3040:103;-1:-1;;;;;14745:54;3101:37;;3095:48;8093:316;8296:23;-1:-1;;;;;14873:70;8875:37;;8205:204;9154:100;15106:10;15095:22;9213:36;;9207:47;9378:201;14541:13;;14534:21;3335:34;;9490:2;9475:18;;9461:118;9586:407;9777:2;9791:47;;;3938:2;9762:18;;;14309:19;3974:33;14349:14;;;3954:54;4027:12;;;9748:245;10000:407;10191:2;10205:47;;;4278:2;10176:18;;;14309:19;4314:30;14349:14;;;4294:51;4364:12;;;10162:245;10414:407;10605:2;10619:47;;;4615:2;10590:18;;;14309:19;4651:34;14349:14;;;4631:55;-1:-1;;;4706:12;;;4699:27;4745:12;;;10576:245;10828:407;11019:2;11033:47;;;4996:2;11004:18;;;14309:19;5032:34;14349:14;;;5012:55;-1:-1;;;5087:12;;;5080:25;5124:12;;;10990:245;11242:407;11433:2;11447:47;;;5375:2;11418:18;;;14309:19;5411:25;14349:14;;;5391:46;5456:12;;;11404:245;11656:407;11847:2;11861:47;;;5707:2;11832:18;;;14309:19;5743:34;14349:14;;;5723:55;-1:-1;;;5798:12;;;5791:29;5839:12;;;11818:245;12070:310;6145:23;;8985:37;;6318:4;6307:16;;;6301:23;12236:3;12221:19;;;6330:63;;6378:14;;6301:23;6330:63;;;;6474:4;6467:5;6463:16;6457:23;6486:63;6474:4;6538:3;6534:14;6520:12;6486:63;;;;6628:4;6621:5;6617:16;6611:23;6640:82;6628:4;6711:3;6707:14;6693:12;6640:82;;;;6815:4;6808:5;6804:16;6798:23;6827:61;6815:4;6877:3;6873:14;6859:12;6827:61;;;;6983:4;6976:5;6972:16;6966:23;6983:4;7047:3;7043:14;8985:37;7153:4;7146:5;7142:16;7136:23;7153:4;7217:3;7213:14;8985:37;7316:4;7309:5;7305:16;7299:23;7328:119;7316:4;7436:3;7432:14;7418:12;7328:119;;;;7535:6;;7528:5;7524:18;7518:25;7549:121;7535:6;7657:3;7653:16;7639:12;7549:121;;;-1:-1;;7762:6;7751:18;;;7745:25;7824:16;;;8985:37;7921:6;7910:18;;;7904:25;7935:65;7983:16;;;7904:25;7935:65;;;;;12207:173;;;;;12387:213;8985:37;;;12505:2;12490:18;;12476:124;12607:1591;8985:37;;;-1:-1;;;;;14745:54;;;13300:2;13285:18;;3101:37;14745:54;;;13383:2;13368:18;;3101:37;14745:54;;;13485:2;13470:18;;3461:69;15106:10;15095:22;;;;13566:3;13551:19;;9213:36;14756:42;13635:19;;8985:37;;;;13734:3;13719:19;;8985:37;8296:23;-1:-1;;;;;14873:70;;;14884:58;13859:19;;8875:37;8296:23;;14873:70;14014:3;13999:19;;8875:37;14098:3;14083:19;;8985:37;14745:54;14183:3;14168:19;;3101:37;13135:3;13120:19;;13106:1092;15429:117;-1:-1;;;;;14745:54;;15488:35;;15478:2;;15537:1;;15527:12;15478:2;15472:74;;15553:117;-1:-1;;;;;15640:5;14629:42;15615:5;15612:35;15602:2;;15661:1;;15651:12" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_oracleIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_windowTime", - "type": "uint256" - } - ], - "name": "OracleCreated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oracleIndex", - "type": "uint256" - }, - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "windowTime", - "type": "uint256" - }, - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "name": "createOracle", - "outputs": [ - { - "internalType": "uint256", - "name": "oracleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oracleIndex", - "type": "uint256" - } - ], - "name": "getOracleDetails", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "windowTime", - "type": "uint256" - }, - { - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "internalType": "contract IDXswapPair", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "price0CumulativeLast", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price1CumulativeLast", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "internalType": "struct FixedPoint.uq112x112", - "name": "price0Average", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "internalType": "struct FixedPoint.uq112x112", - "name": "price1Average", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "observationsCount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "internalType": "struct OracleCreator.Oracle", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oracleIndex", - "type": "uint256" - } - ], - "name": "isOracleFinalized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "oracles", - "outputs": [ - { - "internalType": "uint256", - "name": "windowTime", - "type": "uint256" - }, - { - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "internalType": "contract IDXswapPair", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "price0CumulativeLast", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price1CumulativeLast", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "internalType": "struct FixedPoint.uq112x112", - "name": "price0Average", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "internalType": "struct FixedPoint.uq112x112", - "name": "price1Average", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "observationsCount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oraclesIndex", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oracleIndex", - "type": "uint256" - } - ], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "608060405234801561001057600080fd5b50611100806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80634023282b1161005b5780634023282b146100d35780635b69a7d8146100e657806382ab890a14610110578063c6668d45146101255761007d565b806306649d67146100825780630eb5295f146100ab57806325fa7003146100b3575b600080fd5b610095610090366004610d6c565b610145565b6040516100a29190611028565b60405180910390f35b61009561055c565b6100c66100c1366004610d3c565b610562565b6040516100a29190610df7565b6100956100e1366004610d9b565b61057a565b6100f96100f4366004610d3c565b610654565b6040516100a29b9a99989796959493929190611031565b61012361011e366004610d3c565b6106e8565b005b610138610133366004610d3c565b61088a565b6040516100a29190610f70565b6000808290506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561018657600080fd5b505afa15801561019a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101be9190610cc5565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156101fb57600080fd5b505afa15801561020f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102339190610cc5565b90506000836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561027057600080fd5b505afa158015610284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a89190610ce8565b92505050604051806101600160405280888152602001846001600160a01b03168152602001836001600160a01b03168152602001856001600160a01b031681526020018263ffffffff168152602001856001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561033057600080fd5b505afa158015610344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103689190610d54565b8152602001856001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b1580156103a657600080fd5b505afa1580156103ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103de9190610d54565b81526040805160208181018352600080835281850192909252825180820184528281528385015260608085018390523360809586015260018054845283835292849020865181559186015182840180546001600160a01b039283166001600160a01b03199182161790915587860151600285018054918416918316919091179055918701516003840180549789015163ffffffff16600160a01b0263ffffffff60a01b1992841698851698909817919091169690961790955560a0860151600483015560c0860151600583015560e0860151516006830180546001600160e01b039283166001600160e01b0319918216179091556101008801515160078501805491909316911617905561012086015160088301556101409095015160099091018054918516919095161790935582548084019093555191965085169086907ffe5474489c150632f13da433a8fbebd5e91fe495940c6776c0b3934f5f636c509061054a908b90611028565b60405180910390a35050505092915050565b60015481565b60009081526020819052604090206008015460021490565b6000838152602081905260408120610590610c19565b60018201546001600160a01b03868116911614156105c95750604080516020810190915260068201546001600160e01b0316815261061e565b60028201546001600160a01b038681169116146106015760405162461bcd60e51b81526004016105f890610e39565b60405180910390fd5b50604080516020810190915260078201546001600160e01b031681525b610636610631828663ffffffff61095916565b6109b8565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b600060208181529181526040908190208054600182015460028301546003840154600485015460058601548751808a01895260068801546001600160e01b03908116825289519a8b0190995260078801549098168952600887015460099097015495986001600160a01b03958616989486169786851697600160a01b90950463ffffffff169693959294929391929091168b565b600081815260208190526040902060098101546001600160a01b031633146107225760405162461bcd60e51b81526004016105f890610e02565b60028160080154106107465760405162461bcd60e51b81526004016105f890610f2b565b600381015460009081908190610764906001600160a01b03166109bf565b600387015460088801549396509194509250600160a01b900463ffffffff1682039015806107995750845463ffffffff821610155b6107b55760405162461bcd60e51b81526004016105f890610eb3565b60405180602001604052808263ffffffff1687600401548703816107d557fe5b046001600160e01b0390811690915290516006870180546001600160e01b0319169190921617905560408051602081019091526005860154819063ffffffff84169086038161082057fe5b046001600160e01b0390811690915290516007870180546001600160e01b03191691909216179055506004840192909255600583015560038201805463ffffffff60a01b1916600160a01b63ffffffff909316929092029190911790556008018054600101905550565b610892610c2b565b50600090815260208181526040918290208251610160810184528154815260018201546001600160a01b0390811682850152600283015481168286015260038301548082166060840152600160a01b900463ffffffff166080830152600483015460a0830152600583015460c08301528451808501865260068401546001600160e01b03908116825260e084019190915285519485019095526007830154909416835261010081019290925260088101546101208301526009015490911661014082015290565b610961610cb2565b600082158061098757505082516001600160e01b03168281029083828161098457fe5b04145b6109a35760405162461bcd60e51b81526004016105f890610e70565b60408051602081019091529081529392505050565b5160701c90565b60008060006109cc610b94565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0757600080fd5b505afa158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f9190610d54565b9250836001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7a57600080fd5b505afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab29190610d54565b91506000806000866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610af257600080fd5b505afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190610ce8565b9250925092508363ffffffff168163ffffffff1614610b8a5780840363ffffffff8116610b578486610b9e565b516001600160e01b031602969096019563ffffffff8116610b788585610b9e565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b610ba6610c19565b6000826001600160701b031611610bcf5760405162461bcd60e51b81526004016105f890610ef4565b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610c0457fe5b046001600160e01b0316815250905092915050565b60408051602081019091526000815290565b6040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600063ffffffff1681526020016000815260200160008152602001610c91610c19565b8152602001610c9e610c19565b815260006020820181905260409091015290565b6040518060200160405280600081525090565b600060208284031215610cd6578081fd5b8151610ce18161109d565b9392505050565b600080600060608486031215610cfc578182fd5b8351610d07816110b5565b6020850151909350610d18816110b5565b604085015190925063ffffffff81168114610d31578182fd5b809150509250925092565b600060208284031215610d4d578081fd5b5035919050565b600060208284031215610d65578081fd5b5051919050565b60008060408385031215610d7e578182fd5b823591506020830135610d908161109d565b809150509250929050565b600080600060608486031215610daf578283fd5b833592506020840135610dc18161109d565b929592945050506040919091013590565b6001600160a01b03169052565b516001600160e01b03169052565b63ffffffff169052565b901515815260200190565b6020808252601f908201527f4f7261636c6543726561746f723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252601c908201527f4f7261636c6543726561746f723a20494e56414c49445f544f4b454e00000000604082015260600190565b60208082526023908201527f4669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552466040820152624c4f5760e81b606082015260800190565b60208082526021908201527f4f7261636c6543726561746f723a20504552494f445f4e4f545f454c415053456040820152601160fa1b606082015260800190565b60208082526017908201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604082015260600190565b60208082526025908201527f4f7261636c6543726561746f723a2046494e49534845445f4f4245525345525660408201526420aa24a7a760d91b606082015260800190565b81518152602080830151610160830191610f8c90840182610dd2565b506040830151610f9f6040840182610dd2565b506060830151610fb26060840182610dd2565b506080830151610fc56080840182610ded565b5060a083015160a083015260c083015160c083015260e0830151610fec60e0840182610ddf565b506101008084015161100082850182610ddf565b505061012083810151908301526101408084015161102082850182610dd2565b505092915050565b90815260200190565b9a8b526001600160a01b03998a1660208c015297891660408b015295881660608a015263ffffffff94909416608089015260a088019290925260c0870152516001600160e01b0390811660e0870152905116610100850152610120840152166101408201526101600190565b6001600160a01b03811681146110b257600080fd5b50565b6001600160701b03811681146110b257600080fdfea26469706673582212204e7a74c82834f93ac8011317dd95e71a56a7f1354095b6f78728d03e10c3347464736f6c63430006060033", - "bin": "608060405234801561001057600080fd5b50611100806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80634023282b1161005b5780634023282b146100d35780635b69a7d8146100e657806382ab890a14610110578063c6668d45146101255761007d565b806306649d67146100825780630eb5295f146100ab57806325fa7003146100b3575b600080fd5b610095610090366004610d6c565b610145565b6040516100a29190611028565b60405180910390f35b61009561055c565b6100c66100c1366004610d3c565b610562565b6040516100a29190610df7565b6100956100e1366004610d9b565b61057a565b6100f96100f4366004610d3c565b610654565b6040516100a29b9a99989796959493929190611031565b61012361011e366004610d3c565b6106e8565b005b610138610133366004610d3c565b61088a565b6040516100a29190610f70565b6000808290506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561018657600080fd5b505afa15801561019a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101be9190610cc5565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156101fb57600080fd5b505afa15801561020f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102339190610cc5565b90506000836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561027057600080fd5b505afa158015610284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a89190610ce8565b92505050604051806101600160405280888152602001846001600160a01b03168152602001836001600160a01b03168152602001856001600160a01b031681526020018263ffffffff168152602001856001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561033057600080fd5b505afa158015610344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103689190610d54565b8152602001856001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b1580156103a657600080fd5b505afa1580156103ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103de9190610d54565b81526040805160208181018352600080835281850192909252825180820184528281528385015260608085018390523360809586015260018054845283835292849020865181559186015182840180546001600160a01b039283166001600160a01b03199182161790915587860151600285018054918416918316919091179055918701516003840180549789015163ffffffff16600160a01b0263ffffffff60a01b1992841698851698909817919091169690961790955560a0860151600483015560c0860151600583015560e0860151516006830180546001600160e01b039283166001600160e01b0319918216179091556101008801515160078501805491909316911617905561012086015160088301556101409095015160099091018054918516919095161790935582548084019093555191965085169086907ffe5474489c150632f13da433a8fbebd5e91fe495940c6776c0b3934f5f636c509061054a908b90611028565b60405180910390a35050505092915050565b60015481565b60009081526020819052604090206008015460021490565b6000838152602081905260408120610590610c19565b60018201546001600160a01b03868116911614156105c95750604080516020810190915260068201546001600160e01b0316815261061e565b60028201546001600160a01b038681169116146106015760405162461bcd60e51b81526004016105f890610e39565b60405180910390fd5b50604080516020810190915260078201546001600160e01b031681525b610636610631828663ffffffff61095916565b6109b8565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b600060208181529181526040908190208054600182015460028301546003840154600485015460058601548751808a01895260068801546001600160e01b03908116825289519a8b0190995260078801549098168952600887015460099097015495986001600160a01b03958616989486169786851697600160a01b90950463ffffffff169693959294929391929091168b565b600081815260208190526040902060098101546001600160a01b031633146107225760405162461bcd60e51b81526004016105f890610e02565b60028160080154106107465760405162461bcd60e51b81526004016105f890610f2b565b600381015460009081908190610764906001600160a01b03166109bf565b600387015460088801549396509194509250600160a01b900463ffffffff1682039015806107995750845463ffffffff821610155b6107b55760405162461bcd60e51b81526004016105f890610eb3565b60405180602001604052808263ffffffff1687600401548703816107d557fe5b046001600160e01b0390811690915290516006870180546001600160e01b0319169190921617905560408051602081019091526005860154819063ffffffff84169086038161082057fe5b046001600160e01b0390811690915290516007870180546001600160e01b03191691909216179055506004840192909255600583015560038201805463ffffffff60a01b1916600160a01b63ffffffff909316929092029190911790556008018054600101905550565b610892610c2b565b50600090815260208181526040918290208251610160810184528154815260018201546001600160a01b0390811682850152600283015481168286015260038301548082166060840152600160a01b900463ffffffff166080830152600483015460a0830152600583015460c08301528451808501865260068401546001600160e01b03908116825260e084019190915285519485019095526007830154909416835261010081019290925260088101546101208301526009015490911661014082015290565b610961610cb2565b600082158061098757505082516001600160e01b03168281029083828161098457fe5b04145b6109a35760405162461bcd60e51b81526004016105f890610e70565b60408051602081019091529081529392505050565b5160701c90565b60008060006109cc610b94565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0757600080fd5b505afa158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f9190610d54565b9250836001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7a57600080fd5b505afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab29190610d54565b91506000806000866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610af257600080fd5b505afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190610ce8565b9250925092508363ffffffff168163ffffffff1614610b8a5780840363ffffffff8116610b578486610b9e565b516001600160e01b031602969096019563ffffffff8116610b788585610b9e565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b610ba6610c19565b6000826001600160701b031611610bcf5760405162461bcd60e51b81526004016105f890610ef4565b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610c0457fe5b046001600160e01b0316815250905092915050565b60408051602081019091526000815290565b6040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600063ffffffff1681526020016000815260200160008152602001610c91610c19565b8152602001610c9e610c19565b815260006020820181905260409091015290565b6040518060200160405280600081525090565b600060208284031215610cd6578081fd5b8151610ce18161109d565b9392505050565b600080600060608486031215610cfc578182fd5b8351610d07816110b5565b6020850151909350610d18816110b5565b604085015190925063ffffffff81168114610d31578182fd5b809150509250925092565b600060208284031215610d4d578081fd5b5035919050565b600060208284031215610d65578081fd5b5051919050565b60008060408385031215610d7e578182fd5b823591506020830135610d908161109d565b809150509250929050565b600080600060608486031215610daf578283fd5b833592506020840135610dc18161109d565b929592945050506040919091013590565b6001600160a01b03169052565b516001600160e01b03169052565b63ffffffff169052565b901515815260200190565b6020808252601f908201527f4f7261636c6543726561746f723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252601c908201527f4f7261636c6543726561746f723a20494e56414c49445f544f4b454e00000000604082015260600190565b60208082526023908201527f4669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552466040820152624c4f5760e81b606082015260800190565b60208082526021908201527f4f7261636c6543726561746f723a20504552494f445f4e4f545f454c415053456040820152601160fa1b606082015260800190565b60208082526017908201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604082015260600190565b60208082526025908201527f4f7261636c6543726561746f723a2046494e49534845445f4f4245525345525660408201526420aa24a7a760d91b606082015260800190565b81518152602080830151610160830191610f8c90840182610dd2565b506040830151610f9f6040840182610dd2565b506060830151610fb26060840182610dd2565b506080830151610fc56080840182610ded565b5060a083015160a083015260c083015160c083015260e0830151610fec60e0840182610ddf565b506101008084015161100082850182610ddf565b505061012083810151908301526101408084015161102082850182610dd2565b505092915050565b90815260200190565b9a8b526001600160a01b03998a1660208c015297891660408b015295881660608a015263ffffffff94909416608089015260a088019290925260c0870152516001600160e01b0390811660e0870152905116610100850152610120840152166101408201526101600190565b6001600160a01b03811681146110b257600080fd5b50565b6001600160701b03811681146110b257600080fdfea26469706673582212204e7a74c82834f93ac8011317dd95e71a56a7f1354095b6f78728d03e10c3347464736f6c63430006060033", - "bin-runtime": "608060405234801561001057600080fd5b506004361061007d5760003560e01c80634023282b1161005b5780634023282b146100d35780635b69a7d8146100e657806382ab890a14610110578063c6668d45146101255761007d565b806306649d67146100825780630eb5295f146100ab57806325fa7003146100b3575b600080fd5b610095610090366004610d6c565b610145565b6040516100a29190611028565b60405180910390f35b61009561055c565b6100c66100c1366004610d3c565b610562565b6040516100a29190610df7565b6100956100e1366004610d9b565b61057a565b6100f96100f4366004610d3c565b610654565b6040516100a29b9a99989796959493929190611031565b61012361011e366004610d3c565b6106e8565b005b610138610133366004610d3c565b61088a565b6040516100a29190610f70565b6000808290506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561018657600080fd5b505afa15801561019a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101be9190610cc5565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156101fb57600080fd5b505afa15801561020f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102339190610cc5565b90506000836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561027057600080fd5b505afa158015610284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a89190610ce8565b92505050604051806101600160405280888152602001846001600160a01b03168152602001836001600160a01b03168152602001856001600160a01b031681526020018263ffffffff168152602001856001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561033057600080fd5b505afa158015610344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103689190610d54565b8152602001856001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b1580156103a657600080fd5b505afa1580156103ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103de9190610d54565b81526040805160208181018352600080835281850192909252825180820184528281528385015260608085018390523360809586015260018054845283835292849020865181559186015182840180546001600160a01b039283166001600160a01b03199182161790915587860151600285018054918416918316919091179055918701516003840180549789015163ffffffff16600160a01b0263ffffffff60a01b1992841698851698909817919091169690961790955560a0860151600483015560c0860151600583015560e0860151516006830180546001600160e01b039283166001600160e01b0319918216179091556101008801515160078501805491909316911617905561012086015160088301556101409095015160099091018054918516919095161790935582548084019093555191965085169086907ffe5474489c150632f13da433a8fbebd5e91fe495940c6776c0b3934f5f636c509061054a908b90611028565b60405180910390a35050505092915050565b60015481565b60009081526020819052604090206008015460021490565b6000838152602081905260408120610590610c19565b60018201546001600160a01b03868116911614156105c95750604080516020810190915260068201546001600160e01b0316815261061e565b60028201546001600160a01b038681169116146106015760405162461bcd60e51b81526004016105f890610e39565b60405180910390fd5b50604080516020810190915260078201546001600160e01b031681525b610636610631828663ffffffff61095916565b6109b8565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b600060208181529181526040908190208054600182015460028301546003840154600485015460058601548751808a01895260068801546001600160e01b03908116825289519a8b0190995260078801549098168952600887015460099097015495986001600160a01b03958616989486169786851697600160a01b90950463ffffffff169693959294929391929091168b565b600081815260208190526040902060098101546001600160a01b031633146107225760405162461bcd60e51b81526004016105f890610e02565b60028160080154106107465760405162461bcd60e51b81526004016105f890610f2b565b600381015460009081908190610764906001600160a01b03166109bf565b600387015460088801549396509194509250600160a01b900463ffffffff1682039015806107995750845463ffffffff821610155b6107b55760405162461bcd60e51b81526004016105f890610eb3565b60405180602001604052808263ffffffff1687600401548703816107d557fe5b046001600160e01b0390811690915290516006870180546001600160e01b0319169190921617905560408051602081019091526005860154819063ffffffff84169086038161082057fe5b046001600160e01b0390811690915290516007870180546001600160e01b03191691909216179055506004840192909255600583015560038201805463ffffffff60a01b1916600160a01b63ffffffff909316929092029190911790556008018054600101905550565b610892610c2b565b50600090815260208181526040918290208251610160810184528154815260018201546001600160a01b0390811682850152600283015481168286015260038301548082166060840152600160a01b900463ffffffff166080830152600483015460a0830152600583015460c08301528451808501865260068401546001600160e01b03908116825260e084019190915285519485019095526007830154909416835261010081019290925260088101546101208301526009015490911661014082015290565b610961610cb2565b600082158061098757505082516001600160e01b03168281029083828161098457fe5b04145b6109a35760405162461bcd60e51b81526004016105f890610e70565b60408051602081019091529081529392505050565b5160701c90565b60008060006109cc610b94565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0757600080fd5b505afa158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f9190610d54565b9250836001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7a57600080fd5b505afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab29190610d54565b91506000806000866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610af257600080fd5b505afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190610ce8565b9250925092508363ffffffff168163ffffffff1614610b8a5780840363ffffffff8116610b578486610b9e565b516001600160e01b031602969096019563ffffffff8116610b788585610b9e565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b610ba6610c19565b6000826001600160701b031611610bcf5760405162461bcd60e51b81526004016105f890610ef4565b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610c0457fe5b046001600160e01b0316815250905092915050565b60408051602081019091526000815290565b6040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600063ffffffff1681526020016000815260200160008152602001610c91610c19565b8152602001610c9e610c19565b815260006020820181905260409091015290565b6040518060200160405280600081525090565b600060208284031215610cd6578081fd5b8151610ce18161109d565b9392505050565b600080600060608486031215610cfc578182fd5b8351610d07816110b5565b6020850151909350610d18816110b5565b604085015190925063ffffffff81168114610d31578182fd5b809150509250925092565b600060208284031215610d4d578081fd5b5035919050565b600060208284031215610d65578081fd5b5051919050565b60008060408385031215610d7e578182fd5b823591506020830135610d908161109d565b809150509250929050565b600080600060608486031215610daf578283fd5b833592506020840135610dc18161109d565b929592945050506040919091013590565b6001600160a01b03169052565b516001600160e01b03169052565b63ffffffff169052565b901515815260200190565b6020808252601f908201527f4f7261636c6543726561746f723a2043414c4c45525f4e4f545f4f574e455200604082015260600190565b6020808252601c908201527f4f7261636c6543726561746f723a20494e56414c49445f544f4b454e00000000604082015260600190565b60208082526023908201527f4669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552466040820152624c4f5760e81b606082015260800190565b60208082526021908201527f4f7261636c6543726561746f723a20504552494f445f4e4f545f454c415053456040820152601160fa1b606082015260800190565b60208082526017908201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604082015260600190565b60208082526025908201527f4f7261636c6543726561746f723a2046494e49534845445f4f4245525345525660408201526420aa24a7a760d91b606082015260800190565b81518152602080830151610160830191610f8c90840182610dd2565b506040830151610f9f6040840182610dd2565b506060830151610fb26060840182610dd2565b506080830151610fc56080840182610ded565b5060a083015160a083015260c083015160c083015260e0830151610fec60e0840182610ddf565b506101008084015161100082850182610ddf565b505061012083810151908301526101408084015161102082850182610dd2565b505092915050565b90815260200190565b9a8b526001600160a01b03998a1660208c015297891660408b015295881660608a015263ffffffff94909416608089015260a088019290925260c0870152516001600160e01b0390811660e0870152905116610100850152610120840152166101408201526101600190565b6001600160a01b03811681146110b257600080fd5b50565b6001600160701b03811681146110b257600080fdfea26469706673582212204e7a74c82834f93ac8011317dd95e71a56a7f1354095b6f78728d03e10c3347464736f6c63430006060033", - "srcmap": "234:4037:10:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;234:4037:10;;;;;;;", - "srcmap-runtime": "234:4037:10:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;234:4037:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;920:993:10;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;886:27;;;:::i;3992:143::-;;;;;;;;;:::i;:::-;;;;;;;;3502:484;;;;;;;;;:::i;839:41::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1919:1476;;;;;;;;;:::i;:::-;;4141:127;;;;;;;;;:::i;:::-;;;;;;;;920:993;1014:16;1042:22;1079:4;1042:42;;1094:14;1111:10;-1:-1:-1;;;;;1111:17:10;;:19;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1111:19:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1111:19:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1111:19:10;;;;;;;;;1094:36;;1140:14;1157:10;-1:-1:-1;;;;;1157:17:10;;:19;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1157:19:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1157:19:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1157:19:10;;;;;;;;;1140:36;;1190:25;1220:10;-1:-1:-1;;;;;1220:22:10;;:24;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1220:24:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1220:24:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1220:24:10;;;;;;;;;1186:58;;;;1279:499;;;;;;;;1312:10;1279:499;;;;1344:6;-1:-1:-1;;;;;1279:499:10;;;;;1372:6;-1:-1:-1;;;;;1279:499:10;;;;;1398:10;-1:-1:-1;;;;;1279:499:10;;;;;1442:18;1279:499;;;;;;1496:10;-1:-1:-1;;;;;1496:31:10;;:33;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1496:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1496:33:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1496:33:10;;;;;;;;;1279:499;;;;1565:10;-1:-1:-1;;;;;1565:31:10;;:33;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1565:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1565:33:10;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1565:33:10;;;;;;;;;1279:499;;1627:23;;;1279:499;1627:23;;;;;-1:-1:-1;1627:23:10;;;1279:499;;;;;;;1679:23;;;;;;;;;;1279:499;;;;;;;;;;;1757:10;1279:499;;;;;1263:12;;;1255:21;;;;;;;;;:523;;;;;;;;;;;;;-1:-1:-1;;;;;1255:523:10;;;-1:-1:-1;;;;;;1255:523:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1255:523:10;-1:-1:-1;;;;1255:523:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1255:523:10;;;-1:-1:-1;;;;;;1255:523:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:12;;1821:14;;;;;;1850:56;1799:12;;-1:-1:-1;1850:56:10;;;1799:12;;1850:56;;;;1895:10;;1850:56;;;;;;;;;;920:993;;;;;;;;:::o;886:27::-;;;;:::o;3992:143::-;4063:4;4085:20;;;;;;;;;;:38;;;4127:1;4085:43;;3992:143::o;3502:484::-;3596:17;3649:20;;;;;;;;;;3679:31;;:::i;:::-;3733:13;;;;-1:-1:-1;;;;;3724:22:10;;;3733:13;;3724:22;3720:209;;;-1:-1:-1;3761:26:10;;;;;;;;;3767:20;;;3761:26;-1:-1:-1;;;;;3761:26:10;;;3720:209;;;3833:13;;;;-1:-1:-1;;;;;3824:22:10;;;3833:13;;3824:22;3816:63;;;;-1:-1:-1;;;3816:63:10;;;;;;;;;;;;;;;;;-1:-1:-1;3892:26:10;;;;;;;;;3898:20;;;3892:26;-1:-1:-1;;;;;3892:26:10;;;3720:209;3950:29;:17;:3;3958:8;3950:17;:7;:17;:::i;:::-;:27;:29::i;:::-;3938:41;;;3502:484;-1:-1:-1;;;;;;3502:484:10:o;839:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;839:41:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;839:41:10;;;;;;;;;;;;-1:-1:-1;;;839:41:10;;;;;;;;;;;;;;;;;;:::o;1919:1476::-;1973:21;1997:20;;;;;;;;;;2049:12;;;;-1:-1:-1;;;;;2049:12:10;2035:10;:26;2027:70;;;;-1:-1:-1;;;2027:70:10;;;;;;;;;2142:1;2115:6;:24;;;:28;2107:78;;;;-1:-1:-1;;;2107:78:10;;;;;;;;;2331:11;;;;2196:21;;;;;;2279:65;;-1:-1:-1;;;;;2331:11:10;2279:43;:65::i;:::-;2392:25;;;;2595:24;;;;2195:149;;-1:-1:-1;2195:149:10;;-1:-1:-1;2195:149:10;-1:-1:-1;;;;2392:25:10;;;;2375:42;;;2595:29;;:65;;-1:-1:-1;2643:17:10;;2628:32;;;;;2595:65;2576:142;;;;-1:-1:-1;;;2576:142:10;;;;;;;;;2928:113;;;;;;;;3019:11;2968:62;;2988:6;:27;;;2969:16;:46;2968:62;;;;;;-1:-1:-1;;;;;2928:113:10;;;;;;2905:136;;:20;;;:136;;-1:-1:-1;;;;;;2905:136:10;;;;;;;;3074:113;;;;;;;;;3134:27;;;;3074:113;;3114:62;;;;3115:46;;3114:62;;;;;;-1:-1:-1;;;;;3074:113:10;;;;;;3051:136;;:20;;;:136;;-1:-1:-1;;;;;;3051:136:10;;;;;;;;-1:-1:-1;3198:27:10;;;:46;;;;3254:27;;;:46;-1:-1:-1;3310:25:10;;:42;;-1:-1:-1;;;;3310:42:10;-1:-1:-1;;;3310:42:10;;;;;;;;;;;;;;3362:24;;:26;;-1:-1:-1;3362:26:10;;;-1:-1:-1;1919:1476:10:o;4141:127::-;4211:13;;:::i;:::-;-1:-1:-1;4241:7:10;:20;;;;;;;;;;;;4234:27;;;;;;;;;;;;;;;-1:-1:-1;;;;;4234:27:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4234:27:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4234:27:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4141:127::o;1116:249:20:-;1183:16;;:::i;:::-;1211:6;1235;;;:54;;-1:-1:-1;;1281:7:20;;-1:-1:-1;;;;;1276:13:20;1250:17;;;;1271:1;1250:17;1271:1;1245:27;;;;;:44;1235:54;1227:102;;;;-1:-1:-1;;;1227:102:20;;;;;;;;;1346:12;;;;;;;;;;;;;1116:249;-1:-1:-1;;;1116:249:20:o;2051:128::-;2150:7;407:3;2150:21;;2051:128::o;605:1031:19:-;689:21;712;735;785:23;:21;:23::i;:::-;768:40;;849:4;-1:-1:-1;;;;;837:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;837:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;837:40:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;837:40:19;;;;;;;;;818:59;;918:4;-1:-1:-1;;;;;906:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;906:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;906:40:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;906:40:19;;;;;;;;;887:59;;1058:16;1076;1094:25;1135:4;-1:-1:-1;;;;;1123:29:19;;:31;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1123:31:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1123:31:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1123:31:19;;;;;;;;;1057:97;;;;;;1190:14;1168:36;;:18;:36;;;1164:466;;1288:35;;;1431:62;;;1436:39;1456:8;1466;1436:19;:39::i;:::-;:42;-1:-1:-1;;;;;1431:48:19;:62;1411:82;;;;;1557:62;;;1562:39;1582:8;1592;1562:19;:39::i;:::-;:42;-1:-1:-1;;;;;1557:48:19;:62;1537:82;;;;;-1:-1:-1;1164:466:19;605:1031;;;;;;;;:::o;381:121::-;469:25;:15;:25;;381:121::o;1517:243:20:-;1598:16;;:::i;:::-;1648:1;1634:11;-1:-1:-1;;;;;1634:15:20;;1626:51;;;;-1:-1:-1;;;1626:51:20;;;;;;;;;1694:59;;;;;;;;;;-1:-1:-1;;;;;1704:48:20;;-1:-1:-1;;;407:3:20;1705:32;;;;1704:48;;;;;;-1:-1:-1;;;;;1694:59:20;;;;1687:66;;1517:243;;;;:::o;234:4037:10:-;;;;;;;;;;-1:-1:-1;234:4037:10;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;234:4037:10;;;;;;-1:-1:-1;;;;;234:4037:10;;;;;;-1:-1:-1;;;;;234:4037:10;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;841:263:-1:-;;956:2;944:9;935:7;931:23;927:32;924:2;;;-1:-1;;962:12;924:2;226:6;220:13;238:33;265:5;238:33;;;1014:74;918:186;-1:-1;;;918:186;1111:533;;;;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;-1:-1;;1265:12;1227:2;367:6;361:13;379:33;406:5;379:33;;;1428:2;1478:22;;361:13;1317:74;;-1:-1;379:33;361:13;379:33;;;1547:2;1596:22;;779:13;1436:74;;-1:-1;15106:10;15095:22;;15859:34;;15849:2;;-1:-1;;15897:12;15849:2;1555:73;;;;1221:423;;;;;;1651:241;;1755:2;1743:9;1734:7;1730:23;1726:32;1723:2;;;-1:-1;;1761:12;1723:2;-1:-1;491:20;;1717:175;-1:-1;1717:175;1899:263;;2014:2;2002:9;1993:7;1989:23;1985:32;1982:2;;;-1:-1;;2020:12;1982:2;-1:-1;639:13;;1976:186;-1:-1;1976:186;2169:366;;;2290:2;2278:9;2269:7;2265:23;2261:32;2258:2;;;-1:-1;;2296:12;2258:2;504:6;491:20;2348:63;;2448:2;2491:9;2487:22;72:20;97:33;124:5;97:33;;;2456:63;;;;2252:283;;;;;;2542:491;;;;2680:2;2668:9;2659:7;2655:23;2651:32;2648:2;;;-1:-1;;2686:12;2648:2;504:6;491:20;2738:63;;2838:2;2881:9;2877:22;72:20;97:33;124:5;97:33;;;2642:391;;2846:63;;-1:-1;;;2946:2;2985:22;;;;491:20;;2642:391;3040:103;-1:-1;;;;;14745:54;3101:37;;3095:48;8093:316;8296:23;-1:-1;;;;;14873:70;8875:37;;8205:204;9154:100;15106:10;15095:22;9213:36;;9207:47;9378:201;14541:13;;14534:21;3335:34;;9490:2;9475:18;;9461:118;9586:407;9777:2;9791:47;;;3938:2;9762:18;;;14309:19;3974:33;14349:14;;;3954:54;4027:12;;;9748:245;10000:407;10191:2;10205:47;;;4278:2;10176:18;;;14309:19;4314:30;14349:14;;;4294:51;4364:12;;;10162:245;10414:407;10605:2;10619:47;;;4615:2;10590:18;;;14309:19;4651:34;14349:14;;;4631:55;-1:-1;;;4706:12;;;4699:27;4745:12;;;10576:245;10828:407;11019:2;11033:47;;;4996:2;11004:18;;;14309:19;5032:34;14349:14;;;5012:55;-1:-1;;;5087:12;;;5080:25;5124:12;;;10990:245;11242:407;11433:2;11447:47;;;5375:2;11418:18;;;14309:19;5411:25;14349:14;;;5391:46;5456:12;;;11404:245;11656:407;11847:2;11861:47;;;5707:2;11832:18;;;14309:19;5743:34;14349:14;;;5723:55;-1:-1;;;5798:12;;;5791:29;5839:12;;;11818:245;12070:310;6145:23;;8985:37;;6318:4;6307:16;;;6301:23;12236:3;12221:19;;;6330:63;;6378:14;;6301:23;6330:63;;;;6474:4;6467:5;6463:16;6457:23;6486:63;6474:4;6538:3;6534:14;6520:12;6486:63;;;;6628:4;6621:5;6617:16;6611:23;6640:82;6628:4;6711:3;6707:14;6693:12;6640:82;;;;6815:4;6808:5;6804:16;6798:23;6827:61;6815:4;6877:3;6873:14;6859:12;6827:61;;;;6983:4;6976:5;6972:16;6966:23;6983:4;7047:3;7043:14;8985:37;7153:4;7146:5;7142:16;7136:23;7153:4;7217:3;7213:14;8985:37;7316:4;7309:5;7305:16;7299:23;7328:119;7316:4;7436:3;7432:14;7418:12;7328:119;;;;7535:6;;7528:5;7524:18;7518:25;7549:121;7535:6;7657:3;7653:16;7639:12;7549:121;;;-1:-1;;7762:6;7751:18;;;7745:25;7824:16;;;8985:37;7921:6;7910:18;;;7904:25;7935:65;7983:16;;;7904:25;7935:65;;;;;12207:173;;;;;12387:213;8985:37;;;12505:2;12490:18;;12476:124;12607:1591;8985:37;;;-1:-1;;;;;14745:54;;;13300:2;13285:18;;3101:37;14745:54;;;13383:2;13368:18;;3101:37;14745:54;;;13485:2;13470:18;;3461:69;15106:10;15095:22;;;;13566:3;13551:19;;9213:36;14756:42;13635:19;;8985:37;;;;13734:3;13719:19;;8985:37;8296:23;-1:-1;;;;;14873:70;;;14884:58;13859:19;;8875:37;8296:23;;14873:70;14014:3;13999:19;;8875:37;14098:3;14083:19;;8985:37;14745:54;14183:3;14168:19;;3101:37;13135:3;13120:19;;13106:1092;15429:117;-1:-1;;;;;14745:54;;15488:35;;15478:2;;15537:1;;15527:12;15478:2;15472:74;;15553:117;-1:-1;;;;;15640:5;14629:42;15615:5;15612:35;15602:2;;15661:1;;15651:12" - }, - "contracts/interfaces/IDXswapFactory.sol:IDXswapFactory": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "PairCreated", - "type": "event" - }, - { - "inputs": [], - "name": "INIT_CODE_PAIR_HASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "allPairs", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "allPairsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "createPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeTo", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeToSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "getPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "protocolFeeDenominator", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeToSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_protocolFee", - "type": "uint8" - } - ], - "name": "setProtocolFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "swapFee", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "PairCreated", - "type": "event" - }, - { - "inputs": [], - "name": "INIT_CODE_PAIR_HASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "allPairs", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "allPairsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "createPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeTo", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeToSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "getPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "protocolFeeDenominator", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeToSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_protocolFee", - "type": "uint8" - } - ], - "name": "setProtocolFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "swapFee", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/interfaces/IDXswapPair.sol:IDXswapPair": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/interfaces/IDXswapRouter.sol:IDXswapRouter": { - "abi": [ - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/interfaces/IERC20.sol:IERC20": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/interfaces/IWETH.sol:IWETH": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "", - "bin": "", - "bin-runtime": "", - "srcmap": "", - "srcmap-runtime": "" - }, - "contracts/libraries/AddressStringUtil.sol:AddressStringUtil": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220de9f1782172d3db4f67097663320a7b47813836ebd840eb22b899391bbdb7d6164736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE SWAP16 OR DUP3 OR 0x2D RETURNDATASIZE 0xB4 0xF6 PUSH17 0x97663320A7B47813836EBD840EB22B8993 SWAP2 0xBB 0xDB PUSH30 0x6164736F6C63430006060033000000000000000000000000000000000000 ", - "sourceMap": "26:1303:16:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220de9f1782172d3db4f67097663320a7b47813836ebd840eb22b899391bbdb7d6164736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE SWAP16 OR DUP3 OR 0x2D RETURNDATASIZE 0xB4 0xF6 PUSH17 0x97663320A7B47813836EBD840EB22B8993 SWAP2 0xBB 0xDB PUSH30 0x6164736F6C63430006060033000000000000000000000000000000000000 ", - "sourceMap": "26:1303:16:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220de9f1782172d3db4f67097663320a7b47813836ebd840eb22b899391bbdb7d6164736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220de9f1782172d3db4f67097663320a7b47813836ebd840eb22b899391bbdb7d6164736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220de9f1782172d3db4f67097663320a7b47813836ebd840eb22b899391bbdb7d6164736f6c63430006060033", - "srcmap": "26:1303:16:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "26:1303:16:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/libraries/Babylonian.sol:Babylonian": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c0515507b61f5765f079e1275a0d5b9c7057434eb9e795ad428bf72888644064736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xC0 MLOAD SSTORE SMOD 0xB6 0x1F JUMPI PUSH6 0xF079E1275A0D JUMPDEST SWAP13 PUSH17 0x57434EB9E795AD428BF72888644064736F PUSH13 0x63430006060033000000000000 ", - "sourceMap": "164:341:17:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c0515507b61f5765f079e1275a0d5b9c7057434eb9e795ad428bf72888644064736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xC0 MLOAD SSTORE SMOD 0xB6 0x1F JUMPI PUSH6 0xF079E1275A0D JUMPDEST SWAP13 PUSH17 0x57434EB9E795AD428BF72888644064736F PUSH13 0x63430006060033000000000000 ", - "sourceMap": "164:341:17:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c0515507b61f5765f079e1275a0d5b9c7057434eb9e795ad428bf72888644064736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c0515507b61f5765f079e1275a0d5b9c7057434eb9e795ad428bf72888644064736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c0515507b61f5765f079e1275a0d5b9c7057434eb9e795ad428bf72888644064736f6c63430006060033", - "srcmap": "164:341:17:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "164:341:17:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/libraries/DXswapLibrary.sol:DXswapLibrary": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a822a08121430275d33338cd7e5b80916d9704fe287e3cfe469bbc1306135f9464736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 0x22 LOG0 DUP2 0x21 NUMBER MUL PUSH22 0xD33338CD7E5B80916D9704FE287E3CFE469BBC130613 0x5F SWAP5 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "112:4738:18:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a822a08121430275d33338cd7e5b80916d9704fe287e3cfe469bbc1306135f9464736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 0x22 LOG0 DUP2 0x21 NUMBER MUL PUSH22 0xD33338CD7E5B80916D9704FE287E3CFE469BBC130613 0x5F SWAP5 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "112:4738:18:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a822a08121430275d33338cd7e5b80916d9704fe287e3cfe469bbc1306135f9464736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a822a08121430275d33338cd7e5b80916d9704fe287e3cfe469bbc1306135f9464736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a822a08121430275d33338cd7e5b80916d9704fe287e3cfe469bbc1306135f9464736f6c63430006060033", - "srcmap": "112:4738:18:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "112:4738:18:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/libraries/DXswapOracleLibrary.sol:DXswapOracleLibrary": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1354ddb5357fc0c71f57bd1e1b4b01eb133671b06b2ed007b5b9b0bab51f8964736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED SGT SLOAD 0xDD 0xB5 CALLDATALOAD PUSH32 0xC0C71F57BD1E1B4B01EB133671B06B2ED007B5B9B0BAB51F8964736F6C634300 MOD MOD STOP CALLER ", - "sourceMap": "206:1432:19:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1354ddb5357fc0c71f57bd1e1b4b01eb133671b06b2ed007b5b9b0bab51f8964736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED SGT SLOAD 0xDD 0xB5 CALLDATALOAD PUSH32 0xC0C71F57BD1E1B4B01EB133671B06B2ED007B5B9B0BAB51F8964736F6C634300 MOD MOD STOP CALLER ", - "sourceMap": "206:1432:19:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1354ddb5357fc0c71f57bd1e1b4b01eb133671b06b2ed007b5b9b0bab51f8964736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1354ddb5357fc0c71f57bd1e1b4b01eb133671b06b2ed007b5b9b0bab51f8964736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1354ddb5357fc0c71f57bd1e1b4b01eb133671b06b2ed007b5b9b0bab51f8964736f6c63430006060033", - "srcmap": "206:1432:19:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "206:1432:19:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/libraries/FixedPoint.sol:FixedPoint": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220136e7de3d53d1501fe0d8d6f0799b44227d4e0daafba7c3bfdb376df2f45689d64736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT PUSH15 0x7DE3D53D1501FE0D8D6F0799B44227 0xD4 0xE0 0xDA 0xAF 0xBA PUSH29 0x3BFDB376DF2F45689D64736F6C63430006060033000000000000000000 ", - "sourceMap": "129:2052:20:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220136e7de3d53d1501fe0d8d6f0799b44227d4e0daafba7c3bfdb376df2f45689d64736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT PUSH15 0x7DE3D53D1501FE0D8D6F0799B44227 0xD4 0xE0 0xDA 0xAF 0xBA PUSH29 0x3BFDB376DF2F45689D64736F6C63430006060033000000000000000000 ", - "sourceMap": "129:2052:20:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220136e7de3d53d1501fe0d8d6f0799b44227d4e0daafba7c3bfdb376df2f45689d64736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220136e7de3d53d1501fe0d8d6f0799b44227d4e0daafba7c3bfdb376df2f45689d64736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220136e7de3d53d1501fe0d8d6f0799b44227d4e0daafba7c3bfdb376df2f45689d64736f6c63430006060033", - "srcmap": "129:2052:20:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "129:2052:20:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/libraries/PairNamer.sol:PairNamer": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1f6f3a148dcd70dfec5a804cbd460b71d9adea2634afa25bd4d4f23fac150da64736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 0xF6 RETURN LOG1 0x48 0xDC 0xD7 0xD INVALID 0xC5 0xA8 DIV 0xCB 0xD4 PUSH1 0xB7 SAR SWAP11 0xDE LOG2 PUSH4 0x4AFA25BD 0x4D 0x4F 0x23 STATICCALL 0xC1 POP 0xDA PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "125:1134:21:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1f6f3a148dcd70dfec5a804cbd460b71d9adea2634afa25bd4d4f23fac150da64736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 0xF6 RETURN LOG1 0x48 0xDC 0xD7 0xD INVALID 0xC5 0xA8 DIV 0xCB 0xD4 PUSH1 0xB7 SAR SWAP11 0xDE LOG2 PUSH4 0x4AFA25BD 0x4D 0x4F 0x23 STATICCALL 0xC1 POP 0xDA PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "125:1134:21:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1f6f3a148dcd70dfec5a804cbd460b71d9adea2634afa25bd4d4f23fac150da64736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1f6f3a148dcd70dfec5a804cbd460b71d9adea2634afa25bd4d4f23fac150da64736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1f6f3a148dcd70dfec5a804cbd460b71d9adea2634afa25bd4d4f23fac150da64736f6c63430006060033", - "srcmap": "125:1134:21:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "125:1134:21:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/libraries/SafeERC20Namer.sol:SafeERC20Namer": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec773d4c38bad4c2128e3f7c895e644260a23956fb6c4fe9a59dd7449334f20464736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC PUSH24 0x3D4C38BAD4C2128E3F7C895E644260A23956FB6C4FE9A59D 0xD7 DIFFICULTY SWAP4 CALLVALUE CALLCODE DIV PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "257:3504:22:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec773d4c38bad4c2128e3f7c895e644260a23956fb6c4fe9a59dd7449334f20464736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC PUSH24 0x3D4C38BAD4C2128E3F7C895E644260A23956FB6C4FE9A59D 0xD7 DIFFICULTY SWAP4 CALLVALUE CALLCODE DIV PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "257:3504:22:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec773d4c38bad4c2128e3f7c895e644260a23956fb6c4fe9a59dd7449334f20464736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec773d4c38bad4c2128e3f7c895e644260a23956fb6c4fe9a59dd7449334f20464736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec773d4c38bad4c2128e3f7c895e644260a23956fb6c4fe9a59dd7449334f20464736f6c63430006060033", - "srcmap": "257:3504:22:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "257:3504:22:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/libraries/SafeMath.sol:SafeMath": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d81193409a08a5b44ac136df0b1c3f1d2731c2537ce2e0f721a06e04167296364736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 DUP2 NOT CALLVALUE MULMOD LOG0 DUP11 JUMPDEST DIFFICULTY 0xAC SGT PUSH14 0xF0B1C3F1D2731C2537CE2E0F721A MOD 0xE0 COINBASE PUSH8 0x296364736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "131:430:23:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d81193409a08a5b44ac136df0b1c3f1d2731c2537ce2e0f721a06e04167296364736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 DUP2 NOT CALLVALUE MULMOD LOG0 DUP11 JUMPDEST DIFFICULTY 0xAC SGT PUSH14 0xF0B1C3F1D2731C2537CE2E0F721A MOD 0xE0 COINBASE PUSH8 0x296364736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "131:430:23:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d81193409a08a5b44ac136df0b1c3f1d2731c2537ce2e0f721a06e04167296364736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d81193409a08a5b44ac136df0b1c3f1d2731c2537ce2e0f721a06e04167296364736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d81193409a08a5b44ac136df0b1c3f1d2731c2537ce2e0f721a06e04167296364736f6c63430006060033", - "srcmap": "131:430:23:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "131:430:23:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/libraries/TransferHelper.sol:TransferHelper": { - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea2500d861162ae7c305ab75b82ef3b893fa794b9eb1b7c23c2a8a18d75fb2464736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E LOG2 POP 0xD DUP7 GT PUSH3 0xAE7C30 GAS 0xB7 JUMPDEST DUP3 0xEF EXTCODESIZE DUP10 EXTCODEHASH 0xA7 SWAP5 0xB9 0xEB SHL PUSH29 0x23C2A8A18D75FB2464736F6C6343000606003300000000000000000000 ", - "sourceMap": "137:1350:24:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea2500d861162ae7c305ab75b82ef3b893fa794b9eb1b7c23c2a8a18d75fb2464736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E LOG2 POP 0xD DUP7 GT PUSH3 0xAE7C30 GAS 0xB7 JUMPDEST DUP3 0xEF EXTCODESIZE DUP10 EXTCODEHASH 0xA7 SWAP5 0xB9 0xEB SHL PUSH29 0x23C2A8A18D75FB2464736F6C6343000606003300000000000000000000 ", - "sourceMap": "137:1350:24:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea2500d861162ae7c305ab75b82ef3b893fa794b9eb1b7c23c2a8a18d75fb2464736f6c63430006060033", - "bin": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea2500d861162ae7c305ab75b82ef3b893fa794b9eb1b7c23c2a8a18d75fb2464736f6c63430006060033", - "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea2500d861162ae7c305ab75b82ef3b893fa794b9eb1b7c23c2a8a18d75fb2464736f6c63430006060033", - "srcmap": "137:1350:24:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "srcmap-runtime": "137:1350:24:-:0;;;;;;12:1:-1;9;2:12" - }, - "contracts/test/DeflatingERC20.sol:DeflatingERC20": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_totalSupply", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051610bc0380380610bc08339818101604052602081101561003357600080fd5b50516040514690806052610b6e8239604080519182900360520182208282018252601483527f4465666c6174696e67205465737420546f6b656e0000000000000000000000006020938401528151808301835260018152603160f81b908401528151808401919091527ff89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061012633836001600160e01b0361012d16565b505061022d565b610146816000546101cf60201b6108ad1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101779183906108ad6101cf821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610227576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b6109328061023c6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610340565b604080519115158252519081900360200190f35b610199610357565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b0381358116916020810135909116906040013561035d565b6101996103f7565b6101f161041b565b6040805160ff9092168252519081900360200190f35b610199610420565b6101996004803603602081101561022557600080fd5b50356001600160a01b0316610426565b6101996004803603602081101561024b57600080fd5b50356001600160a01b0316610438565b6100dc61044a565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610469565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610476565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610661565b604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b600061034d33848461067e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103e2576001600160a01b03841660009081526002602090815260408083203384529091529020546103bd908363ffffffff6106e016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103ed848484610730565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016211151560ea1b81525081565b600061034d338484610730565b428410156104b5576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106065750886001600160a01b0316816001600160a01b0316145b61064b576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61065689898961067e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610351576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6064810461073e848261080f565b6000610750838363ffffffff6106e016565b6001600160a01b03861660009081526001602052604090205490915061077c908263ffffffff6106e016565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546107b1908263ffffffff6108ad16565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b038216600090815260016020526040902054610838908263ffffffff6106e016565b6001600160a01b03831660009081526001602052604081209190915554610865908263ffffffff6106e016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b80820182811015610351576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122016b7091606a6edffc0ae575e71ef37fce15444bd4ee72a5ba37808e3efb19a3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xBC0 CODESIZE SUB DUP1 PUSH2 0xBC0 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0xB6E DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0x14 DUP4 MSTORE PUSH32 0x4465666C6174696E67205465737420546F6B656E000000000000000000000000 PUSH1 0x20 SWAP4 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xF89E31130E6FD3D87D62A1AC2770FBA58BED5A06C47CE70FA97F8218B1B2743A DUP2 DUP4 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE POP PUSH2 0x126 CALLER DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH2 0x12D AND JUMP JUMPDEST POP POP PUSH2 0x22D JUMP JUMPDEST PUSH2 0x146 DUP2 PUSH1 0x0 SLOAD PUSH2 0x1CF PUSH1 0x20 SHL PUSH2 0x8AD OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x177 SWAP2 DUP4 SWAP1 PUSH2 0x8AD PUSH2 0x1CF DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x227 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x932 DUP1 PUSH2 0x23C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2E2 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x235 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x116 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x340 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x357 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x199 PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x420 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x426 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x438 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x44A JUMP JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x469 JUMP JUMPDEST PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x476 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x2232B33630BA34B733902A32B9BA102A37B5B2B7 PUSH1 0x61 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D CALLER DUP5 DUP5 PUSH2 0x67E JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3E2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3BD SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x3ED DUP5 DUP5 DUP5 PUSH2 0x730 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x111515 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D CALLER DUP5 DUP5 PUSH2 0x730 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x606 JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x64B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x494E56414C49445F5349474E4154555245 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x656 DUP10 DUP10 DUP10 PUSH2 0x67E JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x351 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 DIV PUSH2 0x73E DUP5 DUP3 PUSH2 0x80F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x750 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x77C SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x7B1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x8AD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x838 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x865 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x351 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 AND 0xB7 MULMOD AND MOD 0xA6 0xED SELFDESTRUCT 0xC0 0xAE JUMPI 0x5E PUSH18 0xEF37FCE15444BD4EE72A5BA37808E3EFB19A CALLDATACOPY PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 ", - "sourceMap": "62:3507:25:-:0;;;864:504;5:9:-1;2:2;;;27:1;24;17:12;2:2;864:504:25;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;864:504:25;1066:95;;968:9;;1066:95;;;;;;;;;;;;;;;;1195:4;;;;;;;;;;;;;;1229:10;;;;;;;;;;-1:-1:-1;;;1229:10:25;;;;1038:272;;;;;;;;;1179:22;1038:272;;;;1219:21;1038:272;;;;;;;;;;1291:4;1038:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1038:272:25;;;;;;;1015:305;;;;;996:16;:324;-1:-1:-1;1330:31:25;1336:10;1348:12;-1:-1:-1;;;;;1330:5:25;:31;:::i;:::-;864:504;;62:3507;;1374:197;1446:22;1462:5;1446:11;;:15;;;;;;:22;;;;:::i;:::-;1432:11;:36;;;-1:-1:-1;;;;;1494:13:25;;;;:9;:13;;;;;;;;;:24;;1512:5;;1494:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1478:13:25;;;;;;:9;:13;;;;;;;;:40;;;;1533:31;;;;;;;1478:13;;;;1533:31;;;;;;;;;;1374:197;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;;;;:::o;62:3507:25:-;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610340565b604080519115158252519081900360200190f35b610199610357565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b0381358116916020810135909116906040013561035d565b6101996103f7565b6101f161041b565b6040805160ff9092168252519081900360200190f35b610199610420565b6101996004803603602081101561022557600080fd5b50356001600160a01b0316610426565b6101996004803603602081101561024b57600080fd5b50356001600160a01b0316610438565b6100dc61044a565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610469565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610476565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610661565b604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b600061034d33848461067e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103e2576001600160a01b03841660009081526002602090815260408083203384529091529020546103bd908363ffffffff6106e016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103ed848484610730565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016211151560ea1b81525081565b600061034d338484610730565b428410156104b5576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106065750886001600160a01b0316816001600160a01b0316145b61064b576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61065689898961067e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610351576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6064810461073e848261080f565b6000610750838363ffffffff6106e016565b6001600160a01b03861660009081526001602052604090205490915061077c908263ffffffff6106e016565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546107b1908263ffffffff6108ad16565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b038216600090815260016020526040902054610838908263ffffffff6106e016565b6001600160a01b03831660009081526001602052604081209190915554610865908263ffffffff6106e016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b80820182811015610351576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122016b7091606a6edffc0ae575e71ef37fce15444bd4ee72a5ba37808e3efb19a3764736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2E2 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x235 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x116 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x340 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x357 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x199 PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x420 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x426 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x438 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x44A JUMP JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x469 JUMP JUMPDEST PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x476 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x2232B33630BA34B733902A32B9BA102A37B5B2B7 PUSH1 0x61 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D CALLER DUP5 DUP5 PUSH2 0x67E JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3E2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3BD SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x3ED DUP5 DUP5 DUP5 PUSH2 0x730 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x111515 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D CALLER DUP5 DUP5 PUSH2 0x730 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x606 JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x64B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x494E56414C49445F5349474E4154555245 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x656 DUP10 DUP10 DUP10 PUSH2 0x67E JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x351 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 DIV PUSH2 0x73E DUP5 DUP3 PUSH2 0x80F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x750 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x77C SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x7B1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x8AD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x838 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x865 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x351 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 AND 0xB7 MULMOD AND MOD 0xA6 0xED SELFDESTRUCT 0xC0 0xAE JUMPI 0x5E PUSH18 0xEF37FCE15444BD4EE72A5BA37808E3EFB19A CALLDATACOPY PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "62:3507:25:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;62:3507:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;122:52:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;122:52:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2334:144;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2334:144:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;264:24;;;:::i;:::-;;;;;;;;;;;;;;;;2626:295;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2626:295:25;;;;;;;;;;;;;;;;;:::i;550:108::-;;;:::i;223:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;409:31;;;:::i;294:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;294:41:25;-1:-1:-1;;;;;294:41:25;;:::i;664:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;664:38:25;-1:-1:-1;;;;;664:38:25;;:::i;180:37::-;;;:::i;2484:136::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2484:136:25;;;;;;;;:::i;2927:640::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2927:640:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;341:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;341:61:25;;;;;;;;;;:::i;122:52::-;;;;;;;;;;;;;;-1:-1:-1;;;122:52:25;;;;:::o;2334:144::-;2398:4;2414:36;2423:10;2435:7;2444:5;2414:8;:36::i;:::-;-1:-1:-1;2467:4:25;2334:144;;;;;:::o;264:24::-;;;;:::o;2626:295::-;-1:-1:-1;;;;;2724:15:25;;2704:4;2724:15;;;:9;:15;;;;;;;;2740:10;2724:27;;;;;;;;-1:-1:-1;;2724:39:25;2720:138;;-1:-1:-1;;;;;2809:15:25;;;;;;:9;:15;;;;;;;;2825:10;2809:27;;;;;;;;:38;;2841:5;2809:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;2779:15:25;;;;;;:9;:15;;;;;;;;2795:10;2779:27;;;;;;;:68;2720:138;2867:26;2877:4;2883:2;2887:5;2867:9;:26::i;:::-;-1:-1:-1;2910:4:25;2626:295;;;;;:::o;550:108::-;592:66;550:108;:::o;223:35::-;256:2;223:35;:::o;409:31::-;;;;:::o;294:41::-;;;;;;;;;;;;;:::o;664:38::-;;;;;;;;;;;;;:::o;180:37::-;;;;;;;;;;;;;;-1:-1:-1;;;180:37:25;;;;:::o;2484:136::-;2544:4;2560:32;2570:10;2582:2;2586:5;2560:9;:32::i;2927:640::-;3072:15;3060:8;:27;;3052:47;;;;;-1:-1:-1;;;3052:47:25;;;;;;;;;;;;-1:-1:-1;;;3052:47:25;;;;;;;;;;;;;;;3211:16;;-1:-1:-1;;;;;3306:13:25;;;3109:14;3306:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3255:77;;592:66;3255:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3255:77:25;;;;;3245:88;;;;;;-1:-1:-1;;;3149:198:25;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3149:198:25;;;;;;3126:231;;;;;;;;;3394:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3109:14;;3306:15;3394:26;;;;;-1:-1:-1;;3394:26:25;;;;;;;;;;3306:15;3394:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3394:26:25;;-1:-1:-1;;3394:26:25;;;-1:-1:-1;;;;;;;3438:30:25;;;;;;:59;;;3492:5;-1:-1:-1;;;;;3472:25:25;:16;-1:-1:-1;;;;;3472:25:25;;3438:59;3430:89;;;;;-1:-1:-1;;;3430:89:25;;;;;;;;;;;;-1:-1:-1;;;3430:89:25;;;;;;;;;;;;;;;3529:31;3538:5;3545:7;3554:5;3529:8;:31::i;:::-;2927:640;;;;;;;;;:::o;341:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1788:166::-;-1:-1:-1;;;;;1868:16:25;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1916:31;;;;;;;;;;;;;;;;;1788:166;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;1960:368:25;2061:3;2053:11;;2074:23;2080:4;2053:11;2074:5;:23::i;:::-;2107:19;2129:21;:5;2139:10;2129:21;:9;:21;:::i;:::-;-1:-1:-1;;;;;2178:15:25;;;;;;:9;:15;;;;;;2107:43;;-1:-1:-1;2178:35:25;;2107:43;2178:35;:19;:35;:::i;:::-;-1:-1:-1;;;;;2160:15:25;;;;;;;:9;:15;;;;;;:53;;;;2239:13;;;;;;;:33;;2257:14;2239:33;:17;:33;:::i;:::-;-1:-1:-1;;;;;2223:13:25;;;;;;;:9;:13;;;;;;;;;:49;;;;2287:34;;;;;;;2223:13;;2287:34;;;;;;;;;;;;;1960:368;;;;;:::o;1577:205::-;-1:-1:-1;;;;;1655:15:25;;;;;;:9;:15;;;;;;:26;;1675:5;1655:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;1637:15:25;;;;;;:9;:15;;;;;:44;;;;1705:11;:22;;1721:5;1705:22;:15;:22;:::i;:::-;1691:11;:36;;;1742:33;;;;;;;;-1:-1:-1;;;;;1742:33:25;;;;;;;;;;;;;1577:205;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_totalSupply", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "608060405234801561001057600080fd5b50604051610bc0380380610bc08339818101604052602081101561003357600080fd5b50516040514690806052610b6e8239604080519182900360520182208282018252601483527f4465666c6174696e67205465737420546f6b656e0000000000000000000000006020938401528151808301835260018152603160f81b908401528151808401919091527ff89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061012633836001600160e01b0361012d16565b505061022d565b610146816000546101cf60201b6108ad1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101779183906108ad6101cf821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610227576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b6109328061023c6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610340565b604080519115158252519081900360200190f35b610199610357565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b0381358116916020810135909116906040013561035d565b6101996103f7565b6101f161041b565b6040805160ff9092168252519081900360200190f35b610199610420565b6101996004803603602081101561022557600080fd5b50356001600160a01b0316610426565b6101996004803603602081101561024b57600080fd5b50356001600160a01b0316610438565b6100dc61044a565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610469565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610476565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610661565b604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b600061034d33848461067e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103e2576001600160a01b03841660009081526002602090815260408083203384529091529020546103bd908363ffffffff6106e016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103ed848484610730565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016211151560ea1b81525081565b600061034d338484610730565b428410156104b5576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106065750886001600160a01b0316816001600160a01b0316145b61064b576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61065689898961067e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610351576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6064810461073e848261080f565b6000610750838363ffffffff6106e016565b6001600160a01b03861660009081526001602052604090205490915061077c908263ffffffff6106e016565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546107b1908263ffffffff6108ad16565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b038216600090815260016020526040902054610838908263ffffffff6106e016565b6001600160a01b03831660009081526001602052604081209190915554610865908263ffffffff6106e016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b80820182811015610351576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122016b7091606a6edffc0ae575e71ef37fce15444bd4ee72a5ba37808e3efb19a3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "bin": "608060405234801561001057600080fd5b50604051610bc0380380610bc08339818101604052602081101561003357600080fd5b50516040514690806052610b6e8239604080519182900360520182208282018252601483527f4465666c6174696e67205465737420546f6b656e0000000000000000000000006020938401528151808301835260018152603160f81b908401528151808401919091527ff89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061012633836001600160e01b0361012d16565b505061022d565b610146816000546101cf60201b6108ad1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101779183906108ad6101cf821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610227576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b6109328061023c6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610340565b604080519115158252519081900360200190f35b610199610357565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b0381358116916020810135909116906040013561035d565b6101996103f7565b6101f161041b565b6040805160ff9092168252519081900360200190f35b610199610420565b6101996004803603602081101561022557600080fd5b50356001600160a01b0316610426565b6101996004803603602081101561024b57600080fd5b50356001600160a01b0316610438565b6100dc61044a565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610469565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610476565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610661565b604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b600061034d33848461067e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103e2576001600160a01b03841660009081526002602090815260408083203384529091529020546103bd908363ffffffff6106e016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103ed848484610730565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016211151560ea1b81525081565b600061034d338484610730565b428410156104b5576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106065750886001600160a01b0316816001600160a01b0316145b61064b576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61065689898961067e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610351576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6064810461073e848261080f565b6000610750838363ffffffff6106e016565b6001600160a01b03861660009081526001602052604090205490915061077c908263ffffffff6106e016565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546107b1908263ffffffff6108ad16565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b038216600090815260016020526040902054610838908263ffffffff6106e016565b6001600160a01b03831660009081526001602052604081209190915554610865908263ffffffff6106e016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b80820182811015610351576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122016b7091606a6edffc0ae575e71ef37fce15444bd4ee72a5ba37808e3efb19a3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "bin-runtime": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610340565b604080519115158252519081900360200190f35b610199610357565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b0381358116916020810135909116906040013561035d565b6101996103f7565b6101f161041b565b6040805160ff9092168252519081900360200190f35b610199610420565b6101996004803603602081101561022557600080fd5b50356001600160a01b0316610426565b6101996004803603602081101561024b57600080fd5b50356001600160a01b0316610438565b6100dc61044a565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610469565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610476565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610661565b604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b600061034d33848461067e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103e2576001600160a01b03841660009081526002602090815260408083203384529091529020546103bd908363ffffffff6106e016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103ed848484610730565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016211151560ea1b81525081565b600061034d338484610730565b428410156104b5576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106065750886001600160a01b0316816001600160a01b0316145b61064b576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61065689898961067e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610351576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6064810461073e848261080f565b6000610750838363ffffffff6106e016565b6001600160a01b03861660009081526001602052604090205490915061077c908263ffffffff6106e016565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546107b1908263ffffffff6108ad16565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b038216600090815260016020526040902054610838908263ffffffff6106e016565b6001600160a01b03831660009081526001602052604081209190915554610865908263ffffffff6106e016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b80820182811015610351576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122016b7091606a6edffc0ae575e71ef37fce15444bd4ee72a5ba37808e3efb19a3764736f6c63430006060033", - "srcmap": "62:3507:25:-:0;;;864:504;5:9:-1;2:2;;;27:1;24;17:12;2:2;864:504:25;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;864:504:25;1066:95;;968:9;;1066:95;;;;;;;;;;;;;;;;1195:4;;;;;;;;;;;;;;1229:10;;;;;;;;;;-1:-1:-1;;;1229:10:25;;;;1038:272;;;;;;;;;1179:22;1038:272;;;;1219:21;1038:272;;;;;;;;;;1291:4;1038:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1038:272:25;;;;;;;1015:305;;;;;996:16;:324;-1:-1:-1;1330:31:25;1336:10;1348:12;-1:-1:-1;;;;;1330:5:25;:31;:::i;:::-;864:504;;62:3507;;1374:197;1446:22;1462:5;1446:11;;:15;;;;;;:22;;;;:::i;:::-;1432:11;:36;;;-1:-1:-1;;;;;1494:13:25;;;;:9;:13;;;;;;;;;:24;;1512:5;;1494:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1478:13:25;;;;;;:9;:13;;;;;;;;:40;;;;1533:31;;;;;;;1478:13;;;;1533:31;;;;;;;;;;1374:197;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;;;;:::o;62:3507:25:-;;;;;;;", - "srcmap-runtime": "62:3507:25:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;62:3507:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;122:52:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;122:52:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2334:144;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2334:144:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;264:24;;;:::i;:::-;;;;;;;;;;;;;;;;2626:295;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2626:295:25;;;;;;;;;;;;;;;;;:::i;550:108::-;;;:::i;223:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;409:31;;;:::i;294:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;294:41:25;-1:-1:-1;;;;;294:41:25;;:::i;664:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;664:38:25;-1:-1:-1;;;;;664:38:25;;:::i;180:37::-;;;:::i;2484:136::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2484:136:25;;;;;;;;:::i;2927:640::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2927:640:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;341:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;341:61:25;;;;;;;;;;:::i;122:52::-;;;;;;;;;;;;;;-1:-1:-1;;;122:52:25;;;;:::o;2334:144::-;2398:4;2414:36;2423:10;2435:7;2444:5;2414:8;:36::i;:::-;-1:-1:-1;2467:4:25;2334:144;;;;;:::o;264:24::-;;;;:::o;2626:295::-;-1:-1:-1;;;;;2724:15:25;;2704:4;2724:15;;;:9;:15;;;;;;;;2740:10;2724:27;;;;;;;;-1:-1:-1;;2724:39:25;2720:138;;-1:-1:-1;;;;;2809:15:25;;;;;;:9;:15;;;;;;;;2825:10;2809:27;;;;;;;;:38;;2841:5;2809:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;2779:15:25;;;;;;:9;:15;;;;;;;;2795:10;2779:27;;;;;;;:68;2720:138;2867:26;2877:4;2883:2;2887:5;2867:9;:26::i;:::-;-1:-1:-1;2910:4:25;2626:295;;;;;:::o;550:108::-;592:66;550:108;:::o;223:35::-;256:2;223:35;:::o;409:31::-;;;;:::o;294:41::-;;;;;;;;;;;;;:::o;664:38::-;;;;;;;;;;;;;:::o;180:37::-;;;;;;;;;;;;;;-1:-1:-1;;;180:37:25;;;;:::o;2484:136::-;2544:4;2560:32;2570:10;2582:2;2586:5;2560:9;:32::i;2927:640::-;3072:15;3060:8;:27;;3052:47;;;;;-1:-1:-1;;;3052:47:25;;;;;;;;;;;;-1:-1:-1;;;3052:47:25;;;;;;;;;;;;;;;3211:16;;-1:-1:-1;;;;;3306:13:25;;;3109:14;3306:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3255:77;;592:66;3255:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3255:77:25;;;;;3245:88;;;;;;-1:-1:-1;;;3149:198:25;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3149:198:25;;;;;;3126:231;;;;;;;;;3394:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3109:14;;3306:15;3394:26;;;;;-1:-1:-1;;3394:26:25;;;;;;;;;;3306:15;3394:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3394:26:25;;-1:-1:-1;;3394:26:25;;;-1:-1:-1;;;;;;;3438:30:25;;;;;;:59;;;3492:5;-1:-1:-1;;;;;3472:25:25;:16;-1:-1:-1;;;;;3472:25:25;;3438:59;3430:89;;;;;-1:-1:-1;;;3430:89:25;;;;;;;;;;;;-1:-1:-1;;;3430:89:25;;;;;;;;;;;;;;;3529:31;3538:5;3545:7;3554:5;3529:8;:31::i;:::-;2927:640;;;;;;;;;:::o;341:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1788:166::-;-1:-1:-1;;;;;1868:16:25;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1916:31;;;;;;;;;;;;;;;;;1788:166;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;1960:368:25;2061:3;2053:11;;2074:23;2080:4;2053:11;2074:5;:23::i;:::-;2107:19;2129:21;:5;2139:10;2129:21;:9;:21;:::i;:::-;-1:-1:-1;;;;;2178:15:25;;;;;;:9;:15;;;;;;2107:43;;-1:-1:-1;2178:35:25;;2107:43;2178:35;:19;:35;:::i;:::-;-1:-1:-1;;;;;2160:15:25;;;;;;;:9;:15;;;;;;:53;;;;2239:13;;;;;;;:33;;2257:14;2239:33;:17;:33;:::i;:::-;-1:-1:-1;;;;;2223:13:25;;;;;;;:9;:13;;;;;;;;;:49;;;;2287:34;;;;;;;2223:13;;2287:34;;;;;;;;;;;;;1960:368;;;;;:::o;1577:205::-;-1:-1:-1;;;;;1655:15:25;;;;;;:9;:15;;;;;;:26;;1675:5;1655:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;1637:15:25;;;;;;:9;:15;;;;;:44;;;;1705:11;:22;;1721:5;1705:22;:15;:22;:::i;:::-;1691:11;:36;;;1742:33;;;;;;;;-1:-1:-1;;;;;1742:33:25;;;;;;;;;;;;;1577:205;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;" - }, - "contracts/test/ERC20.sol:ERC20": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_totalSupply", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051610adf380380610adf8339818101604052602081101561003357600080fd5b50516040514690806052610a8d8239604080519182900360520182208282018252600a8352692a32b9ba102a37b5b2b760b11b6020938401528151808301835260018152603160f81b908401528151808401919091527f81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061011333836001600160e01b0361011a16565b505061021a565b610133816000546101bc60201b6107df1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101649183906107df6101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610864806102296000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b03813516906020013561045e565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046b565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610656565b6040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525081565b6000610343338484610673565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106d516565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610725565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b60405180604001604052806002815260200161151560f21b81525081565b6000610343338484610725565b428410156104aa576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105c5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906105fb5750886001600160a01b0316816001600160a01b0316145b610640576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61064b898989610673565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b03831660009081526001602052604090205461074e908263ffffffff6106d516565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610783908263ffffffff6107df16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea2646970667358221220b279e8e6e98f038776553f479e59ff12ad12c96755c7bea45c684d8e4a9a3d3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xADF CODESIZE SUB DUP1 PUSH2 0xADF DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0xA8D DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xA DUP4 MSTORE PUSH10 0x2A32B9BA102A37B5B2B7 PUSH1 0xB1 SHL PUSH1 0x20 SWAP4 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x81E8AD438398AB0D4A2A7ECB159490C091BB27C67ACE5181F70084E30FADAEA2 DUP2 DUP4 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE POP PUSH2 0x113 CALLER DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH2 0x11A AND JUMP JUMPDEST POP POP PUSH2 0x21A JUMP JUMPDEST PUSH2 0x133 DUP2 PUSH1 0x0 SLOAD PUSH2 0x1BC PUSH1 0x20 SHL PUSH2 0x7DF OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x164 SWAP2 DUP4 SWAP1 PUSH2 0x7DF PUSH2 0x1BC DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x214 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x864 DUP1 PUSH2 0x229 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2E2 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x235 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x116 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x336 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x353 JUMP JUMPDEST PUSH2 0x199 PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x411 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x416 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x41C JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x42E JUMP JUMPDEST PUSH2 0xDC PUSH2 0x440 JUMP JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x45E JUMP JUMPDEST PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x46B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x656 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x2A32B9BA102A37B5B2B7 PUSH1 0xB1 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343 CALLER DUP5 DUP5 PUSH2 0x673 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3D8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3B3 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6D5 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x3E3 DUP5 DUP5 DUP5 PUSH2 0x725 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1515 PUSH1 0xF2 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343 CALLER DUP5 DUP5 PUSH2 0x725 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4AA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x5FB JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x640 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x494E56414C49445F5349474E4154555245 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x64B DUP10 DUP10 DUP10 PUSH2 0x673 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x74E SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6D5 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x783 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x7DF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 PUSH26 0xE8E6E98F038776553F479E59FF12AD12C96755C7BEA45C684D8E 0x4A SWAP11 RETURNDATASIZE CALLDATACOPY PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 ", - "sourceMap": "62:3335:26:-:0;;;844:504;5:9:-1;2:2;;;27:1;24;17:12;2:2;844:504:26;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;844:504:26;1046:95;;948:9;;1046:95;;;;;;;;;;;;;;;;1175:4;;;;;;;;-1:-1:-1;;;1175:4:26;;;;;1209:10;;;;;;;;;;-1:-1:-1;;;1209:10:26;;;;1018:272;;;;;;;;;1159:22;1018:272;;;;1199:21;1018:272;;;;;;;;;;1271:4;1018:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1018:272:26;;;;;;;995:305;;;;;976:16;:324;-1:-1:-1;1310:31:26;1316:10;1328:12;-1:-1:-1;;;;;1310:5:26;:31;:::i;:::-;844:504;;62:3335;;1354:197;1426:22;1442:5;1426:11;;:15;;;;;;:22;;;;:::i;:::-;1412:11;:36;;;-1:-1:-1;;;;;1474:13:26;;;;:9;:13;;;;;;;;;:24;;1492:5;;1474:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1458:13:26;;;;;;:9;:13;;;;;;;;:40;;;;1513:31;;;;;;;1458:13;;;;1513:31;;;;;;;;;;1354:197;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;;;;:::o;62:3335:26:-;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b03813516906020013561045e565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046b565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610656565b6040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525081565b6000610343338484610673565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106d516565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610725565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b60405180604001604052806002815260200161151560f21b81525081565b6000610343338484610725565b428410156104aa576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105c5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906105fb5750886001600160a01b0316816001600160a01b0316145b610640576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61064b898989610673565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b03831660009081526001602052604090205461074e908263ffffffff6106d516565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610783908263ffffffff6107df16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea2646970667358221220b279e8e6e98f038776553f479e59ff12ad12c96755c7bea45c684d8e4a9a3d3764736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2E2 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x235 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x116 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x336 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x353 JUMP JUMPDEST PUSH2 0x199 PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x411 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x416 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x41C JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x42E JUMP JUMPDEST PUSH2 0xDC PUSH2 0x440 JUMP JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x45E JUMP JUMPDEST PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x46B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x656 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x2A32B9BA102A37B5B2B7 PUSH1 0xB1 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343 CALLER DUP5 DUP5 PUSH2 0x673 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3D8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3B3 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6D5 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x3E3 DUP5 DUP5 DUP5 PUSH2 0x725 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1515 PUSH1 0xF2 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343 CALLER DUP5 DUP5 PUSH2 0x725 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4AA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x5FB JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x640 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x494E56414C49445F5349474E4154555245 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x64B DUP10 DUP10 DUP10 PUSH2 0x673 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x74E SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6D5 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x783 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x7DF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 PUSH26 0xE8E6E98F038776553F479E59FF12AD12C96755C7BEA45C684D8E 0x4A SWAP11 RETURNDATASIZE CALLDATACOPY PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "62:3335:26:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;62:3335:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;113:42:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;113:42:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2162:144;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2162:144:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;244:24;;;:::i;:::-;;;;;;;;;;;;;;;;2454:295;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2454:295:26;;;;;;;;;;;;;;;;;:::i;530:108::-;;;:::i;203:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;389:31;;;:::i;274:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;274:41:26;-1:-1:-1;;;;;274:41:26;;:::i;644:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;644:38:26;-1:-1:-1;;;;;644:38:26;;:::i;161:36::-;;;:::i;2312:136::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2312:136:26;;;;;;;;:::i;2755:640::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2755:640:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;321:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;321:61:26;;;;;;;;;;:::i;113:42::-;;;;;;;;;;;;;;-1:-1:-1;;;113:42:26;;;;:::o;2162:144::-;2226:4;2242:36;2251:10;2263:7;2272:5;2242:8;:36::i;:::-;-1:-1:-1;2295:4:26;2162:144;;;;;:::o;244:24::-;;;;:::o;2454:295::-;-1:-1:-1;;;;;2552:15:26;;2532:4;2552:15;;;:9;:15;;;;;;;;2568:10;2552:27;;;;;;;;-1:-1:-1;;2552:39:26;2548:138;;-1:-1:-1;;;;;2637:15:26;;;;;;:9;:15;;;;;;;;2653:10;2637:27;;;;;;;;:38;;2669:5;2637:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;2607:15:26;;;;;;:9;:15;;;;;;;;2623:10;2607:27;;;;;;;:68;2548:138;2695:26;2705:4;2711:2;2715:5;2695:9;:26::i;:::-;-1:-1:-1;2738:4:26;2454:295;;;;;:::o;530:108::-;572:66;530:108;:::o;203:35::-;236:2;203:35;:::o;389:31::-;;;;:::o;274:41::-;;;;;;;;;;;;;:::o;644:38::-;;;;;;;;;;;;;:::o;161:36::-;;;;;;;;;;;;;;-1:-1:-1;;;161:36:26;;;;:::o;2312:136::-;2372:4;2388:32;2398:10;2410:2;2414:5;2388:9;:32::i;2755:640::-;2900:15;2888:8;:27;;2880:47;;;;;-1:-1:-1;;;2880:47:26;;;;;;;;;;;;-1:-1:-1;;;2880:47:26;;;;;;;;;;;;;;;3039:16;;-1:-1:-1;;;;;3134:13:26;;;2937:14;3134:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3083:77;;572:66;3083:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3083:77:26;;;;;3073:88;;;;;;-1:-1:-1;;;2977:198:26;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2977:198:26;;;;;;2954:231;;;;;;;;;3222:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:14;;3134:15;3222:26;;;;;-1:-1:-1;;3222:26:26;;;;;;;;;;3134:15;3222:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3222:26:26;;-1:-1:-1;;3222:26:26;;;-1:-1:-1;;;;;;;3266:30:26;;;;;;:59;;;3320:5;-1:-1:-1;;;;;3300:25:26;:16;-1:-1:-1;;;;;3300:25:26;;3266:59;3258:89;;;;;-1:-1:-1;;;3258:89:26;;;;;;;;;;;;-1:-1:-1;;;3258:89:26;;;;;;;;;;;;;;;3357:31;3366:5;3373:7;3382:5;3357:8;:31::i;:::-;2755:640;;;;;;;;;:::o;321:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1768:166::-;-1:-1:-1;;;;;1848:16:26;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1896:31;;;;;;;;;;;;;;;;;1768:166;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;1940:216:26;-1:-1:-1;;;;;2033:15:26;;;;;;:9;:15;;;;;;:26;;2053:5;2033:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;2015:15:26;;;;;;;:9;:15;;;;;;:44;;;;2085:13;;;;;;;:24;;2103:5;2085:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;2069:13:26;;;;;;;:9;:13;;;;;;;;;:40;;;;2124:25;;;;;;;2069:13;;2124:25;;;;;;;;;;;;;1940:216;;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_totalSupply", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "608060405234801561001057600080fd5b50604051610adf380380610adf8339818101604052602081101561003357600080fd5b50516040514690806052610a8d8239604080519182900360520182208282018252600a8352692a32b9ba102a37b5b2b760b11b6020938401528151808301835260018152603160f81b908401528151808401919091527f81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061011333836001600160e01b0361011a16565b505061021a565b610133816000546101bc60201b6107df1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101649183906107df6101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610864806102296000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b03813516906020013561045e565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046b565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610656565b6040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525081565b6000610343338484610673565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106d516565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610725565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b60405180604001604052806002815260200161151560f21b81525081565b6000610343338484610725565b428410156104aa576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105c5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906105fb5750886001600160a01b0316816001600160a01b0316145b610640576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61064b898989610673565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b03831660009081526001602052604090205461074e908263ffffffff6106d516565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610783908263ffffffff6107df16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea2646970667358221220b279e8e6e98f038776553f479e59ff12ad12c96755c7bea45c684d8e4a9a3d3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "bin": "608060405234801561001057600080fd5b50604051610adf380380610adf8339818101604052602081101561003357600080fd5b50516040514690806052610a8d8239604080519182900360520182208282018252600a8352692a32b9ba102a37b5b2b760b11b6020938401528151808301835260018152603160f81b908401528151808401919091527f81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061011333836001600160e01b0361011a16565b505061021a565b610133816000546101bc60201b6107df1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101649183906107df6101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610864806102296000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b03813516906020013561045e565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046b565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610656565b6040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525081565b6000610343338484610673565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106d516565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610725565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b60405180604001604052806002815260200161151560f21b81525081565b6000610343338484610725565b428410156104aa576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105c5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906105fb5750886001600160a01b0316816001600160a01b0316145b610640576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61064b898989610673565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b03831660009081526001602052604090205461074e908263ffffffff6106d516565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610783908263ffffffff6107df16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea2646970667358221220b279e8e6e98f038776553f479e59ff12ad12c96755c7bea45c684d8e4a9a3d3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "bin-runtime": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b03813516906020013561045e565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046b565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610656565b6040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525081565b6000610343338484610673565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106d516565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610725565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b60405180604001604052806002815260200161151560f21b81525081565b6000610343338484610725565b428410156104aa576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105c5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906105fb5750886001600160a01b0316816001600160a01b0316145b610640576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61064b898989610673565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b03831660009081526001602052604090205461074e908263ffffffff6106d516565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610783908263ffffffff6107df16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea2646970667358221220b279e8e6e98f038776553f479e59ff12ad12c96755c7bea45c684d8e4a9a3d3764736f6c63430006060033", - "srcmap": "62:3335:26:-:0;;;844:504;5:9:-1;2:2;;;27:1;24;17:12;2:2;844:504:26;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;844:504:26;1046:95;;948:9;;1046:95;;;;;;;;;;;;;;;;1175:4;;;;;;;;-1:-1:-1;;;1175:4:26;;;;;1209:10;;;;;;;;;;-1:-1:-1;;;1209:10:26;;;;1018:272;;;;;;;;;1159:22;1018:272;;;;1199:21;1018:272;;;;;;;;;;1271:4;1018:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1018:272:26;;;;;;;995:305;;;;;976:16;:324;-1:-1:-1;1310:31:26;1316:10;1328:12;-1:-1:-1;;;;;1310:5:26;:31;:::i;:::-;844:504;;62:3335;;1354:197;1426:22;1442:5;1426:11;;:15;;;;;;:22;;;;:::i;:::-;1412:11;:36;;;-1:-1:-1;;;;;1474:13:26;;;;:9;:13;;;;;;;;;:24;;1492:5;;1474:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1458:13:26;;;;;;:9;:13;;;;;;;;:40;;;;1513:31;;;;;;;1458:13;;;;1513:31;;;;;;;;;;1354:197;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;;;;:::o;62:3335:26:-;;;;;;;", - "srcmap-runtime": "62:3335:26:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;62:3335:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;113:42:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;113:42:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2162:144;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2162:144:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;244:24;;;:::i;:::-;;;;;;;;;;;;;;;;2454:295;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2454:295:26;;;;;;;;;;;;;;;;;:::i;530:108::-;;;:::i;203:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;389:31;;;:::i;274:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;274:41:26;-1:-1:-1;;;;;274:41:26;;:::i;644:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;644:38:26;-1:-1:-1;;;;;644:38:26;;:::i;161:36::-;;;:::i;2312:136::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2312:136:26;;;;;;;;:::i;2755:640::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2755:640:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;321:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;321:61:26;;;;;;;;;;:::i;113:42::-;;;;;;;;;;;;;;-1:-1:-1;;;113:42:26;;;;:::o;2162:144::-;2226:4;2242:36;2251:10;2263:7;2272:5;2242:8;:36::i;:::-;-1:-1:-1;2295:4:26;2162:144;;;;;:::o;244:24::-;;;;:::o;2454:295::-;-1:-1:-1;;;;;2552:15:26;;2532:4;2552:15;;;:9;:15;;;;;;;;2568:10;2552:27;;;;;;;;-1:-1:-1;;2552:39:26;2548:138;;-1:-1:-1;;;;;2637:15:26;;;;;;:9;:15;;;;;;;;2653:10;2637:27;;;;;;;;:38;;2669:5;2637:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;2607:15:26;;;;;;:9;:15;;;;;;;;2623:10;2607:27;;;;;;;:68;2548:138;2695:26;2705:4;2711:2;2715:5;2695:9;:26::i;:::-;-1:-1:-1;2738:4:26;2454:295;;;;;:::o;530:108::-;572:66;530:108;:::o;203:35::-;236:2;203:35;:::o;389:31::-;;;;:::o;274:41::-;;;;;;;;;;;;;:::o;644:38::-;;;;;;;;;;;;;:::o;161:36::-;;;;;;;;;;;;;;-1:-1:-1;;;161:36:26;;;;:::o;2312:136::-;2372:4;2388:32;2398:10;2410:2;2414:5;2388:9;:32::i;2755:640::-;2900:15;2888:8;:27;;2880:47;;;;;-1:-1:-1;;;2880:47:26;;;;;;;;;;;;-1:-1:-1;;;2880:47:26;;;;;;;;;;;;;;;3039:16;;-1:-1:-1;;;;;3134:13:26;;;2937:14;3134:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3083:77;;572:66;3083:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3083:77:26;;;;;3073:88;;;;;;-1:-1:-1;;;2977:198:26;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2977:198:26;;;;;;2954:231;;;;;;;;;3222:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:14;;3134:15;3222:26;;;;;-1:-1:-1;;3222:26:26;;;;;;;;;;3134:15;3222:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3222:26:26;;-1:-1:-1;;3222:26:26;;;-1:-1:-1;;;;;;;3266:30:26;;;;;;:59;;;3320:5;-1:-1:-1;;;;;3300:25:26;:16;-1:-1:-1;;;;;3300:25:26;;3266:59;3258:89;;;;;-1:-1:-1;;;3258:89:26;;;;;;;;;;;;-1:-1:-1;;;3258:89:26;;;;;;;;;;;;;;;3357:31;3366:5;3373:7;3382:5;3357:8;:31::i;:::-;2755:640;;;;;;;;;:::o;321:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1768:166::-;-1:-1:-1;;;;;1848:16:26;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1896:31;;;;;;;;;;;;;;;;;1768:166;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;1940:216:26;-1:-1:-1;;;;;2033:15:26;;;;;;:9;:15;;;;;;:26;;2053:5;2033:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;2015:15:26;;;;;;;:9;:15;;;;;;:44;;;;2085:13;;;;;;;:24;;2103:5;2085:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;2069:13:26;;;;;;;:9;:13;;;;;;;;;:40;;;;2124:25;;;;;;;2069:13;;2124:25;;;;;;;;;;;;;1940:216;;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;" - }, - "contracts/test/RouterEventEmitter.sol:RouterEventEmitter": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "name": "Amounts", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610cda806100206000396000f3fe6080604052600436106100595760003560e01c806322b5841014610065578063375734d91461010d5780639c91fcb5146101b3578063b05f579e14610259578063fa3219d5146102eb578063fde1adda1461039157610060565b3661006057005b600080fd5b34801561007157600080fd5b5061010b600480360360c081101561008857600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460208302840111600160201b831117156100f157600080fd5b91935091506001600160a01b038135169060200135610423565b005b34801561011957600080fd5b5061010b600480360360c081101561013057600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460208302840111600160201b8311171561019957600080fd5b91935091506001600160a01b03813516906020013561069c565b3480156101bf57600080fd5b5061010b600480360360c08110156101d657600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561020c57600080fd5b82018360208201111561021e57600080fd5b803590602001918460208302840111600160201b8311171561023f57600080fd5b91935091506001600160a01b038135169060200135610785565b61010b600480360360a081101561026f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111600160201b831117156102d157600080fd5b91935091506001600160a01b03813516906020013561086e565b3480156102f757600080fd5b5061010b600480360360c081101561030e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b91935091506001600160a01b038135169060200135610ade565b61010b600480360360a08110156103a757600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460208302840111600160201b8311171561040957600080fd5b91935091506001600160a01b038135169060200135610bc7565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b6020831061050d5780518252601f1990920191602091820191016104ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161057e57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105b457600080fd5b8101908080516040519392919084600160201b8211156105d357600080fd5b9083019060208201858111156105e857600080fd5b82518660208202830111600160201b8211171561060457600080fd5b82525081516020918201928201910280838360005b83811015610631578181015183820152602001610619565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561067e578181015183820152602001610666565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060886001600160a01b03166318cbafe560e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b031663fb3bdb4160e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106109505780518252601f199092019160209182019101610931565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b5091509150816109c157fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156109f757600080fd5b8101908080516040519392919084600160201b821115610a1657600080fd5b908301906020820185811115610a2b57600080fd5b82518660208202830111600160201b82111715610a4757600080fd5b82525081516020918201928201910280838360005b83811015610a74578181015183820152602001610a5c565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ac1578181015183820152602001610aa9565b505050509050019250505060405180910390a15050505050505050565b60006060886001600160a01b0316634a25d94a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b0316637ff36ab560e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03166001600160e01b0319909d169c909c178c5292518151919b909a508a9950975095508594508793508692505083106109505780518252601f19909201916020918201910161093156fea2646970667358221220f92b8aa1cdb0d607452198521805885c192c13578a452a6fcb472b3d0cbdf8e364736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCDA DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x59 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x22B58410 EQ PUSH2 0x65 JUMPI DUP1 PUSH4 0x375734D9 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x9C91FCB5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xB05F579E EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0xFA3219D5 EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xFDE1ADDA EQ PUSH2 0x391 JUMPI PUSH2 0x60 JUMP JUMPDEST CALLDATASIZE PUSH2 0x60 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x423 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x69C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x785 JUMP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x29E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x2D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x86E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x30E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xADE JUMP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x3A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8803DBEE PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x56D JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x572 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x57E JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x5E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT OR ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x631 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x619 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x67E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x666 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18CBAFE5 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFB3BDB41 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x950 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x931 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9B0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x9C1 JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0xA2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT OR ISZERO PUSH2 0xA47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA74 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA5C JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAC1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xAA9 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4A25D94A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7FF36AB5 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND SWAP1 SWAP5 ADD DUP3 DUP2 SUB SWAP1 SWAP5 ADD DUP3 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP14 AND SWAP13 SWAP1 SWAP13 OR DUP13 MSTORE SWAP3 MLOAD DUP2 MLOAD SWAP2 SWAP12 SWAP1 SWAP11 POP DUP11 SWAP10 POP SWAP8 POP SWAP6 POP DUP6 SWAP5 POP DUP8 SWAP4 POP DUP7 SWAP3 POP POP DUP4 LT PUSH2 0x950 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x931 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0x2B DUP11 LOG1 0xCD 0xB0 0xD6 SMOD GASLIMIT 0x21 SWAP9 MSTORE XOR SDIV DUP9 0x5C NOT 0x2C SGT JUMPI DUP11 GASLIMIT 0x2A PUSH16 0xCB472B3D0CBDF8E364736F6C63430006 MOD STOP CALLER ", - "sourceMap": "68:3087:27:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;68:3087:27;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600436106100595760003560e01c806322b5841014610065578063375734d91461010d5780639c91fcb5146101b3578063b05f579e14610259578063fa3219d5146102eb578063fde1adda1461039157610060565b3661006057005b600080fd5b34801561007157600080fd5b5061010b600480360360c081101561008857600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460208302840111600160201b831117156100f157600080fd5b91935091506001600160a01b038135169060200135610423565b005b34801561011957600080fd5b5061010b600480360360c081101561013057600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460208302840111600160201b8311171561019957600080fd5b91935091506001600160a01b03813516906020013561069c565b3480156101bf57600080fd5b5061010b600480360360c08110156101d657600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561020c57600080fd5b82018360208201111561021e57600080fd5b803590602001918460208302840111600160201b8311171561023f57600080fd5b91935091506001600160a01b038135169060200135610785565b61010b600480360360a081101561026f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111600160201b831117156102d157600080fd5b91935091506001600160a01b03813516906020013561086e565b3480156102f757600080fd5b5061010b600480360360c081101561030e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b91935091506001600160a01b038135169060200135610ade565b61010b600480360360a08110156103a757600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460208302840111600160201b8311171561040957600080fd5b91935091506001600160a01b038135169060200135610bc7565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b6020831061050d5780518252601f1990920191602091820191016104ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161057e57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105b457600080fd5b8101908080516040519392919084600160201b8211156105d357600080fd5b9083019060208201858111156105e857600080fd5b82518660208202830111600160201b8211171561060457600080fd5b82525081516020918201928201910280838360005b83811015610631578181015183820152602001610619565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561067e578181015183820152602001610666565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060886001600160a01b03166318cbafe560e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b031663fb3bdb4160e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106109505780518252601f199092019160209182019101610931565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b5091509150816109c157fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156109f757600080fd5b8101908080516040519392919084600160201b821115610a1657600080fd5b908301906020820185811115610a2b57600080fd5b82518660208202830111600160201b82111715610a4757600080fd5b82525081516020918201928201910280838360005b83811015610a74578181015183820152602001610a5c565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ac1578181015183820152602001610aa9565b505050509050019250505060405180910390a15050505050505050565b60006060886001600160a01b0316634a25d94a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b0316637ff36ab560e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03166001600160e01b0319909d169c909c178c5292518151919b909a508a9950975095508594508793508692505083106109505780518252601f19909201916020918201910161093156fea2646970667358221220f92b8aa1cdb0d607452198521805885c192c13578a452a6fcb472b3d0cbdf8e364736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x59 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x22B58410 EQ PUSH2 0x65 JUMPI DUP1 PUSH4 0x375734D9 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x9C91FCB5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xB05F579E EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0xFA3219D5 EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xFDE1ADDA EQ PUSH2 0x391 JUMPI PUSH2 0x60 JUMP JUMPDEST CALLDATASIZE PUSH2 0x60 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x423 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x69C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x785 JUMP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x29E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x2D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x86E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x30E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xADE JUMP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x3A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8803DBEE PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x56D JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x572 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x57E JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x5E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT OR ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x631 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x619 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x67E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x666 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18CBAFE5 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFB3BDB41 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x950 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x931 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9B0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x9C1 JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0xA2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT OR ISZERO PUSH2 0xA47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA74 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA5C JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAC1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xAA9 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4A25D94A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7FF36AB5 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND SWAP1 SWAP5 ADD DUP3 DUP2 SUB SWAP1 SWAP5 ADD DUP3 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP14 AND SWAP13 SWAP1 SWAP13 OR DUP13 MSTORE SWAP3 MLOAD DUP2 MLOAD SWAP2 SWAP12 SWAP1 SWAP11 POP DUP11 SWAP10 POP SWAP8 POP SWAP6 POP DUP6 SWAP5 POP DUP8 SWAP4 POP DUP7 SWAP3 POP POP DUP4 LT PUSH2 0x950 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x931 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0x2B DUP11 LOG1 0xCD 0xB0 0xD6 SMOD GASLIMIT 0x21 SWAP9 MSTORE XOR SDIV DUP9 0x5C NOT 0x2C SGT JUMPI DUP11 GASLIMIT 0x2A PUSH16 0xCB472B3D0CBDF8E364736F6C63430006 MOD STOP CALLER ", - "sourceMap": "68:3087:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;684:505:27;;5:9:-1;2:2;;;27:1;24;17:12;2:2;684:505:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;684:505:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;684:505:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;684:505:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;684:505:27;;-1:-1:-1;684:505:27;-1:-1:-1;;;;;;684:505:27;;;;;;;;:::i;:::-;;173;;5:9:-1;2:2;;;27:1;24;17:12;2:2;173:505:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;173:505:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;173:505:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;173:505:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;173:505:27;;-1:-1:-1;173:505:27;-1:-1:-1;;;;;;173:505:27;;;;;;;;:::i;2180:499::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2180:499:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;2180:499:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;2180:499:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2180:499:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2180:499:27;;-1:-1:-1;2180:499:27;-1:-1:-1;;;;;;2180:499:27;;;;;;;;:::i;2685:468::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;2685:468:27;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;2685:468:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2685:468:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2685:468:27;;-1:-1:-1;2685:468:27;-1:-1:-1;;;;;;2685:468:27;;;;;;;;:::i;1675:499::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1675:499:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;1675:499:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;1675:499:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1675:499:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1675:499:27;;-1:-1:-1;1675:499:27;-1:-1:-1;;;;;;1675:499:27;;;;;;;;:::i;1195:474::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;1195:474:27;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;1195:474:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1195:474:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1195:474:27;;-1:-1:-1;1195:474:27;-1:-1:-1;;;;;;1195:474:27;;;;;;;;:::i;684:505::-;894:12;908:23;935:6;-1:-1:-1;;;;;935:19:27;991:55;;;1048:9;1059:11;1072:4;;1078:2;1082:8;955:145;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;955:145:27;-1:-1:-1;;;;;955:145:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;955:145:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;955:145:27;;;;-1:-1:-1;;;;;955:145:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;955:145:27;935:166;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;935:166:27;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;893:208:27;;;;1118:7;1111:15;;;;1141:41;1160:10;1149:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1149:32:27;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;-1:-1;;;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;1149:32:27;;421:4:-1;412:14;;;;1149:32:27;;;;;412:14:-1;1149:32:27;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1149:32:27;;;;;;;;;;;1141:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1141:41:27;;;;;;;;;;;;;;;;;684:505;;;;;;;;;:::o;173:::-;383:12;397:23;424:6;-1:-1:-1;;;;;424:19:27;480:55;;;537:8;547:12;561:4;;567:2;571:8;444:145;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;444:145:27;-1:-1:-1;;;;;444:145:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;444:145:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;444:145:27;;;;-1:-1:-1;;;;;444:145:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;444:145:27;424:166;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;2180:499:27;2387:12;2401:23;2428:6;-1:-1:-1;;;;;2428:19:27;2484:52;;;2538:8;2548:12;2562:4;;2568:2;2572:8;2448:142;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2448:142:27;-1:-1:-1;;;;;2448:142:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2448:142:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2448:142:27;;;;-1:-1:-1;;;;;2448:142:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2448:142:27;2428:163;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;2685:468:27;2874:12;2888:23;2915:6;-1:-1:-1;;;;;2915:19:27;2971:52;;;3025:9;3036:4;;3042:2;3046:8;2935:129;;;;;;;;;;;;;;-1:-1:-1;;;;;2935:129:27;-1:-1:-1;;;;;2935:129:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2935:129:27;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2935:129:27;;;;-1:-1:-1;;;;;2935:129:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2935:129:27;2915:150;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2915:150:27;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2873:192:27;;;;3082:7;3075:15;;;;3105:41;3124:10;3113:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3113:32:27;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;-1:-1;;;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;3113:32:27;;421:4:-1;412:14;;;;3113:32:27;;;;;412:14:-1;3113:32:27;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3113:32:27;;;;;;;;;;;3105:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3105:41:27;;;;;;;;;;;;;;;;;2685:468;;;;;;;;:::o;1675:499::-;1882:12;1896:23;1923:6;-1:-1:-1;;;;;1923:19:27;1979:52;;;2033:9;2044:11;2057:4;;2063:2;2067:8;1943:142;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1943:142:27;-1:-1:-1;;;;;1943:142:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;1943:142:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1943:142:27;;;;-1:-1:-1;;;;;1943:142:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;1943:142:27;1923:163;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;1195:474:27;1387:12;1401:23;1428:6;-1:-1:-1;;;;;1428:19:27;1484:52;;;1538:12;1552:4;;1558:2;1562:8;1448:132;;;;;;;;;;;;;;-1:-1:-1;;;;;1448:132:27;-1:-1:-1;;;;;1448:132:27;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;1448:132:27;;;137:4:-1;117:14;;;-1:-1;;113:30;;;157:16;;;26:21;;;22:32;;;6:49;;1448:132:27;;;49:4:-1;25:18;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1448:132:27;;;179:29:-1;;;;160:49;;1428:153:27;;;;1448:132;;1428:153;;-1:-1:-1;1428:153:27;;-1:-1:-1;25:18;-1:-1;1428:153:27;-1:-1:-1;1428:153:27;;-1:-1:-1;1428:153:27;;-1:-1:-1;25:18;;-1:-1;;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "name": "Amounts", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "608060405234801561001057600080fd5b50610cda806100206000396000f3fe6080604052600436106100595760003560e01c806322b5841014610065578063375734d91461010d5780639c91fcb5146101b3578063b05f579e14610259578063fa3219d5146102eb578063fde1adda1461039157610060565b3661006057005b600080fd5b34801561007157600080fd5b5061010b600480360360c081101561008857600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460208302840111600160201b831117156100f157600080fd5b91935091506001600160a01b038135169060200135610423565b005b34801561011957600080fd5b5061010b600480360360c081101561013057600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460208302840111600160201b8311171561019957600080fd5b91935091506001600160a01b03813516906020013561069c565b3480156101bf57600080fd5b5061010b600480360360c08110156101d657600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561020c57600080fd5b82018360208201111561021e57600080fd5b803590602001918460208302840111600160201b8311171561023f57600080fd5b91935091506001600160a01b038135169060200135610785565b61010b600480360360a081101561026f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111600160201b831117156102d157600080fd5b91935091506001600160a01b03813516906020013561086e565b3480156102f757600080fd5b5061010b600480360360c081101561030e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b91935091506001600160a01b038135169060200135610ade565b61010b600480360360a08110156103a757600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460208302840111600160201b8311171561040957600080fd5b91935091506001600160a01b038135169060200135610bc7565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b6020831061050d5780518252601f1990920191602091820191016104ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161057e57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105b457600080fd5b8101908080516040519392919084600160201b8211156105d357600080fd5b9083019060208201858111156105e857600080fd5b82518660208202830111600160201b8211171561060457600080fd5b82525081516020918201928201910280838360005b83811015610631578181015183820152602001610619565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561067e578181015183820152602001610666565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060886001600160a01b03166318cbafe560e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b031663fb3bdb4160e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106109505780518252601f199092019160209182019101610931565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b5091509150816109c157fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156109f757600080fd5b8101908080516040519392919084600160201b821115610a1657600080fd5b908301906020820185811115610a2b57600080fd5b82518660208202830111600160201b82111715610a4757600080fd5b82525081516020918201928201910280838360005b83811015610a74578181015183820152602001610a5c565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ac1578181015183820152602001610aa9565b505050509050019250505060405180910390a15050505050505050565b60006060886001600160a01b0316634a25d94a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b0316637ff36ab560e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03166001600160e01b0319909d169c909c178c5292518151919b909a508a9950975095508594508793508692505083106109505780518252601f19909201916020918201910161093156fea2646970667358221220f92b8aa1cdb0d607452198521805885c192c13578a452a6fcb472b3d0cbdf8e364736f6c63430006060033", - "bin": "608060405234801561001057600080fd5b50610cda806100206000396000f3fe6080604052600436106100595760003560e01c806322b5841014610065578063375734d91461010d5780639c91fcb5146101b3578063b05f579e14610259578063fa3219d5146102eb578063fde1adda1461039157610060565b3661006057005b600080fd5b34801561007157600080fd5b5061010b600480360360c081101561008857600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460208302840111600160201b831117156100f157600080fd5b91935091506001600160a01b038135169060200135610423565b005b34801561011957600080fd5b5061010b600480360360c081101561013057600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460208302840111600160201b8311171561019957600080fd5b91935091506001600160a01b03813516906020013561069c565b3480156101bf57600080fd5b5061010b600480360360c08110156101d657600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561020c57600080fd5b82018360208201111561021e57600080fd5b803590602001918460208302840111600160201b8311171561023f57600080fd5b91935091506001600160a01b038135169060200135610785565b61010b600480360360a081101561026f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111600160201b831117156102d157600080fd5b91935091506001600160a01b03813516906020013561086e565b3480156102f757600080fd5b5061010b600480360360c081101561030e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b91935091506001600160a01b038135169060200135610ade565b61010b600480360360a08110156103a757600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460208302840111600160201b8311171561040957600080fd5b91935091506001600160a01b038135169060200135610bc7565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b6020831061050d5780518252601f1990920191602091820191016104ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161057e57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105b457600080fd5b8101908080516040519392919084600160201b8211156105d357600080fd5b9083019060208201858111156105e857600080fd5b82518660208202830111600160201b8211171561060457600080fd5b82525081516020918201928201910280838360005b83811015610631578181015183820152602001610619565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561067e578181015183820152602001610666565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060886001600160a01b03166318cbafe560e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b031663fb3bdb4160e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106109505780518252601f199092019160209182019101610931565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b5091509150816109c157fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156109f757600080fd5b8101908080516040519392919084600160201b821115610a1657600080fd5b908301906020820185811115610a2b57600080fd5b82518660208202830111600160201b82111715610a4757600080fd5b82525081516020918201928201910280838360005b83811015610a74578181015183820152602001610a5c565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ac1578181015183820152602001610aa9565b505050509050019250505060405180910390a15050505050505050565b60006060886001600160a01b0316634a25d94a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b0316637ff36ab560e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03166001600160e01b0319909d169c909c178c5292518151919b909a508a9950975095508594508793508692505083106109505780518252601f19909201916020918201910161093156fea2646970667358221220f92b8aa1cdb0d607452198521805885c192c13578a452a6fcb472b3d0cbdf8e364736f6c63430006060033", - "bin-runtime": "6080604052600436106100595760003560e01c806322b5841014610065578063375734d91461010d5780639c91fcb5146101b3578063b05f579e14610259578063fa3219d5146102eb578063fde1adda1461039157610060565b3661006057005b600080fd5b34801561007157600080fd5b5061010b600480360360c081101561008857600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460208302840111600160201b831117156100f157600080fd5b91935091506001600160a01b038135169060200135610423565b005b34801561011957600080fd5b5061010b600480360360c081101561013057600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460208302840111600160201b8311171561019957600080fd5b91935091506001600160a01b03813516906020013561069c565b3480156101bf57600080fd5b5061010b600480360360c08110156101d657600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561020c57600080fd5b82018360208201111561021e57600080fd5b803590602001918460208302840111600160201b8311171561023f57600080fd5b91935091506001600160a01b038135169060200135610785565b61010b600480360360a081101561026f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111600160201b831117156102d157600080fd5b91935091506001600160a01b03813516906020013561086e565b3480156102f757600080fd5b5061010b600480360360c081101561030e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b91935091506001600160a01b038135169060200135610ade565b61010b600480360360a08110156103a757600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460208302840111600160201b8311171561040957600080fd5b91935091506001600160a01b038135169060200135610bc7565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b6020831061050d5780518252601f1990920191602091820191016104ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161057e57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105b457600080fd5b8101908080516040519392919084600160201b8211156105d357600080fd5b9083019060208201858111156105e857600080fd5b82518660208202830111600160201b8211171561060457600080fd5b82525081516020918201928201910280838360005b83811015610631578181015183820152602001610619565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561067e578181015183820152602001610666565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060886001600160a01b03166318cbafe560e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b031663fb3bdb4160e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106109505780518252601f199092019160209182019101610931565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b5091509150816109c157fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156109f757600080fd5b8101908080516040519392919084600160201b821115610a1657600080fd5b908301906020820185811115610a2b57600080fd5b82518660208202830111600160201b82111715610a4757600080fd5b82525081516020918201928201910280838360005b83811015610a74578181015183820152602001610a5c565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ac1578181015183820152602001610aa9565b505050509050019250505060405180910390a15050505050505050565b60006060886001600160a01b0316634a25d94a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b0316637ff36ab560e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03166001600160e01b0319909d169c909c178c5292518151919b909a508a9950975095508594508793508692505083106109505780518252601f19909201916020918201910161093156fea2646970667358221220f92b8aa1cdb0d607452198521805885c192c13578a452a6fcb472b3d0cbdf8e364736f6c63430006060033", - "srcmap": "68:3087:27:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;68:3087:27;;;;;;;", - "srcmap-runtime": "68:3087:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;684:505:27;;5:9:-1;2:2;;;27:1;24;17:12;2:2;684:505:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;684:505:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;684:505:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;684:505:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;684:505:27;;-1:-1:-1;684:505:27;-1:-1:-1;;;;;;684:505:27;;;;;;;;:::i;:::-;;173;;5:9:-1;2:2;;;27:1;24;17:12;2:2;173:505:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;173:505:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;173:505:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;173:505:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;173:505:27;;-1:-1:-1;173:505:27;-1:-1:-1;;;;;;173:505:27;;;;;;;;:::i;2180:499::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2180:499:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;2180:499:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;2180:499:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2180:499:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2180:499:27;;-1:-1:-1;2180:499:27;-1:-1:-1;;;;;;2180:499:27;;;;;;;;:::i;2685:468::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;2685:468:27;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;2685:468:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2685:468:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2685:468:27;;-1:-1:-1;2685:468:27;-1:-1:-1;;;;;;2685:468:27;;;;;;;;:::i;1675:499::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1675:499:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;1675:499:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;1675:499:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1675:499:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1675:499:27;;-1:-1:-1;1675:499:27;-1:-1:-1;;;;;;1675:499:27;;;;;;;;:::i;1195:474::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;1195:474:27;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;1195:474:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1195:474:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1195:474:27;;-1:-1:-1;1195:474:27;-1:-1:-1;;;;;;1195:474:27;;;;;;;;:::i;684:505::-;894:12;908:23;935:6;-1:-1:-1;;;;;935:19:27;991:55;;;1048:9;1059:11;1072:4;;1078:2;1082:8;955:145;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;955:145:27;-1:-1:-1;;;;;955:145:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;955:145:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;955:145:27;;;;-1:-1:-1;;;;;955:145:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;955:145:27;935:166;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;935:166:27;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;893:208:27;;;;1118:7;1111:15;;;;1141:41;1160:10;1149:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1149:32:27;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;-1:-1;;;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;1149:32:27;;421:4:-1;412:14;;;;1149:32:27;;;;;412:14:-1;1149:32:27;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1149:32:27;;;;;;;;;;;1141:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1141:41:27;;;;;;;;;;;;;;;;;684:505;;;;;;;;;:::o;173:::-;383:12;397:23;424:6;-1:-1:-1;;;;;424:19:27;480:55;;;537:8;547:12;561:4;;567:2;571:8;444:145;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;444:145:27;-1:-1:-1;;;;;444:145:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;444:145:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;444:145:27;;;;-1:-1:-1;;;;;444:145:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;444:145:27;424:166;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;2180:499:27;2387:12;2401:23;2428:6;-1:-1:-1;;;;;2428:19:27;2484:52;;;2538:8;2548:12;2562:4;;2568:2;2572:8;2448:142;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2448:142:27;-1:-1:-1;;;;;2448:142:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2448:142:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2448:142:27;;;;-1:-1:-1;;;;;2448:142:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2448:142:27;2428:163;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;2685:468:27;2874:12;2888:23;2915:6;-1:-1:-1;;;;;2915:19:27;2971:52;;;3025:9;3036:4;;3042:2;3046:8;2935:129;;;;;;;;;;;;;;-1:-1:-1;;;;;2935:129:27;-1:-1:-1;;;;;2935:129:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2935:129:27;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2935:129:27;;;;-1:-1:-1;;;;;2935:129:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2935:129:27;2915:150;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2915:150:27;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2873:192:27;;;;3082:7;3075:15;;;;3105:41;3124:10;3113:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3113:32:27;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;-1:-1;;;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;3113:32:27;;421:4:-1;412:14;;;;3113:32:27;;;;;412:14:-1;3113:32:27;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3113:32:27;;;;;;;;;;;3105:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3105:41:27;;;;;;;;;;;;;;;;;2685:468;;;;;;;;:::o;1675:499::-;1882:12;1896:23;1923:6;-1:-1:-1;;;;;1923:19:27;1979:52;;;2033:9;2044:11;2057:4;;2063:2;2067:8;1943:142;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1943:142:27;-1:-1:-1;;;;;1943:142:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;1943:142:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1943:142:27;;;;-1:-1:-1;;;;;1943:142:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;1943:142:27;1923:163;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;1195:474:27;1387:12;1401:23;1428:6;-1:-1:-1;;;;;1428:19:27;1484:52;;;1538:12;1552:4;;1558:2;1562:8;1448:132;;;;;;;;;;;;;;-1:-1:-1;;;;;1448:132:27;-1:-1:-1;;;;;1448:132:27;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;1448:132:27;;;137:4:-1;117:14;;;-1:-1;;113:30;;;157:16;;;26:21;;;22:32;;;6:49;;1448:132:27;;;49:4:-1;25:18;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1448:132:27;;;179:29:-1;;;;160:49;;1428:153:27;;;;1448:132;;1428:153;;-1:-1:-1;1428:153:27;;-1:-1:-1;25:18;-1:-1;1428:153:27;-1:-1:-1;1428:153:27;;-1:-1:-1;1428:153:27;;-1:-1:-1;25:18;;-1:-1;;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;" - }, - "contracts/test/WETH9.sol:WETH9": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b61074f806101246000396000f3fe60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461020e57806370a082311461023957806395d89b411461026c578063a9059cbb14610281578063d0e30db0146102ba578063dd62ed3e146102c25761009c565b806306fdde03146100a1578063095ea7b31461012b57806318160ddd1461017857806323b872dd1461019f5780632e1a7d4d146101e2575b600080fd5b3480156100ad57600080fd5b506100b66102fd565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013757600080fd5b506101646004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561038b565b604080519115158252519081900360200190f35b34801561018457600080fd5b5061018d6103f1565b60408051918252519081900360200190f35b3480156101ab57600080fd5b50610164600480360360608110156101c257600080fd5b506001600160a01b038135811691602081013590911690604001356103f5565b3480156101ee57600080fd5b5061020c6004803603602081101561020557600080fd5b503561056d565b005b34801561021a57600080fd5b50610223610624565b6040805160ff9092168252519081900360200190f35b34801561024557600080fd5b5061018d6004803603602081101561025c57600080fd5b50356001600160a01b031661062d565b34801561027857600080fd5b506100b661063f565b34801561028d57600080fd5b50610164600480360360408110156102a457600080fd5b506001600160a01b038135169060200135610699565b61020c6106ad565b3480156102ce57600080fd5b5061018d600480360360408110156102e557600080fd5b506001600160a01b03813581169160200135166106fc565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561043c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038416331480159061047a57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b156104fc576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d1576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105ea573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b60006106a63384846103f5565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea264697066735822122024820c0be3860c79949525ca52246f46e816972618ae3bd90fddc2722997782f64736f6c63430006060033", - "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH1 0xD PUSH1 0x80 DUP2 SWAP1 MSTORE PUSH13 0x2BB930B83832B21022BA3432B9 PUSH1 0x99 SHL PUSH1 0xA0 SWAP1 DUP2 MSTORE PUSH2 0x2E SWAP2 PUSH1 0x0 SWAP2 SWAP1 PUSH2 0x7A JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP1 DUP3 MSTORE PUSH4 0xAE8AA89 PUSH1 0xE3 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 DUP3 MSTORE PUSH2 0x5A SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x7A JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x115 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xBB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xE8 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xE8 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xE8 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xCD JUMP JUMPDEST POP PUSH2 0xF4 SWAP3 SWAP2 POP PUSH2 0xF8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x112 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xF4 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xFE JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x74F DUP1 PUSH2 0x124 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2C2 JUMPI PUSH2 0x9C JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x178 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x1E2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB6 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD8 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH2 0x3F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3F5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x56D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x223 PUSH2 0x624 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x62D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x278 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB6 PUSH2 0x63F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x699 JUMP JUMPDEST PUSH2 0x20C PUSH2 0x6AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x6FC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x383 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x358 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x383 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x366 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP7 SWAP1 SSTORE DUP2 MLOAD DUP7 DUP2 MSTORE SWAP2 MLOAD SWAP4 SWAP5 SWAP1 SWAP4 SWAP1 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST SELFBALANCE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x43C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 ISZERO SWAP1 PUSH2 0x47A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x0 NOT EQ ISZERO JUMPDEST ISZERO PUSH2 0x4FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD DUP4 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP9 SWAP1 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE DUP4 MLOAD DUP7 DUP2 MSTORE SWAP4 MLOAD SWAP2 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x5AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 SWAP1 SUB SWAP1 SSTORE MLOAD DUP4 ISZERO PUSH2 0x8FC MUL SWAP2 DUP5 SWAP2 SWAP1 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x5EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x7FCF532C15F0A6DB0BD6D0E038BEA71D30D808C7D98CB3BF7268A95BF5081B65 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x383 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x358 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x383 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A6 CALLER DUP5 DUP5 PUSH2 0x3F5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD CALLVALUE SWAP1 DUP2 ADD SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP2 MLOAD PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 DUP3 0xC SIGNEXTEND 0xE3 DUP7 0xC PUSH26 0x949525CA52246F46E816972618AE3BD90FDDC2722997782F6473 PUSH16 0x6C634300060600330000000000000000 ", - "sourceMap": "732:40:28:-:0;711:1828;732:40;;711:1828;732:40;;;-1:-1:-1;;;732:40:28;;;;;;-1:-1:-1;;732:40:28;;:::i;:::-;-1:-1:-1;778:31:28;;;;;;;;;;;;;-1:-1:-1;;;778:31:28;;;;;;;;;;;;:::i;:::-;-1:-1:-1;815:27:28;;;-1:-1:-1;;815:27:28;840:2;815:27;;;711:1828;2:2:-1;;;;27:1;24;17:12;2:2;711:1828:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;711:1828:28;;;-1:-1:-1;711:1828:28;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461020e57806370a082311461023957806395d89b411461026c578063a9059cbb14610281578063d0e30db0146102ba578063dd62ed3e146102c25761009c565b806306fdde03146100a1578063095ea7b31461012b57806318160ddd1461017857806323b872dd1461019f5780632e1a7d4d146101e2575b600080fd5b3480156100ad57600080fd5b506100b66102fd565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013757600080fd5b506101646004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561038b565b604080519115158252519081900360200190f35b34801561018457600080fd5b5061018d6103f1565b60408051918252519081900360200190f35b3480156101ab57600080fd5b50610164600480360360608110156101c257600080fd5b506001600160a01b038135811691602081013590911690604001356103f5565b3480156101ee57600080fd5b5061020c6004803603602081101561020557600080fd5b503561056d565b005b34801561021a57600080fd5b50610223610624565b6040805160ff9092168252519081900360200190f35b34801561024557600080fd5b5061018d6004803603602081101561025c57600080fd5b50356001600160a01b031661062d565b34801561027857600080fd5b506100b661063f565b34801561028d57600080fd5b50610164600480360360408110156102a457600080fd5b506001600160a01b038135169060200135610699565b61020c6106ad565b3480156102ce57600080fd5b5061018d600480360360408110156102e557600080fd5b506001600160a01b03813581169160200135166106fc565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561043c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038416331480159061047a57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b156104fc576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d1576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105ea573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b60006106a63384846103f5565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea264697066735822122024820c0be3860c79949525ca52246f46e816972618ae3bd90fddc2722997782f64736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2C2 JUMPI PUSH2 0x9C JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x178 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x1E2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB6 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD8 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH2 0x3F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3F5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x56D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x223 PUSH2 0x624 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x62D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x278 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB6 PUSH2 0x63F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x699 JUMP JUMPDEST PUSH2 0x20C PUSH2 0x6AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x6FC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x383 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x358 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x383 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x366 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP7 SWAP1 SSTORE DUP2 MLOAD DUP7 DUP2 MSTORE SWAP2 MLOAD SWAP4 SWAP5 SWAP1 SWAP4 SWAP1 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST SELFBALANCE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x43C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 ISZERO SWAP1 PUSH2 0x47A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x0 NOT EQ ISZERO JUMPDEST ISZERO PUSH2 0x4FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD DUP4 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP9 SWAP1 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE DUP4 MLOAD DUP7 DUP2 MSTORE SWAP4 MLOAD SWAP2 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x5AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 SWAP1 SUB SWAP1 SSTORE MLOAD DUP4 ISZERO PUSH2 0x8FC MUL SWAP2 DUP5 SWAP2 SWAP1 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x5EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x7FCF532C15F0A6DB0BD6D0E038BEA71D30D808C7D98CB3BF7268A95BF5081B65 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x383 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x358 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x383 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A6 CALLER DUP5 DUP5 PUSH2 0x3F5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD CALLVALUE SWAP1 DUP2 ADD SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP2 MLOAD PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 DUP3 0xC SIGNEXTEND 0xE3 DUP7 0xC PUSH26 0x949525CA52246F46E816972618AE3BD90FDDC2722997782F6473 PUSH16 0x6C634300060600330000000000000000 ", - "sourceMap": "711:1828:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;732:40:28;;5:9:-1;2:2;;;27:1;24;17:12;2:2;732:40:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;732:40:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1759:177;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1759:177:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1759:177:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1658:95;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1658:95:28;;;:::i;:::-;;;;;;;;;;;;;;;;2069:468;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2069:468:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2069:468:28;;;;;;;;;;;;;;;;;:::i;1445:207::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1445:207:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1445:207:28;;:::i;:::-;;815:27;;5:9:-1;2:2;;;27:1;24;17:12;2:2;815:27:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1101:65;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1101:65:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1101:65:28;-1:-1:-1;;;;;1101:65:28;;:::i;778:31::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;778:31:28;;;:::i;1942:121::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1942:121:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1942:121:28;;;;;;;;:::i;1310:130::-;;;:::i;1172:65::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1172:65:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1172:65:28;;;;;;;;;;:::i;732:40::-;;;;;;;;;;;;;;;-1:-1:-1;;732:40:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1759:177::-;1841:10;1815:4;1831:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;1831:26:28;;;;;;;;;;;:32;;;1878:30;;;;;;;1815:4;;1831:26;;1841:10;;1878:30;;;;;;;;-1:-1:-1;1925:4:28;1759:177;;;;:::o;1658:95::-;1725:21;1658:95;:::o;2069:468::-;-1:-1:-1;;;;;2187:14:28;;2159:4;2187:14;;;:9;:14;;;;;;:21;-1:-1:-1;2187:21:28;2179:34;;;;;-1:-1:-1;;;2179:34:28;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2228:17:28;;2235:10;2228:17;;;;:59;;-1:-1:-1;;;;;;2249:14:28;;;;;;:9;:14;;;;;;;;2264:10;2249:26;;;;;;;;-1:-1:-1;;2249:38:28;;2228:59;2224:183;;;-1:-1:-1;;;;;2311:14:28;;;;;;:9;:14;;;;;;;;2326:10;2311:26;;;;;;;;:33;-1:-1:-1;2311:33:28;2303:46;;;;;-1:-1:-1;;;2303:46:28;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2363:14:28;;;;;;:9;:14;;;;;;;;2378:10;2363:26;;;;;;;:33;;;;;;;2224:183;-1:-1:-1;;;;;2417:14:28;;;;;;;:9;:14;;;;;;;;:21;;;;;;;2448:14;;;;;;;;;;:21;;;;;;2485:23;;;;;;;2448:14;;2485:23;;;;;;;;;;;-1:-1:-1;2526:4:28;2069:468;;;;;:::o;1445:207::-;1508:10;1498:21;;;;:9;:21;;;;;;:28;-1:-1:-1;1498:28:28;1490:41;;;;;-1:-1:-1;;;1490:41:28;;;;;;;;;;;;;;;;;;;;;;;1551:10;1541:21;;;;:9;:21;;;;;;:28;;;;;;;1579:24;;;;;;1566:3;;1579:24;;1541:21;1579:24;1566:3;1551:10;1579:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1618:27:28;;;;;;;;1629:10;;1618:27;;;;;;;;;;1445:207;:::o;815:27::-;;;;;;:::o;1101:65::-;;;;;;;;;;;;;:::o;778:31::-;;;;;;;;;;;;;;;-1:-1:-1;;778:31:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1942:121;1999:4;2022:34;2035:10;2047:3;2052;2022:12;:34::i;:::-;2015:41;1942:121;-1:-1:-1;;;1942:121:28:o;1310:130::-;1364:10;1354:21;;;;:9;:21;;;;;;;;;:34;;1379:9;1354:34;;;;;;1403:30;;;;;;;;;;;;;;;;;1310:130::o;1172:65::-;;;;;;;;;;;;;;;;;;;;;;;;:::o" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b61074f806101246000396000f3fe60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461020e57806370a082311461023957806395d89b411461026c578063a9059cbb14610281578063d0e30db0146102ba578063dd62ed3e146102c25761009c565b806306fdde03146100a1578063095ea7b31461012b57806318160ddd1461017857806323b872dd1461019f5780632e1a7d4d146101e2575b600080fd5b3480156100ad57600080fd5b506100b66102fd565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013757600080fd5b506101646004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561038b565b604080519115158252519081900360200190f35b34801561018457600080fd5b5061018d6103f1565b60408051918252519081900360200190f35b3480156101ab57600080fd5b50610164600480360360608110156101c257600080fd5b506001600160a01b038135811691602081013590911690604001356103f5565b3480156101ee57600080fd5b5061020c6004803603602081101561020557600080fd5b503561056d565b005b34801561021a57600080fd5b50610223610624565b6040805160ff9092168252519081900360200190f35b34801561024557600080fd5b5061018d6004803603602081101561025c57600080fd5b50356001600160a01b031661062d565b34801561027857600080fd5b506100b661063f565b34801561028d57600080fd5b50610164600480360360408110156102a457600080fd5b506001600160a01b038135169060200135610699565b61020c6106ad565b3480156102ce57600080fd5b5061018d600480360360408110156102e557600080fd5b506001600160a01b03813581169160200135166106fc565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561043c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038416331480159061047a57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b156104fc576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d1576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105ea573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b60006106a63384846103f5565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea264697066735822122024820c0be3860c79949525ca52246f46e816972618ae3bd90fddc2722997782f64736f6c63430006060033", - "bin": "60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b61074f806101246000396000f3fe60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461020e57806370a082311461023957806395d89b411461026c578063a9059cbb14610281578063d0e30db0146102ba578063dd62ed3e146102c25761009c565b806306fdde03146100a1578063095ea7b31461012b57806318160ddd1461017857806323b872dd1461019f5780632e1a7d4d146101e2575b600080fd5b3480156100ad57600080fd5b506100b66102fd565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013757600080fd5b506101646004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561038b565b604080519115158252519081900360200190f35b34801561018457600080fd5b5061018d6103f1565b60408051918252519081900360200190f35b3480156101ab57600080fd5b50610164600480360360608110156101c257600080fd5b506001600160a01b038135811691602081013590911690604001356103f5565b3480156101ee57600080fd5b5061020c6004803603602081101561020557600080fd5b503561056d565b005b34801561021a57600080fd5b50610223610624565b6040805160ff9092168252519081900360200190f35b34801561024557600080fd5b5061018d6004803603602081101561025c57600080fd5b50356001600160a01b031661062d565b34801561027857600080fd5b506100b661063f565b34801561028d57600080fd5b50610164600480360360408110156102a457600080fd5b506001600160a01b038135169060200135610699565b61020c6106ad565b3480156102ce57600080fd5b5061018d600480360360408110156102e557600080fd5b506001600160a01b03813581169160200135166106fc565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561043c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038416331480159061047a57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b156104fc576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d1576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105ea573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b60006106a63384846103f5565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea264697066735822122024820c0be3860c79949525ca52246f46e816972618ae3bd90fddc2722997782f64736f6c63430006060033", - "bin-runtime": "60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461020e57806370a082311461023957806395d89b411461026c578063a9059cbb14610281578063d0e30db0146102ba578063dd62ed3e146102c25761009c565b806306fdde03146100a1578063095ea7b31461012b57806318160ddd1461017857806323b872dd1461019f5780632e1a7d4d146101e2575b600080fd5b3480156100ad57600080fd5b506100b66102fd565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013757600080fd5b506101646004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561038b565b604080519115158252519081900360200190f35b34801561018457600080fd5b5061018d6103f1565b60408051918252519081900360200190f35b3480156101ab57600080fd5b50610164600480360360608110156101c257600080fd5b506001600160a01b038135811691602081013590911690604001356103f5565b3480156101ee57600080fd5b5061020c6004803603602081101561020557600080fd5b503561056d565b005b34801561021a57600080fd5b50610223610624565b6040805160ff9092168252519081900360200190f35b34801561024557600080fd5b5061018d6004803603602081101561025c57600080fd5b50356001600160a01b031661062d565b34801561027857600080fd5b506100b661063f565b34801561028d57600080fd5b50610164600480360360408110156102a457600080fd5b506001600160a01b038135169060200135610699565b61020c6106ad565b3480156102ce57600080fd5b5061018d600480360360408110156102e557600080fd5b506001600160a01b03813581169160200135166106fc565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561043c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038416331480159061047a57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b156104fc576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d1576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105ea573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b60006106a63384846103f5565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea264697066735822122024820c0be3860c79949525ca52246f46e816972618ae3bd90fddc2722997782f64736f6c63430006060033", - "srcmap": "732:40:28:-:0;711:1828;732:40;;711:1828;732:40;;;-1:-1:-1;;;732:40:28;;;;;;-1:-1:-1;;732:40:28;;:::i;:::-;-1:-1:-1;778:31:28;;;;;;;;;;;;;-1:-1:-1;;;778:31:28;;;;;;;;;;;;:::i;:::-;-1:-1:-1;815:27:28;;;-1:-1:-1;;815:27:28;840:2;815:27;;;711:1828;2:2:-1;;;;27:1;24;17:12;2:2;711:1828:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;711:1828:28;;;-1:-1:-1;711:1828:28;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "srcmap-runtime": "711:1828:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;732:40:28;;5:9:-1;2:2;;;27:1;24;17:12;2:2;732:40:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;732:40:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1759:177;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1759:177:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1759:177:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1658:95;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1658:95:28;;;:::i;:::-;;;;;;;;;;;;;;;;2069:468;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2069:468:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2069:468:28;;;;;;;;;;;;;;;;;:::i;1445:207::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1445:207:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1445:207:28;;:::i;:::-;;815:27;;5:9:-1;2:2;;;27:1;24;17:12;2:2;815:27:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1101:65;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1101:65:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1101:65:28;-1:-1:-1;;;;;1101:65:28;;:::i;778:31::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;778:31:28;;;:::i;1942:121::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1942:121:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1942:121:28;;;;;;;;:::i;1310:130::-;;;:::i;1172:65::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1172:65:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1172:65:28;;;;;;;;;;:::i;732:40::-;;;;;;;;;;;;;;;-1:-1:-1;;732:40:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1759:177::-;1841:10;1815:4;1831:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;1831:26:28;;;;;;;;;;;:32;;;1878:30;;;;;;;1815:4;;1831:26;;1841:10;;1878:30;;;;;;;;-1:-1:-1;1925:4:28;1759:177;;;;:::o;1658:95::-;1725:21;1658:95;:::o;2069:468::-;-1:-1:-1;;;;;2187:14:28;;2159:4;2187:14;;;:9;:14;;;;;;:21;-1:-1:-1;2187:21:28;2179:34;;;;;-1:-1:-1;;;2179:34:28;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2228:17:28;;2235:10;2228:17;;;;:59;;-1:-1:-1;;;;;;2249:14:28;;;;;;:9;:14;;;;;;;;2264:10;2249:26;;;;;;;;-1:-1:-1;;2249:38:28;;2228:59;2224:183;;;-1:-1:-1;;;;;2311:14:28;;;;;;:9;:14;;;;;;;;2326:10;2311:26;;;;;;;;:33;-1:-1:-1;2311:33:28;2303:46;;;;;-1:-1:-1;;;2303:46:28;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2363:14:28;;;;;;:9;:14;;;;;;;;2378:10;2363:26;;;;;;;:33;;;;;;;2224:183;-1:-1:-1;;;;;2417:14:28;;;;;;;:9;:14;;;;;;;;:21;;;;;;;2448:14;;;;;;;;;;:21;;;;;;2485:23;;;;;;;2448:14;;2485:23;;;;;;;;;;;-1:-1:-1;2526:4:28;2069:468;;;;;:::o;1445:207::-;1508:10;1498:21;;;;:9;:21;;;;;;:28;-1:-1:-1;1498:28:28;1490:41;;;;;-1:-1:-1;;;1490:41:28;;;;;;;;;;;;;;;;;;;;;;;1551:10;1541:21;;;;:9;:21;;;;;;:28;;;;;;;1579:24;;;;;;1566:3;;1579:24;;1541:21;1579:24;1566:3;1551:10;1579:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1618:27:28;;;;;;;;1629:10;;1618:27;;;;;;;;;;1445:207;:::o;815:27::-;;;;;;:::o;1101:65::-;;;;;;;;;;;;;:::o;778:31::-;;;;;;;;;;;;;;;-1:-1:-1;;778:31:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1942:121;1999:4;2022:34;2035:10;2047:3;2052;2022:12;:34::i;:::-;2015:41;1942:121;-1:-1:-1;;;1942:121:28:o;1310:130::-;1364:10;1354:21;;;;:9;:21;;;;;;;;;:34;;1379:9;1354:34;;;;;;1403:30;;;;;;;;;;;;;;;;;1310:130::o;1172:65::-;;;;;;;;;;;;;;;;;;;;;;;;:::o" - } - }, - "errors": [ - { - "component": "general", - "formattedMessage": "contracts/.flattened/DXswapLibrary.sol:115:10: Warning: Unused local variable.\n (address token0,) = sortTokens(tokenA, tokenB);\n ^------------^\n", - "message": "Unused local variable.", - "severity": "warning", - "sourceLocation": { - "end": 4926, - "file": "contracts/.flattened/DXswapLibrary.sol", - "start": 4912 - }, - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "contracts/.flattened/DXswapRouter.sol:307:10: Warning: Unused local variable.\n (address token0,) = sortTokens(tokenA, tokenB);\n ^------------^\n", - "message": "Unused local variable.", - "severity": "warning", - "sourceLocation": { - "end": 12214, - "file": "contracts/.flattened/DXswapRouter.sol", - "start": 12200 - }, - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "contracts/libraries/DXswapLibrary.sol:37:10: Warning: Unused local variable.\n (address token0,) = sortTokens(tokenA, tokenB);\n ^------------^\n", - "message": "Unused local variable.", - "severity": "warning", - "sourceLocation": { - "end": 1777, - "file": "contracts/libraries/DXswapLibrary.sol", - "start": 1763 - }, - "type": "Warning" - } - ], - "sources": { - "@swapr/core/contracts/interfaces/IDXswapFactory.sol": { - "id": 0, - "AST": { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapFactory.sol", - "exportedSymbols": { - "IDXswapFactory": [ - 84 - ] - }, - "id": 85, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 84, - "linearizedBaseContracts": [ - 84 - ], - "name": "IDXswapFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 11, - "name": "PairCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 10, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3, - "indexed": true, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11, - "src": "75:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "75:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5, - "indexed": true, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11, - "src": "99:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "99:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7, - "indexed": false, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11, - "src": "123:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "123:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9, - "indexed": false, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11, - "src": "137:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "137:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "74:68:0" - }, - "src": "57:86:0" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5855a25a", - "id": 16, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "INIT_CODE_PAIR_HASH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12, - "nodeType": "ParameterList", - "parameters": [], - "src": "177:2:0" - }, - "returnParameters": { - "id": 15, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 16, - "src": "203:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "203:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "202:9:0" - }, - "scope": 84, - "src": "149:63:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "017e7e58", - "id": 21, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "feeTo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [], - "src": "231:2:0" - }, - "returnParameters": { - "id": 20, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 21, - "src": "257:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "257:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "256:9:0" - }, - "scope": 84, - "src": "217:49:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "2ff7042a", - "id": 26, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "protocolFeeDenominator", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 22, - "nodeType": "ParameterList", - "parameters": [], - "src": "302:2:0" - }, - "returnParameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 26, - "src": "328:5:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 23, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "328:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "327:7:0" - }, - "scope": 84, - "src": "271:64:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "094b7415", - "id": 31, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "feeToSetter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 27, - "nodeType": "ParameterList", - "parameters": [], - "src": "360:2:0" - }, - "returnParameters": { - "id": 30, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 29, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31, - "src": "386:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "386:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "385:9:0" - }, - "scope": 84, - "src": "340:55:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "e6a43905", - "id": 40, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPair", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 36, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 40, - "src": "418:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "418:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 35, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 40, - "src": "434:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 34, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "434:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "417:32:0" - }, - "returnParameters": { - "id": 39, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 38, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 40, - "src": "473:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "473:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "472:14:0" - }, - "scope": 84, - "src": "401:86:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "1e3dd18b", - "id": 47, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allPairs", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 43, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 42, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 47, - "src": "510:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 41, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "510:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "509:6:0" - }, - "returnParameters": { - "id": 46, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 45, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 47, - "src": "539:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 44, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "539:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "538:14:0" - }, - "scope": 84, - "src": "492:61:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "574f2ba3", - "id": 52, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allPairsLength", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 48, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:2:0" - }, - "returnParameters": { - "id": 51, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 50, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 52, - "src": "607:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 49, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "607:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "606:6:0" - }, - "scope": 84, - "src": "558:55:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "c9c65396", - "id": 61, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "createPair", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 57, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 54, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 61, - "src": "639:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "639:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 56, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 61, - "src": "655:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 55, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "655:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "638:32:0" - }, - "returnParameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 61, - "src": "689:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 58, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "689:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "688:14:0" - }, - "scope": 84, - "src": "619:84:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "f46901ed", - "id": 66, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setFeeTo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 64, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 63, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 66, - "src": "727:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 62, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "727:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "726:9:0" - }, - "returnParameters": { - "id": 65, - "nodeType": "ParameterList", - "parameters": [], - "src": "744:0:0" - }, - "scope": 84, - "src": "709:36:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a2e74af6", - "id": 71, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setFeeToSetter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 69, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 68, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 71, - "src": "774:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "774:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "773:9:0" - }, - "returnParameters": { - "id": 70, - "nodeType": "ParameterList", - "parameters": [], - "src": "791:0:0" - }, - "scope": 84, - "src": "750:42:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "4e91f811", - "id": 76, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setProtocolFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 74, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 73, - "mutability": "mutable", - "name": "_protocolFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 76, - "src": "821:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 72, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "821:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "820:20:0" - }, - "returnParameters": { - "id": 75, - "nodeType": "ParameterList", - "parameters": [], - "src": "849:0:0" - }, - "scope": 84, - "src": "797:53:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "9e68ceb8", - "id": 83, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 83, - "src": "875:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 77, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "875:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 80, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 83, - "src": "889:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 79, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "889:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "874:30:0" - }, - "returnParameters": { - "id": 82, - "nodeType": "ParameterList", - "parameters": [], - "src": "913:0:0" - }, - "scope": 84, - "src": "855:59:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 85, - "src": "26:890:0" - } - ], - "src": "0:917:0" - } - }, - "@swapr/core/contracts/interfaces/IDXswapPair.sol": { - "id": 1, - "AST": { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "exportedSymbols": { - "IDXswapPair": [ - 336 - ] - }, - "id": 337, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 86, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:1" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "IDXswapPair", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 94, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 93, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 88, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 94, - "src": "69:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 87, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "69:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 90, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 94, - "src": "92:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 89, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "92:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 92, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 94, - "src": "117:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 91, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "117:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "68:60:1" - }, - "src": "54:75:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 102, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 96, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 102, - "src": "149:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 95, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "149:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 98, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 102, - "src": "171:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "171:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 102, - "src": "191:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 99, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "191:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "148:54:1" - }, - "src": "134:69:1" - }, - { - "body": null, - "documentation": null, - "functionSelector": "06fdde03", - "id": 107, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 103, - "nodeType": "ParameterList", - "parameters": [], - "src": "222:2:1" - }, - "returnParameters": { - "id": 106, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 107, - "src": "248:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 104, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "248:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "247:15:1" - }, - "scope": 336, - "src": "209:54:1", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "95d89b41", - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [], - "src": "283:2:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 112, - "src": "309:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 109, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "309:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "308:15:1" - }, - "scope": 336, - "src": "268:56:1", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "313ce567", - "id": 117, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 113, - "nodeType": "ParameterList", - "parameters": [], - "src": "346:2:1" - }, - "returnParameters": { - "id": 116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 115, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 117, - "src": "372:5:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 114, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "372:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "371:7:1" - }, - "scope": 336, - "src": "329:50:1", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "18160ddd", - "id": 122, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 118, - "nodeType": "ParameterList", - "parameters": [], - "src": "404:2:1" - }, - "returnParameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 120, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 122, - "src": "430:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 119, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "430:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "429:6:1" - }, - "scope": 336, - "src": "384:52:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "70a08231", - "id": 129, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 125, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 129, - "src": "460:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 123, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "460:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "459:15:1" - }, - "returnParameters": { - "id": 128, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 129, - "src": "498:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "498:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "497:6:1" - }, - "scope": 336, - "src": "441:63:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "dd62ed3e", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 131, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 138, - "src": "528:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 130, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "528:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 138, - "src": "543:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "543:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "527:32:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 138, - "src": "583:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 135, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "583:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "582:6:1" - }, - "scope": 336, - "src": "509:80:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 147, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 140, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 147, - "src": "612:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "612:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 142, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 147, - "src": "629:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "629:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "611:29:1" - }, - "returnParameters": { - "id": 146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 145, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 147, - "src": "659:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "659:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "658:6:1" - }, - "scope": 336, - "src": "595:70:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 156, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 149, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 156, - "src": "688:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 148, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 151, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 156, - "src": "700:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 150, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "700:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "687:24:1" - }, - "returnParameters": { - "id": 155, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 154, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 156, - "src": "730:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 153, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "730:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "729:6:1" - }, - "scope": 336, - "src": "670:66:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "23b872dd", - "id": 167, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 158, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 167, - "src": "763:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 157, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "763:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 160, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 167, - "src": "777:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 159, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "777:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 162, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 167, - "src": "789:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 161, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "789:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "762:38:1" - }, - "returnParameters": { - "id": 166, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 165, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 167, - "src": "819:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 164, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "819:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "818:6:1" - }, - "scope": 336, - "src": "741:84:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "3644e515", - "id": 172, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "DOMAIN_SEPARATOR", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 168, - "nodeType": "ParameterList", - "parameters": [], - "src": "856:2:1" - }, - "returnParameters": { - "id": 171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 170, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 172, - "src": "882:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 169, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "881:9:1" - }, - "scope": 336, - "src": "831:60:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "30adf81f", - "id": 177, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "PERMIT_TYPEHASH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [], - "src": "920:2:1" - }, - "returnParameters": { - "id": 176, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 175, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 177, - "src": "946:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 174, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "946:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "945:9:1" - }, - "scope": 336, - "src": "896:59:1", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7ecebe00", - "id": 184, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "nonces", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 180, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 179, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 184, - "src": "976:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "976:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "975:15:1" - }, - "returnParameters": { - "id": 183, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 182, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 184, - "src": "1014:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1014:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1013:6:1" - }, - "scope": 336, - "src": "960:60:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d505accf", - "id": 201, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "permit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 199, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 186, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 201, - "src": "1042:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 185, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1042:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 188, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 201, - "src": "1057:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 187, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1057:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 190, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 201, - "src": "1074:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 189, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1074:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 192, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 201, - "src": "1086:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1086:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 201, - "src": "1101:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 193, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1101:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 196, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 201, - "src": "1110:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 195, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1110:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 198, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 201, - "src": "1121:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 197, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1121:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1041:90:1" - }, - "returnParameters": { - "id": 200, - "nodeType": "ParameterList", - "parameters": [], - "src": "1140:0:1" - }, - "scope": 336, - "src": "1026:115:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "anonymous": false, - "documentation": null, - "id": 209, - "name": "Mint", - "nodeType": "EventDefinition", - "parameters": { - "id": 208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 203, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 209, - "src": "1158:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1158:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 205, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 209, - "src": "1182:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 204, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1182:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 207, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 209, - "src": "1196:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1196:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1157:52:1" - }, - "src": "1147:63:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 219, - "name": "Burn", - "nodeType": "EventDefinition", - "parameters": { - "id": 218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 211, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 219, - "src": "1226:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 210, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1226:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 213, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 219, - "src": "1250:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 212, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1250:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 215, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 219, - "src": "1264:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 214, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1264:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 217, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 219, - "src": "1278:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1278:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1225:72:1" - }, - "src": "1215:83:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 233, - "name": "Swap", - "nodeType": "EventDefinition", - "parameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 221, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 233, - "src": "1323:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1323:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 223, - "indexed": false, - "mutability": "mutable", - "name": "amount0In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 233, - "src": "1355:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 222, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1355:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 225, - "indexed": false, - "mutability": "mutable", - "name": "amount1In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 233, - "src": "1379:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 224, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 227, - "indexed": false, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 233, - "src": "1403:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 226, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1403:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 229, - "indexed": false, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 233, - "src": "1428:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 228, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1428:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 231, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 233, - "src": "1453:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 230, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1313:164:1" - }, - "src": "1303:175:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 239, - "name": "Sync", - "nodeType": "EventDefinition", - "parameters": { - "id": 238, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 235, - "indexed": false, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 239, - "src": "1494:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 234, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1494:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 237, - "indexed": false, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 239, - "src": "1512:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 236, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1493:36:1" - }, - "src": "1483:47:1" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ba9a7a56", - "id": 244, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "MINIMUM_LIQUIDITY", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 240, - "nodeType": "ParameterList", - "parameters": [], - "src": "1562:2:1" - }, - "returnParameters": { - "id": 243, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 242, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 244, - "src": "1588:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 241, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1588:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1587:6:1" - }, - "scope": 336, - "src": "1536:58:1", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "c45a0155", - "id": 249, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "factory", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 245, - "nodeType": "ParameterList", - "parameters": [], - "src": "1615:2:1" - }, - "returnParameters": { - "id": 248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 247, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 249, - "src": "1641:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 246, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1641:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1640:9:1" - }, - "scope": 336, - "src": "1599:51:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0dfe1681", - "id": 254, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token0", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 250, - "nodeType": "ParameterList", - "parameters": [], - "src": "1670:2:1" - }, - "returnParameters": { - "id": 253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 252, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 254, - "src": "1696:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 251, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1696:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1695:9:1" - }, - "scope": 336, - "src": "1655:50:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d21220a7", - "id": 259, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token1", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 255, - "nodeType": "ParameterList", - "parameters": [], - "src": "1725:2:1" - }, - "returnParameters": { - "id": 258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 257, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 259, - "src": "1751:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 256, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1751:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1750:9:1" - }, - "scope": 336, - "src": "1710:50:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0902f1ac", - "id": 268, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 260, - "nodeType": "ParameterList", - "parameters": [], - "src": "1785:2:1" - }, - "returnParameters": { - "id": 267, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 262, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 268, - "src": "1811:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 261, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1811:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 264, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 268, - "src": "1829:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 263, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 266, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 268, - "src": "1847:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 265, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1847:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1810:63:1" - }, - "scope": 336, - "src": "1765:109:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5909c0d5", - "id": 273, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price0CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 269, - "nodeType": "ParameterList", - "parameters": [], - "src": "1908:2:1" - }, - "returnParameters": { - "id": 272, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 271, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 273, - "src": "1934:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 270, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1934:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1933:6:1" - }, - "scope": 336, - "src": "1879:61:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5a3d5493", - "id": 278, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price1CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 274, - "nodeType": "ParameterList", - "parameters": [], - "src": "1974:2:1" - }, - "returnParameters": { - "id": 277, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 276, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 278, - "src": "2000:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 275, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2000:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1999:6:1" - }, - "scope": 336, - "src": "1945:61:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7464fc3d", - "id": 283, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "kLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 279, - "nodeType": "ParameterList", - "parameters": [], - "src": "2025:2:1" - }, - "returnParameters": { - "id": 282, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 281, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 283, - "src": "2051:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 280, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2051:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2050:6:1" - }, - "scope": 336, - "src": "2011:46:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "54cf2aeb", - "id": 288, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 284, - "nodeType": "ParameterList", - "parameters": [], - "src": "2078:2:1" - }, - "returnParameters": { - "id": 287, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 286, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 288, - "src": "2104:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 285, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2103:8:1" - }, - "scope": 336, - "src": "2062:50:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "6a627842", - "id": 295, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 291, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 290, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 295, - "src": "2132:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 289, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2132:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2131:12:1" - }, - "returnParameters": { - "id": 294, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 293, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 295, - "src": "2162:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 292, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2162:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2161:16:1" - }, - "scope": 336, - "src": "2118:60:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "89afcb44", - "id": 304, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 298, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 297, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 304, - "src": "2197:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 296, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2197:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2196:12:1" - }, - "returnParameters": { - "id": 303, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 300, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 304, - "src": "2227:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 299, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2227:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 302, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 304, - "src": "2241:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 301, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2241:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2226:28:1" - }, - "scope": 336, - "src": "2183:72:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "022c0d9f", - "id": 315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swap", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 313, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 306, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 315, - "src": "2274:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 305, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2274:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 308, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 315, - "src": "2291:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 307, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2291:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 310, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 315, - "src": "2308:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2308:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 312, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 315, - "src": "2320:19:1", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 311, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2320:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2273:67:1" - }, - "returnParameters": { - "id": 314, - "nodeType": "ParameterList", - "parameters": [], - "src": "2349:0:1" - }, - "scope": 336, - "src": "2260:90:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "bc25cf77", - "id": 320, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "skim", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 317, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 320, - "src": "2369:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 316, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2369:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2368:12:1" - }, - "returnParameters": { - "id": 319, - "nodeType": "ParameterList", - "parameters": [], - "src": "2389:0:1" - }, - "scope": 336, - "src": "2355:35:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "fff6cae9", - "id": 323, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "sync", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 321, - "nodeType": "ParameterList", - "parameters": [], - "src": "2408:2:1" - }, - "returnParameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [], - "src": "2419:0:1" - }, - "scope": 336, - "src": "2395:25:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "485cc955", - "id": 330, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "initialize", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 325, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 330, - "src": "2446:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 327, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 330, - "src": "2455:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 326, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2455:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2445:18:1" - }, - "returnParameters": { - "id": 329, - "nodeType": "ParameterList", - "parameters": [], - "src": "2472:0:1" - }, - "scope": 336, - "src": "2426:47:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d6d788c3", - "id": 335, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 333, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 332, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 335, - "src": "2498:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 331, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2498:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2497:8:1" - }, - "returnParameters": { - "id": 334, - "nodeType": "ParameterList", - "parameters": [], - "src": "2514:0:1" - }, - "scope": 336, - "src": "2478:37:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 337, - "src": "26:2491:1" - } - ], - "src": "0:2518:1" - } - }, - "contracts/.flattened/DXswapLibrary.sol": { - "id": 2, - "AST": { - "absolutePath": "contracts/.flattened/DXswapLibrary.sol", - "exportedSymbols": { - "DXswapLibrary": [ - 1200 - ], - "IDXswapPair": [ - 588 - ], - "SafeMath": [ - 662 - ] - }, - "id": 1201, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 338, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "60:24:2" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 588, - "linearizedBaseContracts": [ - 588 - ], - "name": "IDXswapPair", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 346, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 340, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 346, - "src": "129:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 339, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "129:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 342, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 346, - "src": "152:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 341, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "152:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 344, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 346, - "src": "177:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 343, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "177:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "128:60:2" - }, - "src": "114:75:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 354, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 348, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 354, - "src": "209:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "209:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 350, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 354, - "src": "231:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 349, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "231:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 352, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 354, - "src": "251:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 351, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "251:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "208:54:2" - }, - "src": "194:69:2" - }, - { - "body": null, - "documentation": null, - "functionSelector": "06fdde03", - "id": 359, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 355, - "nodeType": "ParameterList", - "parameters": [], - "src": "282:2:2" - }, - "returnParameters": { - "id": 358, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 357, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 359, - "src": "308:13:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 356, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "308:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "307:15:2" - }, - "scope": 588, - "src": "269:54:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "95d89b41", - "id": 364, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [], - "src": "343:2:2" - }, - "returnParameters": { - "id": 363, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 362, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 364, - "src": "369:13:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 361, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "369:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "368:15:2" - }, - "scope": 588, - "src": "328:56:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "313ce567", - "id": 369, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 365, - "nodeType": "ParameterList", - "parameters": [], - "src": "406:2:2" - }, - "returnParameters": { - "id": 368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 367, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 369, - "src": "432:5:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 366, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "432:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "431:7:2" - }, - "scope": 588, - "src": "389:50:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "18160ddd", - "id": 374, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "464:2:2" - }, - "returnParameters": { - "id": 373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 372, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 374, - "src": "490:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 371, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "490:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "489:6:2" - }, - "scope": 588, - "src": "444:52:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "70a08231", - "id": 381, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 376, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 381, - "src": "520:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "520:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "519:15:2" - }, - "returnParameters": { - "id": 380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 379, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 381, - "src": "558:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 378, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "558:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "557:6:2" - }, - "scope": 588, - "src": "501:63:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "dd62ed3e", - "id": 390, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 386, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 383, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 390, - "src": "588:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 382, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "588:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 385, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 390, - "src": "603:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 384, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "603:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "587:32:2" - }, - "returnParameters": { - "id": 389, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 388, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 390, - "src": "643:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 387, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "643:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "642:6:2" - }, - "scope": 588, - "src": "569:80:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 399, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 395, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 392, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 399, - "src": "672:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 391, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "672:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 394, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 399, - "src": "689:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 393, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "689:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:29:2" - }, - "returnParameters": { - "id": 398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 397, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 399, - "src": "719:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 396, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "719:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "718:6:2" - }, - "scope": 588, - "src": "655:70:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 408, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 401, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 408, - "src": "748:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 400, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "748:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 403, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 408, - "src": "760:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 402, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "760:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "747:24:2" - }, - "returnParameters": { - "id": 407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 406, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 408, - "src": "790:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 405, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "790:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "789:6:2" - }, - "scope": 588, - "src": "730:66:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "23b872dd", - "id": 419, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 410, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 419, - "src": "823:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "823:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 412, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 419, - "src": "837:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "837:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 414, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 419, - "src": "849:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 413, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "849:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "822:38:2" - }, - "returnParameters": { - "id": 418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 417, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 419, - "src": "879:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 416, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "879:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "878:6:2" - }, - "scope": 588, - "src": "801:84:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "3644e515", - "id": 424, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "DOMAIN_SEPARATOR", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 420, - "nodeType": "ParameterList", - "parameters": [], - "src": "916:2:2" - }, - "returnParameters": { - "id": 423, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 422, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 424, - "src": "942:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 421, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "942:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "941:9:2" - }, - "scope": 588, - "src": "891:60:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "30adf81f", - "id": 429, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "PERMIT_TYPEHASH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "980:2:2" - }, - "returnParameters": { - "id": 428, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 427, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 429, - "src": "1006:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 426, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1006:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1005:9:2" - }, - "scope": 588, - "src": "956:59:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7ecebe00", - "id": 436, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "nonces", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 432, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 431, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 436, - "src": "1036:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 430, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1036:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1035:15:2" - }, - "returnParameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 436, - "src": "1074:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 433, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1074:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1073:6:2" - }, - "scope": 588, - "src": "1020:60:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d505accf", - "id": 453, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "permit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 438, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 453, - "src": "1102:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 437, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1102:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 440, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 453, - "src": "1117:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1117:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 442, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 453, - "src": "1134:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 441, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1134:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 444, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 453, - "src": "1146:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 443, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1146:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 446, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 453, - "src": "1161:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 445, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1161:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 448, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 453, - "src": "1170:9:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 447, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1170:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 450, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 453, - "src": "1181:9:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 449, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1181:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1101:90:2" - }, - "returnParameters": { - "id": 452, - "nodeType": "ParameterList", - "parameters": [], - "src": "1200:0:2" - }, - "scope": 588, - "src": "1086:115:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "anonymous": false, - "documentation": null, - "id": 461, - "name": "Mint", - "nodeType": "EventDefinition", - "parameters": { - "id": 460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 455, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 461, - "src": "1218:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 454, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1218:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 457, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 461, - "src": "1242:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1242:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 459, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 461, - "src": "1256:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 458, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1256:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1217:52:2" - }, - "src": "1207:63:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 471, - "name": "Burn", - "nodeType": "EventDefinition", - "parameters": { - "id": 470, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 463, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 471, - "src": "1286:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1286:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 465, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 471, - "src": "1310:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1310:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 467, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 471, - "src": "1324:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 466, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1324:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 469, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 471, - "src": "1338:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 468, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1338:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1285:72:2" - }, - "src": "1275:83:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 485, - "name": "Swap", - "nodeType": "EventDefinition", - "parameters": { - "id": 484, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 473, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 485, - "src": "1383:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 472, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1383:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 475, - "indexed": false, - "mutability": "mutable", - "name": "amount0In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 485, - "src": "1415:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 474, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1415:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 477, - "indexed": false, - "mutability": "mutable", - "name": "amount1In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 485, - "src": "1439:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 476, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1439:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 479, - "indexed": false, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 485, - "src": "1463:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 478, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1463:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 481, - "indexed": false, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 485, - "src": "1488:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 480, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1488:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 483, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 485, - "src": "1513:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 482, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1513:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:164:2" - }, - "src": "1363:175:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 491, - "name": "Sync", - "nodeType": "EventDefinition", - "parameters": { - "id": 490, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 487, - "indexed": false, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 491, - "src": "1554:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 486, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1554:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 489, - "indexed": false, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 491, - "src": "1572:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 488, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1572:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1553:36:2" - }, - "src": "1543:47:2" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ba9a7a56", - "id": 496, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "MINIMUM_LIQUIDITY", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 492, - "nodeType": "ParameterList", - "parameters": [], - "src": "1622:2:2" - }, - "returnParameters": { - "id": 495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 494, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 496, - "src": "1648:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 493, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:6:2" - }, - "scope": 588, - "src": "1596:58:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "c45a0155", - "id": 501, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "factory", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 497, - "nodeType": "ParameterList", - "parameters": [], - "src": "1675:2:2" - }, - "returnParameters": { - "id": 500, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 499, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 501, - "src": "1701:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1701:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1700:9:2" - }, - "scope": 588, - "src": "1659:51:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0dfe1681", - "id": 506, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token0", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 502, - "nodeType": "ParameterList", - "parameters": [], - "src": "1730:2:2" - }, - "returnParameters": { - "id": 505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 504, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 506, - "src": "1756:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 503, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1756:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1755:9:2" - }, - "scope": 588, - "src": "1715:50:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d21220a7", - "id": 511, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token1", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 507, - "nodeType": "ParameterList", - "parameters": [], - "src": "1785:2:2" - }, - "returnParameters": { - "id": 510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 509, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 511, - "src": "1811:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1811:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1810:9:2" - }, - "scope": 588, - "src": "1770:50:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0902f1ac", - "id": 520, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 512, - "nodeType": "ParameterList", - "parameters": [], - "src": "1845:2:2" - }, - "returnParameters": { - "id": 519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 514, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 520, - "src": "1871:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 513, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1871:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 516, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 520, - "src": "1889:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 515, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1889:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 518, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 520, - "src": "1907:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 517, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1907:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1870:63:2" - }, - "scope": 588, - "src": "1825:109:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5909c0d5", - "id": 525, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price0CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 521, - "nodeType": "ParameterList", - "parameters": [], - "src": "1968:2:2" - }, - "returnParameters": { - "id": 524, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 523, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 525, - "src": "1994:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 522, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1994:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1993:6:2" - }, - "scope": 588, - "src": "1939:61:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5a3d5493", - "id": 530, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price1CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 526, - "nodeType": "ParameterList", - "parameters": [], - "src": "2034:2:2" - }, - "returnParameters": { - "id": 529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 528, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 530, - "src": "2060:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 527, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2060:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2059:6:2" - }, - "scope": 588, - "src": "2005:61:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7464fc3d", - "id": 535, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "kLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 531, - "nodeType": "ParameterList", - "parameters": [], - "src": "2085:2:2" - }, - "returnParameters": { - "id": 534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 533, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 535, - "src": "2111:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 532, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2111:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2110:6:2" - }, - "scope": 588, - "src": "2071:46:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "54cf2aeb", - "id": 540, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 536, - "nodeType": "ParameterList", - "parameters": [], - "src": "2138:2:2" - }, - "returnParameters": { - "id": 539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 538, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 540, - "src": "2164:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 537, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2164:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2163:8:2" - }, - "scope": 588, - "src": "2122:50:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "6a627842", - "id": 547, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 542, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 547, - "src": "2192:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2192:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2191:12:2" - }, - "returnParameters": { - "id": 546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 545, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 547, - "src": "2222:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 544, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2222:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2221:16:2" - }, - "scope": 588, - "src": "2178:60:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "89afcb44", - "id": 556, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 549, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 556, - "src": "2257:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 548, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2257:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2256:12:2" - }, - "returnParameters": { - "id": 555, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 552, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 556, - "src": "2287:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 551, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2287:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 554, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 556, - "src": "2301:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 553, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2301:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2286:28:2" - }, - "scope": 588, - "src": "2243:72:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "022c0d9f", - "id": 567, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swap", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 565, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 558, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 567, - "src": "2334:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 557, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2334:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 560, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 567, - "src": "2351:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 559, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2351:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 562, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 567, - "src": "2368:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 561, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2368:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 564, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 567, - "src": "2380:19:2", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 563, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2380:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2333:67:2" - }, - "returnParameters": { - "id": 566, - "nodeType": "ParameterList", - "parameters": [], - "src": "2409:0:2" - }, - "scope": 588, - "src": "2320:90:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "bc25cf77", - "id": 572, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "skim", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 570, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 569, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 572, - "src": "2429:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2429:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2428:12:2" - }, - "returnParameters": { - "id": 571, - "nodeType": "ParameterList", - "parameters": [], - "src": "2449:0:2" - }, - "scope": 588, - "src": "2415:35:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "fff6cae9", - "id": 575, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "sync", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 573, - "nodeType": "ParameterList", - "parameters": [], - "src": "2468:2:2" - }, - "returnParameters": { - "id": 574, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:2" - }, - "scope": 588, - "src": "2455:25:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "485cc955", - "id": 582, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "initialize", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 580, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 577, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 582, - "src": "2506:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 576, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2506:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 579, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 582, - "src": "2515:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 578, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2515:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2505:18:2" - }, - "returnParameters": { - "id": 581, - "nodeType": "ParameterList", - "parameters": [], - "src": "2532:0:2" - }, - "scope": 588, - "src": "2486:47:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d6d788c3", - "id": 587, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 584, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 587, - "src": "2558:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 583, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2558:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2557:8:2" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [], - "src": "2574:0:2" - }, - "scope": 588, - "src": "2538:37:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 1201, - "src": "86:2491:2" - }, - { - "id": 589, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "2622:23:2" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 662, - "linearizedBaseContracts": [ - 662 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 610, - "nodeType": "Block", - "src": "2836:66:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 599, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "2855:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 600, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "2859:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 601, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "2863:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2859:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2855:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 604, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2854:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 605, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "2869:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2854:16:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", - "id": 607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2872:22:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", - "typeString": "literal_string \"ds-math-add-overflow\"" - }, - "value": "ds-math-add-overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", - "typeString": "literal_string \"ds-math-add-overflow\"" - } - ], - "id": 598, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2846:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2846:49:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 609, - "nodeType": "ExpressionStatement", - "src": "2846:49:2" - } - ] - }, - "documentation": null, - "id": 611, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 591, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 611, - "src": "2789:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 590, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2789:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 593, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 611, - "src": "2797:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 592, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2797:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2788:16:2" - }, - "returnParameters": { - "id": 597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 611, - "src": "2828:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 595, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2828:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2827:8:2" - }, - "scope": 662, - "src": "2776:126:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 632, - "nodeType": "Block", - "src": "2968:67:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 621, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "2987:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 622, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "2991:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 623, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 615, - "src": "2995:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2991:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2987:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 626, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2986:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 627, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "3001:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2986:16:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3004:23:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", - "typeString": "literal_string \"ds-math-sub-underflow\"" - }, - "value": "ds-math-sub-underflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", - "typeString": "literal_string \"ds-math-sub-underflow\"" - } - ], - "id": 620, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2978:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2978:50:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 631, - "nodeType": "ExpressionStatement", - "src": "2978:50:2" - } - ] - }, - "documentation": null, - "id": 633, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 616, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 613, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 633, - "src": "2921:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 612, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2921:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 615, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 633, - "src": "2929:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 614, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2929:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2920:16:2" - }, - "returnParameters": { - "id": 619, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 618, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 633, - "src": "2960:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 617, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2960:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2959:8:2" - }, - "scope": 662, - "src": "2908:127:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 660, - "nodeType": "Block", - "src": "3101:80:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 643, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3119:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3124:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3119:6:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 646, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "3130:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 647, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "3134:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 648, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3138:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3134:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3130:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 651, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3129:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 652, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3143:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3129:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 654, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "3148:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3129:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3119:30:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", - "id": 657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3151:22:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", - "typeString": "literal_string \"ds-math-mul-overflow\"" - }, - "value": "ds-math-mul-overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", - "typeString": "literal_string \"ds-math-mul-overflow\"" - } - ], - "id": 642, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3111:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3111:63:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 659, - "nodeType": "ExpressionStatement", - "src": "3111:63:2" - } - ] - }, - "documentation": null, - "id": 661, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 635, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 661, - "src": "3054:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 634, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3054:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 637, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 661, - "src": "3062:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 636, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3062:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3053:16:2" - }, - "returnParameters": { - "id": 641, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 640, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 661, - "src": "3093:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 639, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3093:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3092:8:2" - }, - "scope": 662, - "src": "3041:140:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1201, - "src": "2753:430:2" - }, - { - "id": 663, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "3233:24:2" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 1200, - "linearizedBaseContracts": [ - 1200 - ], - "name": "DXswapLibrary", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 666, - "libraryName": { - "contractScope": null, - "id": 664, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 662, - "src": "3295:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$662", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3289:24:2", - "typeName": { - "id": 665, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3308:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "body": { - "id": 709, - "nodeType": "Block", - "src": "3526:232:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 678, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "3544:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 679, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "3554:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3544:16:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a204944454e544943414c5f414444524553534553", - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3562:36:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4816d5fd2dd11399e2b4f8ea009915853e549a6eccad66902563b4c410b21cee", - "typeString": "literal_string \"DXswapLibrary: IDENTICAL_ADDRESSES\"" - }, - "value": "DXswapLibrary: IDENTICAL_ADDRESSES" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4816d5fd2dd11399e2b4f8ea009915853e549a6eccad66902563b4c410b21cee", - "typeString": "literal_string \"DXswapLibrary: IDENTICAL_ADDRESSES\"" - } - ], - "id": 677, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3536:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3536:63:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 683, - "nodeType": "ExpressionStatement", - "src": "3536:63:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 684, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "3610:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 685, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "3618:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 686, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "3609:16:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 687, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "3628:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 688, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "3637:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3628:15:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 693, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "3666:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 694, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "3674:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 695, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3665:16:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "3628:53:2", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 690, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "3647:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 691, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "3655:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 692, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3646:16:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "src": "3609:72:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 698, - "nodeType": "ExpressionStatement", - "src": "3609:72:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 700, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "3699:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3717:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3709:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3709:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3709:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3699:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a205a45524f5f41444452455353", - "id": 706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3721:29:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d784e2fb97350cb9cd89815b63f46058f3a01b758a15fe35bee497cab9f8262a", - "typeString": "literal_string \"DXswapLibrary: ZERO_ADDRESS\"" - }, - "value": "DXswapLibrary: ZERO_ADDRESS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d784e2fb97350cb9cd89815b63f46058f3a01b758a15fe35bee497cab9f8262a", - "typeString": "literal_string \"DXswapLibrary: ZERO_ADDRESS\"" - } - ], - "id": 699, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3691:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3691:60:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 708, - "nodeType": "ExpressionStatement", - "src": "3691:60:2" - } - ] - }, - "documentation": null, - "id": 710, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sortTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 668, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 710, - "src": "3439:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3439:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 670, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 710, - "src": "3455:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3455:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3438:32:2" - }, - "returnParameters": { - "id": 676, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 673, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 710, - "src": "3494:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 672, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3494:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 675, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 710, - "src": "3510:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3510:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3493:32:2" - }, - "scope": 1200, - "src": "3419:339:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 754, - "nodeType": "Block", - "src": "3950:347:2", - "statements": [ - { - "assignments": [ - 722, - 724 - ], - "declarations": [ - { - "constant": false, - "id": 722, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 754, - "src": "3961:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 721, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3961:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 724, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 754, - "src": "3977:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 723, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3977:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 729, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 726, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 714, - "src": "4006:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 727, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 716, - "src": "4014:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 725, - "name": "sortTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 710, - "src": "3995:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3995:26:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3960:61:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 730, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "4031:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "ff", - "id": 738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)" - }, - "value": null - }, - { - "argumentTypes": null, - "id": 739, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 712, - "src": "4112:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "4160:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 744, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "4168:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 741, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "4143:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4143:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4143:32:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 740, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "4133:9:2", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4133:43:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "hexValue": "d306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776", - "id": 747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4190:69:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a4999fc8faf24b4f89ea6230a8d374f8a84ec258cd79036b033288c7791cdbc0", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 2)" - }, - "value": null - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_stringliteral_a4999fc8faf24b4f89ea6230a8d374f8a84ec258cd79036b033288c7791cdbc0", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 2)" - } - ], - "expression": { - "argumentTypes": null, - "id": 736, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "4061:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4061:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4061:226:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 735, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "4051:9:2", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4051:237:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4046:4:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 733, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4046:4:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4046:243:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4038:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4038:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4038:252:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4031:259:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 753, - "nodeType": "ExpressionStatement", - "src": "4031:259:2" - } - ] - }, - "documentation": null, - "id": 755, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pairFor", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 712, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 755, - "src": "3864:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 711, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3864:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 714, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 755, - "src": "3881:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 713, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3881:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 716, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 755, - "src": "3897:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 715, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3897:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3863:49:2" - }, - "returnParameters": { - "id": 720, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 719, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 755, - "src": "3936:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 718, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3936:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3935:14:2" - }, - "scope": 1200, - "src": "3847:450:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 804, - "nodeType": "Block", - "src": "4475:261:2", - "statements": [ - { - "assignments": [ - 769, - null - ], - "declarations": [ - { - "constant": false, - "id": 769, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 804, - "src": "4486:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 768, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4486:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 774, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 771, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "4516:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 772, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "4524:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 770, - "name": "sortTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 710, - "src": "4505:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4505:26:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4485:46:2" - }, - { - "assignments": [ - 776, - 778, - null - ], - "declarations": [ - { - "constant": false, - "id": 776, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 804, - "src": "4542:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 775, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4542:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 778, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 804, - "src": "4557:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 777, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4557:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 788, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 781, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "4595:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 782, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "4604:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 783, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "4612:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 780, - "name": "pairFor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "4587:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4587:32:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 779, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "4575:11:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$588_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4575:45:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$588", - "typeString": "contract IDXswapPair" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 520, - "src": "4575:57:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4575:59:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4541:93:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 789, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 764, - "src": "4645:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 790, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 766, - "src": "4655:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 791, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "4644:20:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 792, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "4667:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 793, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 769, - "src": "4677:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4667:16:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 798, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 778, - "src": "4710:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 799, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 776, - "src": "4720:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 800, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4709:20:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "4667:62:2", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 795, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 776, - "src": "4687:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 796, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 778, - "src": "4697:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 797, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4686:20:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "4644:85:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 803, - "nodeType": "ExpressionStatement", - "src": "4644:85:2" - } - ] - }, - "documentation": null, - "id": 805, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 762, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 757, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 805, - "src": "4373:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 756, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4373:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 759, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 805, - "src": "4390:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 758, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4390:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 761, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 805, - "src": "4406:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 760, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4406:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4372:49:2" - }, - "returnParameters": { - "id": 767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 764, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 805, - "src": "4445:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 763, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4445:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 766, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 805, - "src": "4460:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4460:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4444:30:2" - }, - "scope": 1200, - "src": "4352:384:2", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 835, - "nodeType": "Block", - "src": "4901:138:2", - "statements": [ - { - "assignments": [ - 817, - null - ], - "declarations": [ - { - "constant": false, - "id": 817, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 835, - "src": "4912:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4912:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 822, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 819, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "4942:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "4950:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 818, - "name": "sortTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 710, - "src": "4931:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4931:26:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4911:46:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 823, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "4967:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 826, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "4997:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 827, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "5006:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 828, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "5014:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 825, - "name": "pairFor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "4989:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4989:32:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 824, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "4977:11:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$588_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4977:45:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$588", - "typeString": "contract IDXswapPair" - } - }, - "id": 831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 540, - "src": "4977:53:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4977:55:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4967:65:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 834, - "nodeType": "ExpressionStatement", - "src": "4967:65:2" - } - ] - }, - "documentation": null, - "id": 836, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 812, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 807, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 836, - "src": "4815:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4815:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 809, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 836, - "src": "4832:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4832:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 811, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 836, - "src": "4848:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4848:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4814:49:2" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 814, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 836, - "src": "4887:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 813, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4887:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4886:14:2" - }, - "scope": 1200, - "src": "4795:244:2", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 874, - "nodeType": "Block", - "src": "5245:215:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 848, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "5263:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5273:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5263:11:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54", - "id": 851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5276:36:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4941112be25498feed92ef929155d80bdb527ec03291b35c2fc0e6212a9bba6f", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_AMOUNT\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4941112be25498feed92ef929155d80bdb527ec03291b35c2fc0e6212a9bba6f", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_AMOUNT\"" - } - ], - "id": 847, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5255:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5255:58:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 853, - "nodeType": "ExpressionStatement", - "src": "5255:58:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 855, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "5331:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5342:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5331:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 858, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 842, - "src": "5347:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5358:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5347:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5331:28:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4c4951554944495459", - "id": 862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5361:39:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_LIQUIDITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - } - ], - "id": 854, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5323:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5323:78:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 864, - "nodeType": "ExpressionStatement", - "src": "5323:78:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 865, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "5411:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 868, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 842, - "src": "5433:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 866, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "5421:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 661, - "src": "5421:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5421:21:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 870, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "5445:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5421:32:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5411:42:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 873, - "nodeType": "ExpressionStatement", - "src": "5411:42:2" - } - ] - }, - "documentation": null, - "id": 875, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "quote", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 843, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 838, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 875, - "src": "5164:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 837, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5164:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 840, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 875, - "src": "5178:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 839, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5178:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 842, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 875, - "src": "5193:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 841, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5193:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5163:44:2" - }, - "returnParameters": { - "id": 846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 845, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 875, - "src": "5231:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 844, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5231:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5230:14:2" - }, - "scope": 1200, - "src": "5149:311:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "5702:417:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 889, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 877, - "src": "5720:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5731:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5720:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54", - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5734:42:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e4d2630755a31998597b5d43cb14cc6edea9d11eeb5693d972c3265868799513", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e4d2630755a31998597b5d43cb14cc6edea9d11eeb5693d972c3265868799513", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT\"" - } - ], - "id": 888, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5712:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5712:65:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 894, - "nodeType": "ExpressionStatement", - "src": "5712:65:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 896, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "5795:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5807:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5795:13:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 899, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "5812:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5825:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5812:14:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5795:31:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4c4951554944495459", - "id": 903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5828:39:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_LIQUIDITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - } - ], - "id": 895, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5787:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5787:81:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 905, - "nodeType": "ExpressionStatement", - "src": "5787:81:2" - }, - { - "assignments": [ - 907 - ], - "declarations": [ - { - "constant": false, - "id": 907, - "mutability": "mutable", - "name": "amountInWithFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 942, - "src": "5878:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 906, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5878:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 918, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 915, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "5930:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5919:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "id": 911, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5914:4:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 910, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5914:4:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 913, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5914:11:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 633, - "src": "5914:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5914:24:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 908, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 877, - "src": "5901:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 661, - "src": "5901:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5901:38:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5878:61:2" - }, - { - "assignments": [ - 920 - ], - "declarations": [ - { - "constant": false, - "id": 920, - "mutability": "mutable", - "name": "numerator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 942, - "src": "5949:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 919, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5949:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 925, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 923, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "5986:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 921, - "name": "amountInWithFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "5966:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 661, - "src": "5966:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5966:31:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5949:48:2" - }, - { - "assignments": [ - 927 - ], - "declarations": [ - { - "constant": false, - "id": 927, - "mutability": "mutable", - "name": "denominator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 942, - "src": "6007:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 926, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6007:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 935, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 933, - "name": "amountInWithFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "6051:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6040:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "argumentTypes": null, - "id": 928, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "6026:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 661, - "src": "6026:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6026:20:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 611, - "src": "6026:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6026:41:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6007:60:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 936, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "6077:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 937, - "name": "numerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "6089:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 938, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "6101:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6089:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6077:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 941, - "nodeType": "ExpressionStatement", - "src": "6077:35:2" - } - ] - }, - "documentation": null, - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 877, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 943, - "src": "5601:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 876, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5601:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 879, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 943, - "src": "5616:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5616:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 881, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 943, - "src": "5632:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 880, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5632:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 883, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 943, - "src": "5649:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 882, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5649:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5600:62:2" - }, - "returnParameters": { - "id": 887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 886, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 943, - "src": "5686:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5686:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5685:16:2" - }, - "scope": 1200, - "src": "5579:540:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1010, - "nodeType": "Block", - "src": "6359:374:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 957, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 945, - "src": "6377:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6389:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6377:13:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6392:43:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bbe08a1ec2cff36e527d20c027bf70b8607d4c605e172bec1980f6ea25085cc9", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bbe08a1ec2cff36e527d20c027bf70b8607d4c605e172bec1980f6ea25085cc9", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 956, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6369:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6369:67:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 962, - "nodeType": "ExpressionStatement", - "src": "6369:67:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 964, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 947, - "src": "6454:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6466:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6454:13:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 967, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6471:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 968, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6484:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6471:14:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6454:31:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4c4951554944495459", - "id": 971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6487:39:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_LIQUIDITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - } - ], - "id": 963, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6446:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6446:81:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 973, - "nodeType": "ExpressionStatement", - "src": "6446:81:2" - }, - { - "assignments": [ - 975 - ], - "declarations": [ - { - "constant": false, - "id": 975, - "mutability": "mutable", - "name": "numerator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1010, - "src": "6537:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 974, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6537:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 983, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6583:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 978, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 945, - "src": "6568:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 976, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 947, - "src": "6554:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 661, - "src": "6554:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6554:24:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 661, - "src": "6554:28:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6554:35:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6537:52:2" - }, - { - "assignments": [ - 985 - ], - "declarations": [ - { - "constant": false, - "id": 985, - "mutability": "mutable", - "name": "denominator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1010, - "src": "6599:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 984, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6599:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 999, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 996, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "6664:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6653:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "id": 992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6648:4:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 991, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6648:4:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6648:11:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 633, - "src": "6648:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6648:24:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 988, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 945, - "src": "6633:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 986, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6618:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 633, - "src": "6618:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6618:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 661, - "src": "6618:29:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6618:55:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6599:74:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1000, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 954, - "src": "6683:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6724:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1001, - "name": "numerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "6695:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1002, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "6707:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6695:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1004, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6694:25:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 611, - "src": "6694:29:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6694:32:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6683:43:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1009, - "nodeType": "ExpressionStatement", - "src": "6683:43:2" - } - ] - }, - "documentation": null, - "id": 1011, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 952, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 945, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1011, - "src": "6258:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 944, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6258:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 947, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1011, - "src": "6274:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 946, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6274:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 949, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1011, - "src": "6290:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 948, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6290:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 951, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1011, - "src": "6307:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6307:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6257:63:2" - }, - "returnParameters": { - "id": 955, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1011, - "src": "6344:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 953, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6344:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6343:15:2" - }, - "scope": 1200, - "src": "6237:496:2", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1102, - "nodeType": "Block", - "src": "6936:419:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1025, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "6954:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6954:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6969:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "6954:16:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e56414c49445f50415448", - "id": 1029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6972:29:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - }, - "value": "DXswapLibrary: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - } - ], - "id": 1024, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6946:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6946:56:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1031, - "nodeType": "ExpressionStatement", - "src": "6946:56:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1032, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "7012:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1036, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "7033:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7033:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "7022:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 1033, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7026:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1034, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7026:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7022:23:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "7012:33:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1040, - "nodeType": "ExpressionStatement", - "src": "7012:33:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1041, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "7055:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1043, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7063:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7055:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1044, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "7068:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7055:21:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1046, - "nodeType": "ExpressionStatement", - "src": "7055:21:2" - }, - { - "body": { - "id": 1100, - "nodeType": "Block", - "src": "7125:224:2", - "statements": [ - { - "assignments": [ - 1060, - 1062 - ], - "declarations": [ - { - "constant": false, - "id": 1060, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1100, - "src": "7140:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7140:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1062, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1100, - "src": "7156:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1061, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7156:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1074, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1064, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1013, - "src": "7187:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1065, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "7196:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1067, - "indexExpression": { - "argumentTypes": null, - "id": 1066, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "7201:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7196:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1068, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "7205:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1072, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1069, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "7210:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7214:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7210:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7205:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1063, - "name": "getReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7175:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256,uint256)" - } - }, - "id": 1073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7175:42:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7139:78:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1075, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "7231:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1079, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1076, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "7239:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7243:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7239:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7231:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1081, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "7261:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1083, - "indexExpression": { - "argumentTypes": null, - "id": 1082, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "7269:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7261:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1084, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1060, - "src": "7273:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1085, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "7284:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1087, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1013, - "src": "7307:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1088, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "7316:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1090, - "indexExpression": { - "argumentTypes": null, - "id": 1089, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "7321:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7316:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1091, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "7325:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1095, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1092, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "7330:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7334:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7330:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7325:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1086, - "name": "getSwapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 836, - "src": "7296:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256)" - } - }, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7296:41:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1080, - "name": "getAmountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "7248:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7248:90:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7231:107:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1099, - "nodeType": "ExpressionStatement", - "src": "7231:107:2" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1050, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "7099:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1051, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "7103:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7103:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7117:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7103:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7099:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1101, - "initializationExpression": { - "assignments": [ - 1048 - ], - "declarations": [ - { - "constant": false, - "id": 1048, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1101, - "src": "7091:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1047, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7091:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1049, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7091:6:2" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7120:3:2", - "subExpression": { - "argumentTypes": null, - "id": 1056, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "7120:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1058, - "nodeType": "ExpressionStatement", - "src": "7120:3:2" - }, - "nodeType": "ForStatement", - "src": "7086:263:2" - } - ] - }, - "documentation": null, - "id": 1103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1013, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1103, - "src": "6835:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1012, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6835:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1015, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1103, - "src": "6852:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1014, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6852:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1018, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1103, - "src": "6867:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1016, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6867:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1017, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6867:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6834:55:2" - }, - "returnParameters": { - "id": 1023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1022, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1103, - "src": "6913:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1020, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6913:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1021, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6913:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6912:23:2" - }, - "scope": 1200, - "src": "6812:543:2", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1198, - "nodeType": "Block", - "src": "7557:440:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1117, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "7575:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7575:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7590:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "7575:16:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e56414c49445f50415448", - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7593:29:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - }, - "value": "DXswapLibrary: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - } - ], - "id": 1116, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7567:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7567:56:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1123, - "nodeType": "ExpressionStatement", - "src": "7567:56:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1124, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1114, - "src": "7633:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1128, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "7654:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7654:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "7643:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 1125, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7647:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1126, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7647:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 1130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7643:23:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "7633:33:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1132, - "nodeType": "ExpressionStatement", - "src": "7633:33:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1133, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1114, - "src": "7676:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1138, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1134, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1114, - "src": "7684:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7684:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7701:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7684:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7676:27:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1139, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "7706:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7676:39:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "7676:39:2" - }, - { - "body": { - "id": 1196, - "nodeType": "Block", - "src": "7768:223:2", - "statements": [ - { - "assignments": [ - 1156, - 1158 - ], - "declarations": [ - { - "constant": false, - "id": 1156, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1196, - "src": "7783:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7783:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1158, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1196, - "src": "7799:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1157, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7799:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1170, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1160, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "7830:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1161, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "7839:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1165, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1162, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "7844:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7848:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7844:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7839:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1166, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "7852:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1168, - "indexExpression": { - "argumentTypes": null, - "id": 1167, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "7857:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7852:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1159, - "name": "getReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7818:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256,uint256)" - } - }, - "id": 1169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7818:42:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7782:78:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1171, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1114, - "src": "7874:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1175, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1172, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "7882:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7886:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7882:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7874:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1177, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1114, - "src": "7903:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1179, - "indexExpression": { - "argumentTypes": null, - "id": 1178, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "7911:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7903:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1180, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "7915:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1181, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1158, - "src": "7926:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1183, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "7949:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1184, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "7958:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1188, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1185, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "7963:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7967:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7963:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7958:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1189, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "7971:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1191, - "indexExpression": { - "argumentTypes": null, - "id": 1190, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "7976:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7971:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1182, - "name": "getSwapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 836, - "src": "7938:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7938:41:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1176, - "name": "getAmountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "7891:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7891:89:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7874:106:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1195, - "nodeType": "ExpressionStatement", - "src": "7874:106:2" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1149, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "7756:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7760:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7756:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1197, - "initializationExpression": { - "assignments": [ - 1143 - ], - "declarations": [ - { - "constant": false, - "id": 1143, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1197, - "src": "7730:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1142, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7730:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1148, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1144, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "7739:4:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7739:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7753:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7739:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7730:24:2" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "7763:3:2", - "subExpression": { - "argumentTypes": null, - "id": 1152, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "7763:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1154, - "nodeType": "ExpressionStatement", - "src": "7763:3:2" - }, - "nodeType": "ForStatement", - "src": "7725:266:2" - } - ] - }, - "documentation": null, - "id": 1199, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1105, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1199, - "src": "7455:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7455:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1107, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1199, - "src": "7472:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1106, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7472:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1110, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1199, - "src": "7488:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1108, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7488:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1109, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7488:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7454:56:2" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1114, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1199, - "src": "7534:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1112, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7534:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1113, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7534:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7533:23:2" - }, - "scope": 1200, - "src": "7433:564:2", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1201, - "src": "3261:4738:2" - } - ], - "src": "60:7940:2" - } - }, - "contracts/.flattened/DXswapOracleLibrary.sol": { - "id": 3, - "AST": { - "absolutePath": "contracts/.flattened/DXswapOracleLibrary.sol", - "exportedSymbols": { - "DXswapOracleLibrary": [ - 1732 - ], - "FixedPoint": [ - 1628 - ], - "IDXswapPair": [ - 1452 - ] - }, - "id": 1733, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1202, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "60:24:3" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 1452, - "linearizedBaseContracts": [ - 1452 - ], - "name": "IDXswapPair", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1210, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 1209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1204, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1210, - "src": "129:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1203, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "129:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1206, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1210, - "src": "152:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1205, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "152:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1208, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1210, - "src": "177:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1207, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "177:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "128:60:3" - }, - "src": "114:75:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1218, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 1217, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1212, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1218, - "src": "209:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1211, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "209:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1214, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1218, - "src": "231:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1213, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "231:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1216, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1218, - "src": "251:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1215, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "251:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "208:54:3" - }, - "src": "194:69:3" - }, - { - "body": null, - "documentation": null, - "functionSelector": "06fdde03", - "id": 1223, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1219, - "nodeType": "ParameterList", - "parameters": [], - "src": "282:2:3" - }, - "returnParameters": { - "id": 1222, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1221, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1223, - "src": "308:13:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1220, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "308:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "307:15:3" - }, - "scope": 1452, - "src": "269:54:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "95d89b41", - "id": 1228, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [], - "src": "343:2:3" - }, - "returnParameters": { - "id": 1227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1226, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1228, - "src": "369:13:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1225, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "369:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "368:15:3" - }, - "scope": 1452, - "src": "328:56:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "313ce567", - "id": 1233, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1229, - "nodeType": "ParameterList", - "parameters": [], - "src": "406:2:3" - }, - "returnParameters": { - "id": 1232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1231, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1233, - "src": "432:5:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1230, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "432:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "431:7:3" - }, - "scope": 1452, - "src": "389:50:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "18160ddd", - "id": 1238, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1234, - "nodeType": "ParameterList", - "parameters": [], - "src": "464:2:3" - }, - "returnParameters": { - "id": 1237, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1236, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1238, - "src": "490:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1235, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "490:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "489:6:3" - }, - "scope": 1452, - "src": "444:52:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "70a08231", - "id": 1245, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1241, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1240, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1245, - "src": "520:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1239, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "520:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "519:15:3" - }, - "returnParameters": { - "id": 1244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1243, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1245, - "src": "558:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1242, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "558:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "557:6:3" - }, - "scope": 1452, - "src": "501:63:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "dd62ed3e", - "id": 1254, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1247, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1254, - "src": "588:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1246, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "588:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1249, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1254, - "src": "603:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1248, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "603:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "587:32:3" - }, - "returnParameters": { - "id": 1253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1252, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1254, - "src": "643:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1251, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "643:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "642:6:3" - }, - "scope": 1452, - "src": "569:80:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 1263, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1259, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1256, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1263, - "src": "672:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1255, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "672:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1258, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1263, - "src": "689:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "689:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:29:3" - }, - "returnParameters": { - "id": 1262, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1261, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1263, - "src": "719:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1260, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "719:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "718:6:3" - }, - "scope": 1452, - "src": "655:70:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 1272, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1268, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1265, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1272, - "src": "748:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1264, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "748:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1267, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1272, - "src": "760:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1266, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "760:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "747:24:3" - }, - "returnParameters": { - "id": 1271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1270, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1272, - "src": "790:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1269, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "790:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "789:6:3" - }, - "scope": 1452, - "src": "730:66:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "23b872dd", - "id": 1283, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1279, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1274, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1283, - "src": "823:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "823:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1276, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1283, - "src": "837:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1275, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "837:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1278, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1283, - "src": "849:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1277, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "849:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "822:38:3" - }, - "returnParameters": { - "id": 1282, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1281, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1283, - "src": "879:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1280, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "879:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "878:6:3" - }, - "scope": 1452, - "src": "801:84:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "3644e515", - "id": 1288, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "DOMAIN_SEPARATOR", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1284, - "nodeType": "ParameterList", - "parameters": [], - "src": "916:2:3" - }, - "returnParameters": { - "id": 1287, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1286, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1288, - "src": "942:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1285, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "942:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "941:9:3" - }, - "scope": 1452, - "src": "891:60:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "30adf81f", - "id": 1293, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "PERMIT_TYPEHASH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1289, - "nodeType": "ParameterList", - "parameters": [], - "src": "980:2:3" - }, - "returnParameters": { - "id": 1292, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1291, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1293, - "src": "1006:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1290, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1006:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1005:9:3" - }, - "scope": 1452, - "src": "956:59:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7ecebe00", - "id": 1300, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "nonces", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1295, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1300, - "src": "1036:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1036:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1035:15:3" - }, - "returnParameters": { - "id": 1299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1298, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1300, - "src": "1074:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1074:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1073:6:3" - }, - "scope": 1452, - "src": "1020:60:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d505accf", - "id": 1317, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "permit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1302, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1317, - "src": "1102:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1102:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1304, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1317, - "src": "1117:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1117:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1306, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1317, - "src": "1134:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1305, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1134:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1308, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1317, - "src": "1146:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1307, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1146:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1310, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1317, - "src": "1161:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1309, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1161:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1312, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1317, - "src": "1170:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1311, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1170:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1314, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1317, - "src": "1181:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1313, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1181:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1101:90:3" - }, - "returnParameters": { - "id": 1316, - "nodeType": "ParameterList", - "parameters": [], - "src": "1200:0:3" - }, - "scope": 1452, - "src": "1086:115:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "anonymous": false, - "documentation": null, - "id": 1325, - "name": "Mint", - "nodeType": "EventDefinition", - "parameters": { - "id": 1324, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1319, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1325, - "src": "1218:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1218:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1321, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1325, - "src": "1242:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1320, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1242:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1323, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1325, - "src": "1256:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1322, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1256:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1217:52:3" - }, - "src": "1207:63:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1335, - "name": "Burn", - "nodeType": "EventDefinition", - "parameters": { - "id": 1334, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1327, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1335, - "src": "1286:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1326, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1286:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1329, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1335, - "src": "1310:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1328, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1310:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1331, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1335, - "src": "1324:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1330, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1324:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1333, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1335, - "src": "1338:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1338:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1285:72:3" - }, - "src": "1275:83:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1349, - "name": "Swap", - "nodeType": "EventDefinition", - "parameters": { - "id": 1348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1337, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1349, - "src": "1383:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1336, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1383:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1339, - "indexed": false, - "mutability": "mutable", - "name": "amount0In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1349, - "src": "1415:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1338, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1415:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1341, - "indexed": false, - "mutability": "mutable", - "name": "amount1In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1349, - "src": "1439:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1340, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1439:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1343, - "indexed": false, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1349, - "src": "1463:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1342, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1463:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "indexed": false, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1349, - "src": "1488:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1344, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1488:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1347, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1349, - "src": "1513:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1346, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1513:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:164:3" - }, - "src": "1363:175:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1355, - "name": "Sync", - "nodeType": "EventDefinition", - "parameters": { - "id": 1354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1351, - "indexed": false, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1355, - "src": "1554:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1350, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1554:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1353, - "indexed": false, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1355, - "src": "1572:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1352, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1572:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1553:36:3" - }, - "src": "1543:47:3" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ba9a7a56", - "id": 1360, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "MINIMUM_LIQUIDITY", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1356, - "nodeType": "ParameterList", - "parameters": [], - "src": "1622:2:3" - }, - "returnParameters": { - "id": 1359, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1358, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1360, - "src": "1648:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1357, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:6:3" - }, - "scope": 1452, - "src": "1596:58:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "c45a0155", - "id": 1365, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "factory", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [], - "src": "1675:2:3" - }, - "returnParameters": { - "id": 1364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1363, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1365, - "src": "1701:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1701:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1700:9:3" - }, - "scope": 1452, - "src": "1659:51:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0dfe1681", - "id": 1370, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token0", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1366, - "nodeType": "ParameterList", - "parameters": [], - "src": "1730:2:3" - }, - "returnParameters": { - "id": 1369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1368, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1370, - "src": "1756:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1367, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1756:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1755:9:3" - }, - "scope": 1452, - "src": "1715:50:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d21220a7", - "id": 1375, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token1", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1371, - "nodeType": "ParameterList", - "parameters": [], - "src": "1785:2:3" - }, - "returnParameters": { - "id": 1374, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1373, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1375, - "src": "1811:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1811:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1810:9:3" - }, - "scope": 1452, - "src": "1770:50:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0902f1ac", - "id": 1384, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1376, - "nodeType": "ParameterList", - "parameters": [], - "src": "1845:2:3" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1378, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1384, - "src": "1871:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1377, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1871:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1380, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1384, - "src": "1889:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1379, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1889:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1382, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1384, - "src": "1907:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1381, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1907:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1870:63:3" - }, - "scope": 1452, - "src": "1825:109:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5909c0d5", - "id": 1389, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price0CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1385, - "nodeType": "ParameterList", - "parameters": [], - "src": "1968:2:3" - }, - "returnParameters": { - "id": 1388, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1387, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1389, - "src": "1994:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1386, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1994:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1993:6:3" - }, - "scope": 1452, - "src": "1939:61:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5a3d5493", - "id": 1394, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price1CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1390, - "nodeType": "ParameterList", - "parameters": [], - "src": "2034:2:3" - }, - "returnParameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1392, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1394, - "src": "2060:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1391, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2060:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2059:6:3" - }, - "scope": 1452, - "src": "2005:61:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7464fc3d", - "id": 1399, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "kLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1395, - "nodeType": "ParameterList", - "parameters": [], - "src": "2085:2:3" - }, - "returnParameters": { - "id": 1398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1397, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1399, - "src": "2111:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1396, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2111:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2110:6:3" - }, - "scope": 1452, - "src": "2071:46:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "54cf2aeb", - "id": 1404, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [], - "src": "2138:2:3" - }, - "returnParameters": { - "id": 1403, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1402, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1404, - "src": "2164:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1401, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2164:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2163:8:3" - }, - "scope": 1452, - "src": "2122:50:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "6a627842", - "id": 1411, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1406, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1411, - "src": "2192:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2192:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2191:12:3" - }, - "returnParameters": { - "id": 1410, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1409, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1411, - "src": "2222:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1408, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2222:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2221:16:3" - }, - "scope": 1452, - "src": "2178:60:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "89afcb44", - "id": 1420, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1413, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1420, - "src": "2257:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2257:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2256:12:3" - }, - "returnParameters": { - "id": 1419, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1416, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1420, - "src": "2287:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1415, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2287:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1418, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1420, - "src": "2301:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1417, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2301:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2286:28:3" - }, - "scope": 1452, - "src": "2243:72:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "022c0d9f", - "id": 1431, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swap", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1422, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1431, - "src": "2334:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1421, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2334:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1424, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1431, - "src": "2351:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2351:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1426, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1431, - "src": "2368:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1425, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2368:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1428, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1431, - "src": "2380:19:3", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1427, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2380:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2333:67:3" - }, - "returnParameters": { - "id": 1430, - "nodeType": "ParameterList", - "parameters": [], - "src": "2409:0:3" - }, - "scope": 1452, - "src": "2320:90:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "bc25cf77", - "id": 1436, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "skim", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1433, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1436, - "src": "2429:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1432, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2429:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2428:12:3" - }, - "returnParameters": { - "id": 1435, - "nodeType": "ParameterList", - "parameters": [], - "src": "2449:0:3" - }, - "scope": 1452, - "src": "2415:35:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "fff6cae9", - "id": 1439, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "sync", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1437, - "nodeType": "ParameterList", - "parameters": [], - "src": "2468:2:3" - }, - "returnParameters": { - "id": 1438, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:3" - }, - "scope": 1452, - "src": "2455:25:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "485cc955", - "id": 1446, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "initialize", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1441, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1446, - "src": "2506:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1440, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2506:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1443, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1446, - "src": "2515:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1442, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2515:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2505:18:3" - }, - "returnParameters": { - "id": 1445, - "nodeType": "ParameterList", - "parameters": [], - "src": "2532:0:3" - }, - "scope": 1452, - "src": "2486:47:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d6d788c3", - "id": 1451, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1448, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1451, - "src": "2558:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1447, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2558:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2557:8:3" - }, - "returnParameters": { - "id": 1450, - "nodeType": "ParameterList", - "parameters": [], - "src": "2574:0:3" - }, - "scope": 1452, - "src": "2538:37:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 1733, - "src": "86:2491:3" - }, - { - "id": 1453, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2624:24:3" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 1628, - "linearizedBaseContracts": [ - 1628 - ], - "name": "FixedPoint", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "FixedPoint.uq112x112", - "id": 1456, - "members": [ - { - "constant": false, - "id": 1455, - "mutability": "mutable", - "name": "_x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1456, - "src": "2865:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "typeName": { - "id": 1454, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "2865:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "uq112x112", - "nodeType": "StructDefinition", - "scope": 1628, - "src": "2838:44:3", - "visibility": "public" - }, - { - "canonicalName": "FixedPoint.uq144x112", - "id": 1459, - "members": [ - { - "constant": false, - "id": 1458, - "mutability": "mutable", - "name": "_x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1459, - "src": "2975:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1457, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2975:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "uq144x112", - "nodeType": "StructDefinition", - "scope": 1628, - "src": "2948:41:3", - "visibility": "public" - }, - { - "constant": true, - "id": 1462, - "mutability": "constant", - "name": "RESOLUTION", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1628, - "src": "2995:39:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1460, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2995:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "313132", - "id": 1461, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3031:3:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - "value": "112" - }, - "visibility": "private" - }, - { - "body": { - "id": 1478, - "nodeType": "Block", - "src": "3148:59:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1472, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1464, - "src": "3183:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3175:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 1470, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "3175:7:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3175:10:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 1474, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "3189:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3175:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 1469, - "name": "uq112x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "3165:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$1456_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 1476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3165:35:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "functionReturnParameters": 1468, - "id": 1477, - "nodeType": "Return", - "src": "3158:42:3" - } - ] - }, - "documentation": null, - "id": 1479, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "encode", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1464, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1479, - "src": "3096:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1463, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "3096:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3095:11:3" - }, - "returnParameters": { - "id": 1468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1467, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1479, - "src": "3130:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 1466, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1456, - "src": "3130:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3129:18:3" - }, - "scope": 1628, - "src": "3080:127:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1495, - "nodeType": "Block", - "src": "3324:59:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1489, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1481, - "src": "3359:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - ], - "id": 1488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3351:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1487, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3351:7:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3351:10:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 1491, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "3365:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3351:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1486, - "name": "uq144x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "3341:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq144x112_$1459_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq144x112 storage pointer)" - } - }, - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3341:35:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$1459_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "functionReturnParameters": 1485, - "id": 1494, - "nodeType": "Return", - "src": "3334:42:3" - } - ] - }, - "documentation": null, - "id": 1496, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "encode144", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1482, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1481, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1496, - "src": "3272:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - }, - "typeName": { - "id": 1480, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "3272:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3271:11:3" - }, - "returnParameters": { - "id": 1485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1484, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1496, - "src": "3306:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$1459_memory_ptr", - "typeString": "struct FixedPoint.uq144x112" - }, - "typeName": { - "contractScope": null, - "id": 1483, - "name": "uq144x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1459, - "src": "3306:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$1459_storage_ptr", - "typeString": "struct FixedPoint.uq144x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3305:18:3" - }, - "scope": 1628, - "src": "3253:130:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1522, - "nodeType": "Block", - "src": "3539:107:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1506, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1500, - "src": "3557:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3562:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3557:6:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4669786564506f696e743a204449565f42595f5a45524f", - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3565:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fb797fc20bb06d860bbe348d99030bb226d980421b724f94accde8487e338e12", - "typeString": "literal_string \"FixedPoint: DIV_BY_ZERO\"" - }, - "value": "FixedPoint: DIV_BY_ZERO" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fb797fc20bb06d860bbe348d99030bb226d980421b724f94accde8487e338e12", - "typeString": "literal_string \"FixedPoint: DIV_BY_ZERO\"" - } - ], - "id": 1505, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3549:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3549:42:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1511, - "nodeType": "ExpressionStatement", - "src": "3549:42:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1513, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1498, - "src": "3618:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 1514, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 1455, - "src": "3618:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1517, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1500, - "src": "3636:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3628:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 1515, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "3628:7:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3628:10:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "src": "3618:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 1512, - "name": "uq112x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "3608:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$1456_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 1520, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3608:31:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "functionReturnParameters": 1504, - "id": 1521, - "nodeType": "Return", - "src": "3601:38:3" - } - ] - }, - "documentation": null, - "id": 1523, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1498, - "mutability": "mutable", - "name": "self", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1523, - "src": "3464:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 1497, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1456, - "src": "3464:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1500, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1523, - "src": "3487:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1499, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "3487:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3463:34:3" - }, - "returnParameters": { - "id": 1504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1503, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1523, - "src": "3521:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 1502, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1456, - "src": "3521:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3520:18:3" - }, - "scope": 1628, - "src": "3451:195:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1565, - "nodeType": "Block", - "src": "3825:164:3", - "statements": [ - { - "assignments": [ - 1533 - ], - "declarations": [ - { - "constant": false, - "id": 1533, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1565, - "src": "3835:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1532, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3835:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1534, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "3835:6:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1536, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "3859:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3864:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3859:6:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1539, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1533, - "src": "3870:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1542, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3879:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 1543, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 1455, - "src": "3879:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 1541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3874:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1540, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3874:4:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3874:13:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1545, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "3890:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3874:17:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3870:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1548, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3869:23:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1549, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "3895:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3869:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1553, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "3905:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 1455, - "src": "3905:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3900:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1551, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3900:4:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3900:13:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3869:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3859:54:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57", - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3915:37:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c49d28a1a0a9590848dc8e15e2ce94a0e18d974f72b2d7169c2f9169e1ee31e8", - "typeString": "literal_string \"FixedPoint: MULTIPLICATION_OVERFLOW\"" - }, - "value": "FixedPoint: MULTIPLICATION_OVERFLOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c49d28a1a0a9590848dc8e15e2ce94a0e18d974f72b2d7169c2f9169e1ee31e8", - "typeString": "literal_string \"FixedPoint: MULTIPLICATION_OVERFLOW\"" - } - ], - "id": 1535, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3851:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3851:102:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1560, - "nodeType": "ExpressionStatement", - "src": "3851:102:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1562, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1533, - "src": "3980:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1561, - "name": "uq144x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "3970:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq144x112_$1459_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq144x112 storage pointer)" - } - }, - "id": 1563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3970:12:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$1459_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "functionReturnParameters": 1531, - "id": 1564, - "nodeType": "Return", - "src": "3963:19:3" - } - ] - }, - "documentation": null, - "id": 1566, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1525, - "mutability": "mutable", - "name": "self", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1566, - "src": "3753:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 1524, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1456, - "src": "3753:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1527, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1566, - "src": "3776:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1526, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3776:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3752:31:3" - }, - "returnParameters": { - "id": 1531, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1530, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1566, - "src": "3807:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$1459_memory_ptr", - "typeString": "struct FixedPoint.uq144x112" - }, - "typeName": { - "contractScope": null, - "id": 1529, - "name": "uq144x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1459, - "src": "3807:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$1459_storage_ptr", - "typeString": "struct FixedPoint.uq144x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3806:18:3" - }, - "scope": 1628, - "src": "3740:249:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1594, - "nodeType": "Block", - "src": "4240:144:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "id": 1578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1576, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1570, - "src": "4258:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4272:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4258:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4669786564506f696e743a204449565f42595f5a45524f", - "id": 1579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4275:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fb797fc20bb06d860bbe348d99030bb226d980421b724f94accde8487e338e12", - "typeString": "literal_string \"FixedPoint: DIV_BY_ZERO\"" - }, - "value": "FixedPoint: DIV_BY_ZERO" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fb797fc20bb06d860bbe348d99030bb226d980421b724f94accde8487e338e12", - "typeString": "literal_string \"FixedPoint: DIV_BY_ZERO\"" - } - ], - "id": 1575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4250:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4250:51:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1581, - "nodeType": "ExpressionStatement", - "src": "4250:51:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 1591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 1588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1585, - "name": "numerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1568, - "src": "4337:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "id": 1584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4329:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 1583, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "4329:7:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4329:18:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 1587, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "4351:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4329:32:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "id": 1589, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4328:34:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1590, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1570, - "src": "4365:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "src": "4328:48:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 1582, - "name": "uq112x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "4318:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$1456_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 1592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4318:59:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "functionReturnParameters": 1574, - "id": 1593, - "nodeType": "Return", - "src": "4311:66:3" - } - ] - }, - "documentation": null, - "id": 1595, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fraction", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1571, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1568, - "mutability": "mutable", - "name": "numerator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1595, - "src": "4159:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1567, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "4159:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1570, - "mutability": "mutable", - "name": "denominator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1595, - "src": "4178:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1569, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "4178:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4158:40:3" - }, - "returnParameters": { - "id": 1574, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1573, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1595, - "src": "4222:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 1572, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1456, - "src": "4222:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4221:18:3" - }, - "scope": 1628, - "src": "4141:243:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1610, - "nodeType": "Block", - "src": "4538:54:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 1607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1604, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "4563:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 1605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 1455, - "src": "4563:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 1606, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "4574:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4563:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 1603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4555:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint112_$", - "typeString": "type(uint112)" - }, - "typeName": { - "id": 1602, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "4555:7:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4555:30:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "functionReturnParameters": 1601, - "id": 1609, - "nodeType": "Return", - "src": "4548:37:3" - } - ] - }, - "documentation": null, - "id": 1611, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decode", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1598, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1597, - "mutability": "mutable", - "name": "self", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1611, - "src": "4483:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 1596, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1456, - "src": "4483:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4482:23:3" - }, - "returnParameters": { - "id": 1601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1600, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1611, - "src": "4529:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1599, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "4529:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4528:9:3" - }, - "scope": 1628, - "src": "4467:125:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1626, - "nodeType": "Block", - "src": "4749:54:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1620, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1613, - "src": "4774:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$1459_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 1458, - "src": "4774:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 1622, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "4785:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4774:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4766:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint144_$", - "typeString": "type(uint144)" - }, - "typeName": { - "id": 1618, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "4766:7:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4766:30:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "functionReturnParameters": 1617, - "id": 1625, - "nodeType": "Return", - "src": "4759:37:3" - } - ] - }, - "documentation": null, - "id": 1627, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decode144", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1613, - "mutability": "mutable", - "name": "self", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1627, - "src": "4694:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$1459_memory_ptr", - "typeString": "struct FixedPoint.uq144x112" - }, - "typeName": { - "contractScope": null, - "id": 1612, - "name": "uq144x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1459, - "src": "4694:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$1459_storage_ptr", - "typeString": "struct FixedPoint.uq144x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4693:23:3" - }, - "returnParameters": { - "id": 1617, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1616, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1627, - "src": "4740:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - }, - "typeName": { - "id": 1615, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "4740:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4739:9:3" - }, - "scope": 1628, - "src": "4675:128:3", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1733, - "src": "2753:2052:3" - }, - { - "id": 1629, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4861:24:3" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 1732, - "linearizedBaseContracts": [ - 1732 - ], - "name": "DXswapOracleLibrary", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1631, - "libraryName": { - "contractScope": null, - "id": 1630, - "name": "FixedPoint", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1628, - "src": "5021:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FixedPoint_$1628", - "typeString": "library FixedPoint" - } - }, - "nodeType": "UsingForDirective", - "src": "5015:23:3", - "typeName": null - }, - { - "body": { - "id": 1646, - "nodeType": "Block", - "src": "5220:57:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1638, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "5244:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5244:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - }, - "id": 1642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5262:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3332", - "id": 1641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5267:2:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "5262:7:3", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - }, - "src": "5244:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5237:6:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 1636, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5237:6:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5237:33:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1635, - "id": 1645, - "nodeType": "Return", - "src": "5230:40:3" - } - ] - }, - "documentation": null, - "id": 1647, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentBlockTimestamp", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1632, - "nodeType": "ParameterList", - "parameters": [], - "src": "5186:2:3" - }, - "returnParameters": { - "id": 1635, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1634, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1647, - "src": "5212:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1633, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5212:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5211:8:3" - }, - "scope": 1732, - "src": "5156:121:3", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1730, - "nodeType": "Block", - "src": "5533:878:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1658, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1656, - "src": "5543:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1659, - "name": "currentBlockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1647, - "src": "5560:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$", - "typeString": "function () view returns (uint32)" - } - }, - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5560:23:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "5543:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 1662, - "nodeType": "ExpressionStatement", - "src": "5543:40:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1663, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "5593:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1665, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1649, - "src": "5624:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1664, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "5612:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$1452_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 1666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5612:17:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$1452", - "typeString": "contract IDXswapPair" - } - }, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "price0CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 1389, - "src": "5612:38:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 1668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5612:40:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5593:59:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1670, - "nodeType": "ExpressionStatement", - "src": "5593:59:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1671, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1654, - "src": "5662:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1673, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1649, - "src": "5693:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1672, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "5681:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$1452_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 1674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5681:17:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$1452", - "typeString": "contract IDXswapPair" - } - }, - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "price1CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 1394, - "src": "5681:38:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 1676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5681:40:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5662:59:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1678, - "nodeType": "ExpressionStatement", - "src": "5662:59:3" - }, - { - "assignments": [ - 1680, - 1682, - 1684 - ], - "declarations": [ - { - "constant": false, - "id": 1680, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1730, - "src": "5833:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1679, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "5833:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1682, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1730, - "src": "5851:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 1681, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "5851:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1684, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1730, - "src": "5869:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1683, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5869:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1690, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1686, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1649, - "src": "5910:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1685, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "5898:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$1452_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 1687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5898:17:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$1452", - "typeString": "contract IDXswapPair" - } - }, - "id": 1688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 1384, - "src": "5898:29:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 1689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5898:31:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5832:97:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1691, - "name": "blockTimestampLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1684, - "src": "5943:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1692, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1656, - "src": "5965:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "5943:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1729, - "nodeType": "IfStatement", - "src": "5939:466:3", - "trueBody": { - "id": 1728, - "nodeType": "Block", - "src": "5981:424:3", - "statements": [ - { - "assignments": [ - 1695 - ], - "declarations": [ - { - "constant": false, - "id": 1695, - "mutability": "mutable", - "name": "timeElapsed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1728, - "src": "6042:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1694, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6042:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1699, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1696, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1656, - "src": "6063:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1697, - "name": "blockTimestampLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1684, - "src": "6080:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "6063:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6042:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1700, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "6186:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1705, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "6231:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - { - "argumentTypes": null, - "id": 1706, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1680, - "src": "6241:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "expression": { - "argumentTypes": null, - "id": 1703, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "6211:10:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$1628_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 1704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fraction", - "nodeType": "MemberAccess", - "referencedDeclaration": 1595, - "src": "6211:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint112_$_t_uint112_$returns$_t_struct$_uq112x112_$1456_memory_ptr_$", - "typeString": "function (uint112,uint112) pure returns (struct FixedPoint.uq112x112 memory)" - } - }, - "id": 1707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6211:39:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 1708, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 1455, - "src": "6211:42:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 1702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6206:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1701, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6206:4:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6206:48:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1710, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1695, - "src": "6257:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "6206:62:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6186:82:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1713, - "nodeType": "ExpressionStatement", - "src": "6186:82:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1714, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1654, - "src": "6312:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1719, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1680, - "src": "6357:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - { - "argumentTypes": null, - "id": 1720, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "6367:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "expression": { - "argumentTypes": null, - "id": 1717, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "6337:10:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$1628_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fraction", - "nodeType": "MemberAccess", - "referencedDeclaration": 1595, - "src": "6337:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint112_$_t_uint112_$returns$_t_struct$_uq112x112_$1456_memory_ptr_$", - "typeString": "function (uint112,uint112) pure returns (struct FixedPoint.uq112x112 memory)" - } - }, - "id": 1721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6337:39:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$1456_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 1722, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 1455, - "src": "6337:42:3", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 1716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6332:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1715, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6332:4:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6332:48:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1724, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1695, - "src": "6383:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "6332:62:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6312:82:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1727, - "nodeType": "ExpressionStatement", - "src": "6312:82:3" - } - ] - } - } - ] - }, - "documentation": null, - "id": 1731, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentCumulativePrices", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1650, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1649, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1731, - "src": "5422:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1648, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5422:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5412:28:3" - }, - "returnParameters": { - "id": 1657, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1652, - "mutability": "mutable", - "name": "price0Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1731, - "src": "5464:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1651, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5464:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1654, - "mutability": "mutable", - "name": "price1Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1731, - "src": "5487:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1653, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5487:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1656, - "mutability": "mutable", - "name": "blockTimestamp", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1731, - "src": "5510:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1655, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5510:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5463:69:3" - }, - "scope": 1732, - "src": "5380:1031:3", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1733, - "src": "4981:1432:3" - } - ], - "src": "60:6354:3" - } - }, - "contracts/.flattened/DXswapRouter.sol": { - "id": 4, - "AST": { - "absolutePath": "contracts/.flattened/DXswapRouter.sol", - "exportedSymbols": { - "DXswapLibrary": [ - 3232 - ], - "DXswapRouter": [ - 5373 - ], - "IDXswapFactory": [ - 1817 - ], - "IDXswapPair": [ - 2620 - ], - "IDXswapRouter": [ - 2369 - ], - "IERC20": [ - 3315 - ], - "IWETH": [ - 3334 - ], - "SafeMath": [ - 2694 - ], - "TransferHelper": [ - 1976 - ] - }, - "id": 5374, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1734, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "63:24:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 1817, - "linearizedBaseContracts": [ - 1817 - ], - "name": "IDXswapFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1744, - "name": "PairCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1736, - "indexed": true, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1744, - "src": "138:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1735, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "138:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1738, - "indexed": true, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1744, - "src": "162:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1737, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "162:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1740, - "indexed": false, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1744, - "src": "186:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1739, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "186:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1742, - "indexed": false, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1744, - "src": "200:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1741, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "200:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "137:68:4" - }, - "src": "120:86:4" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5855a25a", - "id": 1749, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "INIT_CODE_PAIR_HASH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1745, - "nodeType": "ParameterList", - "parameters": [], - "src": "240:2:4" - }, - "returnParameters": { - "id": 1748, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1747, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1749, - "src": "266:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1746, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "266:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "265:9:4" - }, - "scope": 1817, - "src": "212:63:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "017e7e58", - "id": 1754, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "feeTo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1750, - "nodeType": "ParameterList", - "parameters": [], - "src": "294:2:4" - }, - "returnParameters": { - "id": 1753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1752, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1754, - "src": "320:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "320:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "319:9:4" - }, - "scope": 1817, - "src": "280:49:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "2ff7042a", - "id": 1759, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "protocolFeeDenominator", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1755, - "nodeType": "ParameterList", - "parameters": [], - "src": "365:2:4" - }, - "returnParameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1757, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1759, - "src": "391:5:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1756, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "391:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "390:7:4" - }, - "scope": 1817, - "src": "334:64:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "094b7415", - "id": 1764, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "feeToSetter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1760, - "nodeType": "ParameterList", - "parameters": [], - "src": "423:2:4" - }, - "returnParameters": { - "id": 1763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1762, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1764, - "src": "449:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1761, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "449:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "448:9:4" - }, - "scope": 1817, - "src": "403:55:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "e6a43905", - "id": 1773, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPair", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1766, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1773, - "src": "481:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1765, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "481:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1768, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1773, - "src": "497:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "497:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "480:32:4" - }, - "returnParameters": { - "id": 1772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1771, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1773, - "src": "536:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1770, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "536:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "535:14:4" - }, - "scope": 1817, - "src": "464:86:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "1e3dd18b", - "id": 1780, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allPairs", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1776, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1775, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1780, - "src": "573:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1774, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "573:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "572:6:4" - }, - "returnParameters": { - "id": 1779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1778, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1780, - "src": "602:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1777, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "602:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "601:14:4" - }, - "scope": 1817, - "src": "555:61:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "574f2ba3", - "id": 1785, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allPairsLength", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1781, - "nodeType": "ParameterList", - "parameters": [], - "src": "644:2:4" - }, - "returnParameters": { - "id": 1784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1783, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1785, - "src": "670:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1782, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "670:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "669:6:4" - }, - "scope": 1817, - "src": "621:55:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "c9c65396", - "id": 1794, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "createPair", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1790, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1787, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1794, - "src": "702:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1786, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "702:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1789, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1794, - "src": "718:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "718:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "701:32:4" - }, - "returnParameters": { - "id": 1793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1792, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1794, - "src": "752:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1791, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "752:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "751:14:4" - }, - "scope": 1817, - "src": "682:84:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "f46901ed", - "id": 1799, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setFeeTo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1796, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1799, - "src": "790:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1795, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "790:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "789:9:4" - }, - "returnParameters": { - "id": 1798, - "nodeType": "ParameterList", - "parameters": [], - "src": "807:0:4" - }, - "scope": 1817, - "src": "772:36:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a2e74af6", - "id": 1804, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setFeeToSetter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1802, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1801, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1804, - "src": "837:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "837:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "836:9:4" - }, - "returnParameters": { - "id": 1803, - "nodeType": "ParameterList", - "parameters": [], - "src": "854:0:4" - }, - "scope": 1817, - "src": "813:42:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "4e91f811", - "id": 1809, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setProtocolFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1807, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1806, - "mutability": "mutable", - "name": "_protocolFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1809, - "src": "884:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1805, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "884:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "883:20:4" - }, - "returnParameters": { - "id": 1808, - "nodeType": "ParameterList", - "parameters": [], - "src": "912:0:4" - }, - "scope": 1817, - "src": "860:53:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "9e68ceb8", - "id": 1816, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1811, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1816, - "src": "938:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "938:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1813, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1816, - "src": "952:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1812, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "952:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "937:30:4" - }, - "returnParameters": { - "id": 1815, - "nodeType": "ParameterList", - "parameters": [], - "src": "976:0:4" - }, - "scope": 1817, - "src": "918:59:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 5374, - "src": "89:890:4" - }, - { - "id": 1818, - "literals": [ - "solidity", - ">=", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "1030:24:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 1976, - "linearizedBaseContracts": [ - 1976 - ], - "name": "TransferHelper", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1860, - "nodeType": "Block", - "src": "1265:285:4", - "statements": [ - { - "assignments": [ - 1828, - 1830 - ], - "declarations": [ - { - "constant": false, - "id": 1828, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1860, - "src": "1341:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1827, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1341:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1830, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1860, - "src": "1355:17:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1829, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1355:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1840, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783039356561376233", - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1410:10:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - "value": "0x095ea7b3" - }, - { - "argumentTypes": null, - "id": 1836, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "1422:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1837, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1824, - "src": "1426:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1833, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1387:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1387:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1387:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1831, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1820, - "src": "1376:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1376:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1376:57:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1340:93:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1842, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "1451:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1843, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "1463:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1463:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1478:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1463:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1849, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "1494:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1501:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1850, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1501:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 1852, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1500:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "argumentTypes": null, - "id": 1847, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1483:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1483:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1483:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1463:44:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1855, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1462:46:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1451:57:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e7366657248656c7065723a20415050524f56455f4641494c4544", - "id": 1857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1510:32:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3e27be550bb5367a6d8a8b2dd8b5c52ee0710d2d5b26de50062207957ab5bd00", - "typeString": "literal_string \"TransferHelper: APPROVE_FAILED\"" - }, - "value": "TransferHelper: APPROVE_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3e27be550bb5367a6d8a8b2dd8b5c52ee0710d2d5b26de50062207957ab5bd00", - "typeString": "literal_string \"TransferHelper: APPROVE_FAILED\"" - } - ], - "id": 1841, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1443:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1443:100:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1859, - "nodeType": "ExpressionStatement", - "src": "1443:100:4" - } - ] - }, - "documentation": null, - "id": 1861, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeApprove", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1820, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1861, - "src": "1217:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1819, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1217:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1822, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1861, - "src": "1232:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1821, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1232:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1824, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1861, - "src": "1244:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1823, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1244:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1216:39:4" - }, - "returnParameters": { - "id": 1826, - "nodeType": "ParameterList", - "parameters": [], - "src": "1265:0:4" - }, - "scope": 1976, - "src": "1196:354:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1903, - "nodeType": "Block", - "src": "1626:287:4", - "statements": [ - { - "assignments": [ - 1871, - 1873 - ], - "declarations": [ - { - "constant": false, - "id": 1871, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1903, - "src": "1703:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1870, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1703:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1873, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1903, - "src": "1717:17:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1872, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1717:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1883, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30786139303539636262", - "id": 1878, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1772:10:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - "value": "0xa9059cbb" - }, - { - "argumentTypes": null, - "id": 1879, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "1784:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1880, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1867, - "src": "1788:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1876, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1749:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1877, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1749:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1749:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1874, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "1738:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1738:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1738:57:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1702:93:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1885, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "1813:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1886, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "1825:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1825:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1840:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1825:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1892, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "1856:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1894, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1863:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1893, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1863:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 1895, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1862:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "argumentTypes": null, - "id": 1890, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1845:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1845:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1845:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1825:44:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1898, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1824:46:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1813:57:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e7366657248656c7065723a205452414e534645525f4641494c4544", - "id": 1900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1872:33:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426", - "typeString": "literal_string \"TransferHelper: TRANSFER_FAILED\"" - }, - "value": "TransferHelper: TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426", - "typeString": "literal_string \"TransferHelper: TRANSFER_FAILED\"" - } - ], - "id": 1884, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1805:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1805:101:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1902, - "nodeType": "ExpressionStatement", - "src": "1805:101:4" - } - ] - }, - "documentation": null, - "id": 1904, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1863, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1904, - "src": "1578:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1862, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1578:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1865, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1904, - "src": "1593:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1864, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1593:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1867, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1904, - "src": "1605:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1866, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1605:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1577:39:4" - }, - "returnParameters": { - "id": 1869, - "nodeType": "ParameterList", - "parameters": [], - "src": "1626:0:4" - }, - "scope": 1976, - "src": "1556:357:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1949, - "nodeType": "Block", - "src": "2007:310:4", - "statements": [ - { - "assignments": [ - 1916, - 1918 - ], - "declarations": [ - { - "constant": false, - "id": 1916, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1949, - "src": "2096:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1915, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2096:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1918, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1949, - "src": "2110:17:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1917, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2110:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1929, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783233623837326464", - "id": 1923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2165:10:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - "value": "0x23b872dd" - }, - { - "argumentTypes": null, - "id": 1924, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1908, - "src": "2177:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1925, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "2183:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1926, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1912, - "src": "2187:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1921, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2142:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2142:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2142:51:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1919, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1906, - "src": "2131:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2131:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2131:63:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2095:99:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1931, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1916, - "src": "2212:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1932, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1918, - "src": "2224:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2224:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2239:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2224:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1938, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1918, - "src": "2255:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2262:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1939, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2262:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 1941, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2261:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "argumentTypes": null, - "id": 1936, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2244:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2244:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2244:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2224:44:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1944, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2223:46:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2212:57:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544", - "id": 1946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2271:38:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18", - "typeString": "literal_string \"TransferHelper: TRANSFER_FROM_FAILED\"" - }, - "value": "TransferHelper: TRANSFER_FROM_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18", - "typeString": "literal_string \"TransferHelper: TRANSFER_FROM_FAILED\"" - } - ], - "id": 1930, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2204:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2204:106:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1948, - "nodeType": "ExpressionStatement", - "src": "2204:106:4" - } - ] - }, - "documentation": null, - "id": 1950, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1913, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1906, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1950, - "src": "1945:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1905, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1945:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1908, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1950, - "src": "1960:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1907, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1960:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1910, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1950, - "src": "1974:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1909, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1974:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1912, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1950, - "src": "1986:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1911, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1986:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1944:53:4" - }, - "returnParameters": { - "id": 1914, - "nodeType": "ParameterList", - "parameters": [], - "src": "2007:0:4" - }, - "scope": 1976, - "src": "1919:398:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1974, - "nodeType": "Block", - "src": "2381:134:4", - "statements": [ - { - "assignments": [ - 1958, - null - ], - "declarations": [ - { - "constant": false, - "id": 1958, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1974, - "src": "2392:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1957, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2392:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1968, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2440:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2430:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 1963, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2434:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2430:12:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1959, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1952, - "src": "2409:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2409:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "id": 1961, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1954, - "src": "2423:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "2409:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2409:34:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2391:52:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1970, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1958, - "src": "2461:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544", - "id": 1971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2470:37:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d290720a9b119bbeaf8124eb771e119cbea85a2f430cbb39a8fead2398528881", - "typeString": "literal_string \"TransferHelper: ETH_TRANSFER_FAILED\"" - }, - "value": "TransferHelper: ETH_TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d290720a9b119bbeaf8124eb771e119cbea85a2f430cbb39a8fead2398528881", - "typeString": "literal_string \"TransferHelper: ETH_TRANSFER_FAILED\"" - } - ], - "id": 1969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2453:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2453:55:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1973, - "nodeType": "ExpressionStatement", - "src": "2453:55:4" - } - ] - }, - "documentation": null, - "id": 1975, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1955, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1952, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1975, - "src": "2348:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1951, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2348:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1954, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1975, - "src": "2360:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1953, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2360:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2347:24:4" - }, - "returnParameters": { - "id": 1956, - "nodeType": "ParameterList", - "parameters": [], - "src": "2381:0:4" - }, - "scope": 1976, - "src": "2323:192:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 5374, - "src": "1167:1350:4" - }, - { - "id": 1977, - "literals": [ - "solidity", - ">=", - "0.6", - ".2" - ], - "nodeType": "PragmaDirective", - "src": "2568:24:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 2369, - "linearizedBaseContracts": [ - 2369 - ], - "name": "IDXswapRouter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "functionSelector": "c45a0155", - "id": 1982, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "factory", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1978, - "nodeType": "ParameterList", - "parameters": [], - "src": "2641:2:4" - }, - "returnParameters": { - "id": 1981, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1980, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1982, - "src": "2667:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1979, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2667:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2666:9:4" - }, - "scope": 2369, - "src": "2625:51:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ad5c4648", - "id": 1987, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "WETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1983, - "nodeType": "ParameterList", - "parameters": [], - "src": "2694:2:4" - }, - "returnParameters": { - "id": 1986, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1985, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1987, - "src": "2720:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2720:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2719:9:4" - }, - "scope": 2369, - "src": "2681:48:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "e8e33700", - "id": 2012, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "addLiquidity", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2004, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1989, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2766:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1988, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2766:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1991, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2790:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1990, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1993, - "mutability": "mutable", - "name": "amountADesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2814:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1992, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2814:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1995, - "mutability": "mutable", - "name": "amountBDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2843:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1994, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2843:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1997, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2872:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1996, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2872:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1999, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2897:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1998, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2897:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2001, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2922:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2000, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2922:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2003, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2942:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2002, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2942:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2756:205:4" - }, - "returnParameters": { - "id": 2011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2006, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2980:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2005, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2980:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2008, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "2994:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2994:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2010, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2012, - "src": "3008:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2009, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3008:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2979:44:4" - }, - "scope": 2369, - "src": "2735:289:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "f305d719", - "id": 2033, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "addLiquidityETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2014, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2033, - "src": "3063:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2013, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3063:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2016, - "mutability": "mutable", - "name": "amountTokenDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2033, - "src": "3086:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2015, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3086:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2018, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2033, - "src": "3119:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2017, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3119:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2020, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2033, - "src": "3148:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2019, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3148:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2022, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2033, - "src": "3175:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3175:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2024, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2033, - "src": "3195:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2023, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3195:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3053:161:4" - }, - "returnParameters": { - "id": 2032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2027, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2033, - "src": "3241:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2026, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3241:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2029, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2033, - "src": "3259:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2028, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3259:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2031, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2033, - "src": "3275:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2030, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3275:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3240:50:4" - }, - "scope": 2369, - "src": "3029:262:4", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "baa2abde", - "id": 2054, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidity", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2048, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2035, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2054, - "src": "3330:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2034, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3330:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2037, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2054, - "src": "3354:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2036, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3354:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2039, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2054, - "src": "3378:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2038, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3378:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2041, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2054, - "src": "3402:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2040, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3402:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2043, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2054, - "src": "3427:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2042, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3427:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2045, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2054, - "src": "3452:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3452:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2047, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2054, - "src": "3472:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2046, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3472:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3320:171:4" - }, - "returnParameters": { - "id": 2053, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2050, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2054, - "src": "3510:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2049, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3510:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2052, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2054, - "src": "3524:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2051, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3524:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3509:28:4" - }, - "scope": 2369, - "src": "3296:242:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "02751cec", - "id": 2073, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2056, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2073, - "src": "3580:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2055, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3580:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2058, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2073, - "src": "3603:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2057, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3603:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2060, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2073, - "src": "3627:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3627:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2062, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2073, - "src": "3656:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2061, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3656:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2064, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2073, - "src": "3683:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2063, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3683:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2066, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2073, - "src": "3703:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2065, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3703:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3570:152:4" - }, - "returnParameters": { - "id": 2072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2069, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2073, - "src": "3741:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2068, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3741:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2071, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2073, - "src": "3759:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2070, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3759:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3740:34:4" - }, - "scope": 2369, - "src": "3543:232:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "2195995c", - "id": 2102, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityWithPermit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2096, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2075, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "3824:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2074, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3824:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2077, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "3848:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2076, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3848:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2079, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "3872:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2078, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3872:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2081, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "3896:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2080, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3896:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2083, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "3921:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2082, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3921:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2085, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "3946:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3946:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2087, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "3966:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2086, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3966:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2089, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "3989:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2088, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3989:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2091, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "4006:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2090, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4006:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2093, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "4015:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2092, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4015:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2095, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "4026:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2094, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4026:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3814:227:4" - }, - "returnParameters": { - "id": 2101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2098, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "4060:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2097, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4060:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2100, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2102, - "src": "4074:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4074:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4059:28:4" - }, - "scope": 2369, - "src": "3780:308:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ded9382a", - "id": 2129, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHWithPermit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2104, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4140:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2103, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4140:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2106, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4163:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2105, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4163:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2108, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4187:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2107, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4187:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2110, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4216:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2109, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4216:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2112, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4243:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4243:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2114, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4263:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2113, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4263:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2116, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4286:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2115, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4286:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2118, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4303:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2117, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4303:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2120, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4312:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2119, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4312:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2122, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4323:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2121, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4323:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4130:208:4" - }, - "returnParameters": { - "id": 2128, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2125, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4357:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2124, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4357:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2127, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2129, - "src": "4375:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4375:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4356:34:4" - }, - "scope": 2369, - "src": "4093:298:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "38ed1739", - "id": 2146, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2141, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2131, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2146, - "src": "4439:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2130, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4439:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2133, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2146, - "src": "4462:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2132, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4462:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2136, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2146, - "src": "4489:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2134, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4489:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2135, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4489:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2138, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2146, - "src": "4522:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4522:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2140, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2146, - "src": "4542:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2139, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4542:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4429:132:4" - }, - "returnParameters": { - "id": 2145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2144, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2146, - "src": "4580:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2142, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4580:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2143, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4580:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4579:23:4" - }, - "scope": 2369, - "src": "4396:207:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "8803dbee", - "id": 2163, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapTokensForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2158, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2148, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2163, - "src": "4651:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2147, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4651:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2150, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2163, - "src": "4675:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2149, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4675:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2153, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2163, - "src": "4701:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4701:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2152, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4701:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2155, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2163, - "src": "4734:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2154, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4734:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2157, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2163, - "src": "4754:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2156, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4754:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4641:132:4" - }, - "returnParameters": { - "id": 2162, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2161, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2163, - "src": "4792:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2159, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4792:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2160, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4792:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4791:23:4" - }, - "scope": 2369, - "src": "4608:207:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7ff36ab5", - "id": 2178, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactETHForTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2165, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2178, - "src": "4851:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2164, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4851:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2168, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2178, - "src": "4870:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4870:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2167, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4870:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2170, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2178, - "src": "4895:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4895:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2172, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2178, - "src": "4907:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2171, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4907:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4850:71:4" - }, - "returnParameters": { - "id": 2177, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2176, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2178, - "src": "4972:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2174, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4972:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2175, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4972:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4971:23:4" - }, - "scope": 2369, - "src": "4820:175:4", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "4a25d94a", - "id": 2195, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapTokensForExactETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2190, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2180, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2195, - "src": "5031:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2179, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5031:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2182, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2195, - "src": "5047:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2181, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5047:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2185, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2195, - "src": "5065:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2183, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5065:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2184, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5065:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2187, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2195, - "src": "5090:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2186, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5090:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2189, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2195, - "src": "5102:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2188, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5102:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5030:86:4" - }, - "returnParameters": { - "id": 2194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2193, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2195, - "src": "5151:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2191, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5151:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2192, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5151:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5150:23:4" - }, - "scope": 2369, - "src": "5000:174:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "18cbafe5", - "id": 2212, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2207, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2197, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2212, - "src": "5210:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2196, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5210:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2199, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2212, - "src": "5225:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2198, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5225:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2202, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2212, - "src": "5244:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2200, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5244:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2201, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5244:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2204, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2212, - "src": "5269:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2203, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5269:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2206, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2212, - "src": "5281:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2205, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5281:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5209:86:4" - }, - "returnParameters": { - "id": 2211, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2210, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2212, - "src": "5330:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2208, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5330:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2209, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5330:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5329:23:4" - }, - "scope": 2369, - "src": "5179:174:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "fb3bdb41", - "id": 2227, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapETHForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2222, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2214, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2227, - "src": "5389:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5389:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2217, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2227, - "src": "5405:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5405:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2216, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5405:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2219, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2227, - "src": "5430:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5430:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2221, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2227, - "src": "5442:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2220, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5442:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5388:68:4" - }, - "returnParameters": { - "id": 2226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2225, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2227, - "src": "5507:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2223, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5507:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2224, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5507:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5506:23:4" - }, - "scope": 2369, - "src": "5358:172:4", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ad615dec", - "id": 2238, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "quote", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2229, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2238, - "src": "5551:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2228, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5551:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2231, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2238, - "src": "5565:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2230, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5565:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2233, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2238, - "src": "5580:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2232, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5580:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5550:44:4" - }, - "returnParameters": { - "id": 2237, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2236, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2238, - "src": "5618:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2235, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5618:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5617:14:4" - }, - "scope": 2369, - "src": "5536:96:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "52707d8c", - "id": 2251, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAmountOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2240, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2251, - "src": "5659:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2239, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5659:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2242, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2251, - "src": "5674:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2241, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5674:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2244, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2251, - "src": "5690:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2243, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5690:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2246, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2251, - "src": "5707:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2245, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5707:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5658:62:4" - }, - "returnParameters": { - "id": 2250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2249, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2251, - "src": "5744:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2248, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5744:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5743:16:4" - }, - "scope": 2369, - "src": "5637:123:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "571fd012", - "id": 2264, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAmountIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2260, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2253, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2264, - "src": "5786:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2252, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5786:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2255, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2264, - "src": "5802:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2254, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5802:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2257, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2264, - "src": "5818:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2256, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5818:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2259, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2264, - "src": "5835:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2258, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5835:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5785:63:4" - }, - "returnParameters": { - "id": 2263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2262, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2264, - "src": "5872:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2261, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5872:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5871:15:4" - }, - "scope": 2369, - "src": "5765:122:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d06ca61f", - "id": 2275, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAmountsOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2266, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2275, - "src": "5915:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2265, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5915:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2269, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2275, - "src": "5930:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2267, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5930:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2268, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5930:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5914:40:4" - }, - "returnParameters": { - "id": 2274, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2273, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2275, - "src": "5978:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2271, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5978:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2272, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5978:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5977:23:4" - }, - "scope": 2369, - "src": "5892:109:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "1f00ca74", - "id": 2286, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAmountsIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2277, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2286, - "src": "6028:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6028:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2280, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2286, - "src": "6044:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6044:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2279, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6044:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6027:41:4" - }, - "returnParameters": { - "id": 2285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2284, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2286, - "src": "6092:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2282, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6092:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2283, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6092:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6091:23:4" - }, - "scope": 2369, - "src": "6006:109:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "af2979eb", - "id": 2303, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2288, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2303, - "src": "6187:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6187:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2290, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2303, - "src": "6210:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2289, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6210:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2292, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2303, - "src": "6234:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2291, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6234:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2294, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2303, - "src": "6263:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2293, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6263:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2296, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2303, - "src": "6290:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2295, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6290:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2298, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2303, - "src": "6310:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6310:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6177:152:4" - }, - "returnParameters": { - "id": 2302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2301, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2303, - "src": "6348:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2300, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6348:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6347:16:4" - }, - "scope": 2369, - "src": "6121:243:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5b0d5984", - "id": 2328, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2324, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2305, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6445:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2304, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6445:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2307, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6468:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2306, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6468:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2309, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6492:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2308, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6492:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2311, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6521:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2310, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6521:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2313, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6548:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2312, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6548:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2315, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6568:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2314, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6568:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2317, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6591:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2316, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6591:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2319, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6608:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2318, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "6608:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2321, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6617:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2320, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6617:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2323, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6628:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2322, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6628:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6435:208:4" - }, - "returnParameters": { - "id": 2327, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2326, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2328, - "src": "6662:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2325, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6662:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6661:16:4" - }, - "scope": 2369, - "src": "6369:309:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5c11d795", - "id": 2342, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2340, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2330, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2342, - "src": "6756:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2329, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6756:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2332, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2342, - "src": "6779:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2331, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6779:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2335, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2342, - "src": "6806:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6806:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2334, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6806:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2337, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2342, - "src": "6839:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2336, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6839:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2339, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2342, - "src": "6859:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2338, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6859:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6746:132:4" - }, - "returnParameters": { - "id": 2341, - "nodeType": "ParameterList", - "parameters": [], - "src": "6887:0:4" - }, - "scope": 2369, - "src": "6684:204:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "b6f9de95", - "id": 2354, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2344, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2354, - "src": "6962:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2343, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6962:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2347, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2354, - "src": "6989:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2345, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6989:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2346, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6989:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2349, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2354, - "src": "7022:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7022:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2351, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2354, - "src": "7042:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2350, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7042:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6952:109:4" - }, - "returnParameters": { - "id": 2353, - "nodeType": "ParameterList", - "parameters": [], - "src": "7078:0:4" - }, - "scope": 2369, - "src": "6893:186:4", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "791ac947", - "id": 2368, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2366, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2356, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2368, - "src": "7153:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2355, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7153:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2358, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2368, - "src": "7176:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2357, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7176:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2361, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2368, - "src": "7203:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2359, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7203:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2360, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7203:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2363, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2368, - "src": "7236:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7236:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2365, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2368, - "src": "7256:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2364, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7256:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7143:132:4" - }, - "returnParameters": { - "id": 2367, - "nodeType": "ParameterList", - "parameters": [], - "src": "7284:0:4" - }, - "scope": 2369, - "src": "7084:201:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 5374, - "src": "2595:4692:4" - }, - { - "id": 2370, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7348:24:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 2620, - "linearizedBaseContracts": [ - 2620 - ], - "name": "IDXswapPair", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 2378, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 2377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2372, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2378, - "src": "7417:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2371, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7417:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2374, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2378, - "src": "7440:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2373, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7440:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2376, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2378, - "src": "7465:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2375, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7465:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7416:60:4" - }, - "src": "7402:75:4" - }, - { - "anonymous": false, - "documentation": null, - "id": 2386, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 2385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2380, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2386, - "src": "7497:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2379, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7497:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2382, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2386, - "src": "7519:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7519:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2384, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2386, - "src": "7539:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2383, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7539:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7496:54:4" - }, - "src": "7482:69:4" - }, - { - "body": null, - "documentation": null, - "functionSelector": "06fdde03", - "id": 2391, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2387, - "nodeType": "ParameterList", - "parameters": [], - "src": "7570:2:4" - }, - "returnParameters": { - "id": 2390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2389, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2391, - "src": "7596:13:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2388, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7596:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7595:15:4" - }, - "scope": 2620, - "src": "7557:54:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "95d89b41", - "id": 2396, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2392, - "nodeType": "ParameterList", - "parameters": [], - "src": "7631:2:4" - }, - "returnParameters": { - "id": 2395, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2394, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2396, - "src": "7657:13:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2393, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7657:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7656:15:4" - }, - "scope": 2620, - "src": "7616:56:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "313ce567", - "id": 2401, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2397, - "nodeType": "ParameterList", - "parameters": [], - "src": "7694:2:4" - }, - "returnParameters": { - "id": 2400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2399, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2401, - "src": "7720:5:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2398, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "7720:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7719:7:4" - }, - "scope": 2620, - "src": "7677:50:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "18160ddd", - "id": 2406, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2402, - "nodeType": "ParameterList", - "parameters": [], - "src": "7752:2:4" - }, - "returnParameters": { - "id": 2405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2404, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2406, - "src": "7778:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2403, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7778:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7777:6:4" - }, - "scope": 2620, - "src": "7732:52:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "70a08231", - "id": 2413, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2409, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2408, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2413, - "src": "7808:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2407, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7808:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7807:15:4" - }, - "returnParameters": { - "id": 2412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2411, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2413, - "src": "7846:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7846:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7845:6:4" - }, - "scope": 2620, - "src": "7789:63:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "dd62ed3e", - "id": 2422, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2415, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2422, - "src": "7876:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2414, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7876:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2417, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2422, - "src": "7891:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7891:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7875:32:4" - }, - "returnParameters": { - "id": 2421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2420, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2422, - "src": "7931:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2419, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7931:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7930:6:4" - }, - "scope": 2620, - "src": "7857:80:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 2431, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2424, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2431, - "src": "7960:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2423, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7960:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2426, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2431, - "src": "7977:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2425, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7977:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7959:29:4" - }, - "returnParameters": { - "id": 2430, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2429, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2431, - "src": "8007:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2428, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8007:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8006:6:4" - }, - "scope": 2620, - "src": "7943:70:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 2440, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2433, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2440, - "src": "8036:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2432, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8036:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2435, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2440, - "src": "8048:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2434, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8048:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8035:24:4" - }, - "returnParameters": { - "id": 2439, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2438, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2440, - "src": "8078:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2437, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8078:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8077:6:4" - }, - "scope": 2620, - "src": "8018:66:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "23b872dd", - "id": 2451, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2442, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2451, - "src": "8111:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8111:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2444, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2451, - "src": "8125:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2443, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8125:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2446, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2451, - "src": "8137:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8137:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8110:38:4" - }, - "returnParameters": { - "id": 2450, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2449, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2451, - "src": "8167:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2448, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8167:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8166:6:4" - }, - "scope": 2620, - "src": "8089:84:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "3644e515", - "id": 2456, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "DOMAIN_SEPARATOR", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2452, - "nodeType": "ParameterList", - "parameters": [], - "src": "8204:2:4" - }, - "returnParameters": { - "id": 2455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2454, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2456, - "src": "8230:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2453, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8230:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8229:9:4" - }, - "scope": 2620, - "src": "8179:60:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "30adf81f", - "id": 2461, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "PERMIT_TYPEHASH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2457, - "nodeType": "ParameterList", - "parameters": [], - "src": "8268:2:4" - }, - "returnParameters": { - "id": 2460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2459, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2461, - "src": "8294:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2458, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8294:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8293:9:4" - }, - "scope": 2620, - "src": "8244:59:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7ecebe00", - "id": 2468, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "nonces", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2463, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2468, - "src": "8324:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8324:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8323:15:4" - }, - "returnParameters": { - "id": 2467, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2466, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2468, - "src": "8362:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2465, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8362:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8361:6:4" - }, - "scope": 2620, - "src": "8308:60:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d505accf", - "id": 2485, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "permit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2483, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2470, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2485, - "src": "8390:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2469, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8390:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2472, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2485, - "src": "8405:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8405:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2474, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2485, - "src": "8422:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2473, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8422:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2476, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2485, - "src": "8434:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2475, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8434:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2478, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2485, - "src": "8449:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2477, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "8449:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2480, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2485, - "src": "8458:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2479, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8458:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2482, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2485, - "src": "8469:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2481, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8469:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8389:90:4" - }, - "returnParameters": { - "id": 2484, - "nodeType": "ParameterList", - "parameters": [], - "src": "8488:0:4" - }, - "scope": 2620, - "src": "8374:115:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "anonymous": false, - "documentation": null, - "id": 2493, - "name": "Mint", - "nodeType": "EventDefinition", - "parameters": { - "id": 2492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2487, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2493, - "src": "8506:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8506:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2489, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2493, - "src": "8530:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2488, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8530:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2491, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2493, - "src": "8544:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8544:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8505:52:4" - }, - "src": "8495:63:4" - }, - { - "anonymous": false, - "documentation": null, - "id": 2503, - "name": "Burn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2495, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2503, - "src": "8574:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2494, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8574:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2497, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2503, - "src": "8598:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2496, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8598:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2499, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2503, - "src": "8612:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2498, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8612:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2501, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2503, - "src": "8626:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2500, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8626:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8573:72:4" - }, - "src": "8563:83:4" - }, - { - "anonymous": false, - "documentation": null, - "id": 2517, - "name": "Swap", - "nodeType": "EventDefinition", - "parameters": { - "id": 2516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2505, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2517, - "src": "8671:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2504, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8671:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2507, - "indexed": false, - "mutability": "mutable", - "name": "amount0In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2517, - "src": "8703:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2506, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8703:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2509, - "indexed": false, - "mutability": "mutable", - "name": "amount1In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2517, - "src": "8727:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2508, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8727:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2511, - "indexed": false, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2517, - "src": "8751:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2510, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8751:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2513, - "indexed": false, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2517, - "src": "8776:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2512, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8776:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2515, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2517, - "src": "8801:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2514, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8801:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8661:164:4" - }, - "src": "8651:175:4" - }, - { - "anonymous": false, - "documentation": null, - "id": 2523, - "name": "Sync", - "nodeType": "EventDefinition", - "parameters": { - "id": 2522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2519, - "indexed": false, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2523, - "src": "8842:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 2518, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "8842:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2521, - "indexed": false, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2523, - "src": "8860:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 2520, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "8860:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8841:36:4" - }, - "src": "8831:47:4" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ba9a7a56", - "id": 2528, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "MINIMUM_LIQUIDITY", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2524, - "nodeType": "ParameterList", - "parameters": [], - "src": "8910:2:4" - }, - "returnParameters": { - "id": 2527, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2526, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2528, - "src": "8936:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2525, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8936:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8935:6:4" - }, - "scope": 2620, - "src": "8884:58:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "c45a0155", - "id": 2533, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "factory", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2529, - "nodeType": "ParameterList", - "parameters": [], - "src": "8963:2:4" - }, - "returnParameters": { - "id": 2532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2531, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2533, - "src": "8989:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2530, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8989:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8988:9:4" - }, - "scope": 2620, - "src": "8947:51:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0dfe1681", - "id": 2538, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token0", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2534, - "nodeType": "ParameterList", - "parameters": [], - "src": "9018:2:4" - }, - "returnParameters": { - "id": 2537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2536, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2538, - "src": "9044:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2535, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9044:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9043:9:4" - }, - "scope": 2620, - "src": "9003:50:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d21220a7", - "id": 2543, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token1", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2539, - "nodeType": "ParameterList", - "parameters": [], - "src": "9073:2:4" - }, - "returnParameters": { - "id": 2542, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2541, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2543, - "src": "9099:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9099:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9098:9:4" - }, - "scope": 2620, - "src": "9058:50:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0902f1ac", - "id": 2552, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2544, - "nodeType": "ParameterList", - "parameters": [], - "src": "9133:2:4" - }, - "returnParameters": { - "id": 2551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2546, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2552, - "src": "9159:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 2545, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "9159:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2548, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2552, - "src": "9177:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 2547, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "9177:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2550, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2552, - "src": "9195:25:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2549, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9195:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9158:63:4" - }, - "scope": 2620, - "src": "9113:109:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5909c0d5", - "id": 2557, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price0CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2553, - "nodeType": "ParameterList", - "parameters": [], - "src": "9256:2:4" - }, - "returnParameters": { - "id": 2556, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2555, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2557, - "src": "9282:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2554, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9282:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9281:6:4" - }, - "scope": 2620, - "src": "9227:61:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5a3d5493", - "id": 2562, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price1CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2558, - "nodeType": "ParameterList", - "parameters": [], - "src": "9322:2:4" - }, - "returnParameters": { - "id": 2561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2560, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2562, - "src": "9348:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2559, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9348:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9347:6:4" - }, - "scope": 2620, - "src": "9293:61:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7464fc3d", - "id": 2567, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "kLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2563, - "nodeType": "ParameterList", - "parameters": [], - "src": "9373:2:4" - }, - "returnParameters": { - "id": 2566, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2565, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2567, - "src": "9399:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2564, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9399:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9398:6:4" - }, - "scope": 2620, - "src": "9359:46:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "54cf2aeb", - "id": 2572, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2568, - "nodeType": "ParameterList", - "parameters": [], - "src": "9426:2:4" - }, - "returnParameters": { - "id": 2571, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2570, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2572, - "src": "9452:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2569, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9452:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9451:8:4" - }, - "scope": 2620, - "src": "9410:50:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "6a627842", - "id": 2579, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2575, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2574, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2579, - "src": "9480:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9480:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9479:12:4" - }, - "returnParameters": { - "id": 2578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2577, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2579, - "src": "9510:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2576, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9510:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9509:16:4" - }, - "scope": 2620, - "src": "9466:60:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "89afcb44", - "id": 2588, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2582, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2581, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2588, - "src": "9545:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9545:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9544:12:4" - }, - "returnParameters": { - "id": 2587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2584, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2588, - "src": "9575:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2583, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9575:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2586, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2588, - "src": "9589:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2585, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9589:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9574:28:4" - }, - "scope": 2620, - "src": "9531:72:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "022c0d9f", - "id": 2599, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swap", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2590, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "9622:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2589, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9622:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2592, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "9639:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2591, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9639:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2594, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "9656:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9656:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2596, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "9668:19:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2595, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9668:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9621:67:4" - }, - "returnParameters": { - "id": 2598, - "nodeType": "ParameterList", - "parameters": [], - "src": "9697:0:4" - }, - "scope": 2620, - "src": "9608:90:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "bc25cf77", - "id": 2604, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "skim", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2601, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2604, - "src": "9717:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2600, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9717:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9716:12:4" - }, - "returnParameters": { - "id": 2603, - "nodeType": "ParameterList", - "parameters": [], - "src": "9737:0:4" - }, - "scope": 2620, - "src": "9703:35:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "fff6cae9", - "id": 2607, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "sync", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2605, - "nodeType": "ParameterList", - "parameters": [], - "src": "9756:2:4" - }, - "returnParameters": { - "id": 2606, - "nodeType": "ParameterList", - "parameters": [], - "src": "9767:0:4" - }, - "scope": 2620, - "src": "9743:25:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "485cc955", - "id": 2614, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "initialize", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2609, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2614, - "src": "9794:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9794:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2611, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2614, - "src": "9803:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2610, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9803:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9793:18:4" - }, - "returnParameters": { - "id": 2613, - "nodeType": "ParameterList", - "parameters": [], - "src": "9820:0:4" - }, - "scope": 2620, - "src": "9774:47:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d6d788c3", - "id": 2619, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2617, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2616, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2619, - "src": "9846:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2615, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9846:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9845:8:4" - }, - "returnParameters": { - "id": 2618, - "nodeType": "ParameterList", - "parameters": [], - "src": "9862:0:4" - }, - "scope": 2620, - "src": "9826:37:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 5374, - "src": "7374:2491:4" - }, - { - "id": 2621, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "9910:23:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2694, - "linearizedBaseContracts": [ - 2694 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2642, - "nodeType": "Block", - "src": "10124:66:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2631, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2628, - "src": "10143:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2632, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "10147:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2633, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2625, - "src": "10151:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10147:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10143:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2636, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10142:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2637, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "10157:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10142:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", - "id": 2639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10160:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", - "typeString": "literal_string \"ds-math-add-overflow\"" - }, - "value": "ds-math-add-overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", - "typeString": "literal_string \"ds-math-add-overflow\"" - } - ], - "id": 2630, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10134:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10134:49:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2641, - "nodeType": "ExpressionStatement", - "src": "10134:49:4" - } - ] - }, - "documentation": null, - "id": 2643, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2623, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2643, - "src": "10077:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2622, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10077:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2625, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2643, - "src": "10085:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2624, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10085:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10076:16:4" - }, - "returnParameters": { - "id": 2629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2628, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2643, - "src": "10116:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2627, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10116:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10115:8:4" - }, - "scope": 2694, - "src": "10064:126:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2664, - "nodeType": "Block", - "src": "10256:67:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2653, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "10275:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2654, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2645, - "src": "10279:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2655, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2647, - "src": "10283:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10279:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10275:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2658, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10274:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2659, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2645, - "src": "10289:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10274:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", - "id": 2661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10292:23:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", - "typeString": "literal_string \"ds-math-sub-underflow\"" - }, - "value": "ds-math-sub-underflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", - "typeString": "literal_string \"ds-math-sub-underflow\"" - } - ], - "id": 2652, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10266:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10266:50:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2663, - "nodeType": "ExpressionStatement", - "src": "10266:50:4" - } - ] - }, - "documentation": null, - "id": 2665, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2648, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2645, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2665, - "src": "10209:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2644, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10209:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2647, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2665, - "src": "10217:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2646, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10217:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10208:16:4" - }, - "returnParameters": { - "id": 2651, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2650, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2665, - "src": "10248:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2649, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10248:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10247:8:4" - }, - "scope": 2694, - "src": "10196:127:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2692, - "nodeType": "Block", - "src": "10389:80:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2675, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2669, - "src": "10407:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10412:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10407:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2678, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2672, - "src": "10418:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2679, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "10422:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 2680, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2669, - "src": "10426:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10422:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10418:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2683, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10417:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2684, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2669, - "src": "10431:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10417:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2686, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "10436:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10417:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10407:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", - "id": 2689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10439:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", - "typeString": "literal_string \"ds-math-mul-overflow\"" - }, - "value": "ds-math-mul-overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", - "typeString": "literal_string \"ds-math-mul-overflow\"" - } - ], - "id": 2674, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10399:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10399:63:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2691, - "nodeType": "ExpressionStatement", - "src": "10399:63:4" - } - ] - }, - "documentation": null, - "id": 2693, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2667, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2693, - "src": "10342:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10342:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2669, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2693, - "src": "10350:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2668, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10350:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10341:16:4" - }, - "returnParameters": { - "id": 2673, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2672, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2693, - "src": "10381:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2671, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10381:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10380:8:4" - }, - "scope": 2694, - "src": "10329:140:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 5374, - "src": "10041:430:4" - }, - { - "id": 2695, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10521:24:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3232, - "linearizedBaseContracts": [ - 3232 - ], - "name": "DXswapLibrary", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2698, - "libraryName": { - "contractScope": null, - "id": 2696, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2694, - "src": "10583:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2694", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "10577:24:4", - "typeName": { - "id": 2697, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10596:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "body": { - "id": 2741, - "nodeType": "Block", - "src": "10814:232:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2710, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "10832:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 2711, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "10842:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10832:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a204944454e544943414c5f414444524553534553", - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10850:36:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4816d5fd2dd11399e2b4f8ea009915853e549a6eccad66902563b4c410b21cee", - "typeString": "literal_string \"DXswapLibrary: IDENTICAL_ADDRESSES\"" - }, - "value": "DXswapLibrary: IDENTICAL_ADDRESSES" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4816d5fd2dd11399e2b4f8ea009915853e549a6eccad66902563b4c410b21cee", - "typeString": "literal_string \"DXswapLibrary: IDENTICAL_ADDRESSES\"" - } - ], - "id": 2709, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10824:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10824:63:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2715, - "nodeType": "ExpressionStatement", - "src": "10824:63:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2716, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2705, - "src": "10898:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2717, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2707, - "src": "10906:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 2718, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "10897:16:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2719, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "10916:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2720, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "10925:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10916:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2725, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "10954:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2726, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "10962:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 2727, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10953:16:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "id": 2728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "10916:53:4", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2722, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "10935:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2723, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "10943:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 2724, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10934:16:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "src": "10897:72:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2730, - "nodeType": "ExpressionStatement", - "src": "10897:72:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2732, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2705, - "src": "10987:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11005:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10997:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2733, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10997:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10997:10:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10987:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a205a45524f5f41444452455353", - "id": 2738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11009:29:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d784e2fb97350cb9cd89815b63f46058f3a01b758a15fe35bee497cab9f8262a", - "typeString": "literal_string \"DXswapLibrary: ZERO_ADDRESS\"" - }, - "value": "DXswapLibrary: ZERO_ADDRESS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d784e2fb97350cb9cd89815b63f46058f3a01b758a15fe35bee497cab9f8262a", - "typeString": "literal_string \"DXswapLibrary: ZERO_ADDRESS\"" - } - ], - "id": 2731, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10979:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10979:60:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2740, - "nodeType": "ExpressionStatement", - "src": "10979:60:4" - } - ] - }, - "documentation": null, - "id": 2742, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sortTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2703, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2700, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2742, - "src": "10727:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2699, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10727:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2702, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2742, - "src": "10743:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10743:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10726:32:4" - }, - "returnParameters": { - "id": 2708, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2705, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2742, - "src": "10782:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10782:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2707, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2742, - "src": "10798:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2706, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10798:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10781:32:4" - }, - "scope": 3232, - "src": "10707:339:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2786, - "nodeType": "Block", - "src": "11238:347:4", - "statements": [ - { - "assignments": [ - 2754, - 2756 - ], - "declarations": [ - { - "constant": false, - "id": 2754, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2786, - "src": "11249:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11249:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2756, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2786, - "src": "11265:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2755, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11265:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2761, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2758, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2746, - "src": "11294:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2759, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2748, - "src": "11302:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2757, - "name": "sortTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "11283:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 2760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11283:26:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11248:61:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2762, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "11319:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "ff", - "id": 2770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11379:7:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)" - }, - "value": null - }, - { - "argumentTypes": null, - "id": 2771, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "11400:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2775, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "11448:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2776, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "11456:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2773, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "11431:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2774, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11431:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11431:32:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2772, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "11421:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11421:43:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "hexValue": "d306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776", - "id": 2779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11478:69:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a4999fc8faf24b4f89ea6230a8d374f8a84ec258cd79036b033288c7791cdbc0", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 2)" - }, - "value": null - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_stringliteral_a4999fc8faf24b4f89ea6230a8d374f8a84ec258cd79036b033288c7791cdbc0", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 2)" - } - ], - "expression": { - "argumentTypes": null, - "id": 2768, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "11349:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11349:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11349:226:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2767, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "11339:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11339:237:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11334:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11334:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11334:243:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11326:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2763, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11326:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11326:252:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11319:259:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2785, - "nodeType": "ExpressionStatement", - "src": "11319:259:4" - } - ] - }, - "documentation": null, - "id": 2787, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pairFor", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2744, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2787, - "src": "11152:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2743, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11152:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2746, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2787, - "src": "11169:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2745, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11169:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2748, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2787, - "src": "11185:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2747, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11185:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11151:49:4" - }, - "returnParameters": { - "id": 2752, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2751, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2787, - "src": "11224:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2750, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11224:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11223:14:4" - }, - "scope": 3232, - "src": "11135:450:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2836, - "nodeType": "Block", - "src": "11763:261:4", - "statements": [ - { - "assignments": [ - 2801, - null - ], - "declarations": [ - { - "constant": false, - "id": 2801, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2836, - "src": "11774:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11774:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 2806, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2803, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2791, - "src": "11804:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2804, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2793, - "src": "11812:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2802, - "name": "sortTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "11793:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 2805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11793:26:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11773:46:4" - }, - { - "assignments": [ - 2808, - 2810, - null - ], - "declarations": [ - { - "constant": false, - "id": 2808, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2836, - "src": "11830:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2807, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11830:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2810, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2836, - "src": "11845:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2809, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11845:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 2820, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2813, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "11883:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2814, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2791, - "src": "11892:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2815, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2793, - "src": "11900:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2812, - "name": "pairFor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2787, - "src": "11875:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 2816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11875:32:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2811, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "11863:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 2817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11863:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 2818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 2552, - "src": "11863:57:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 2819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11863:59:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11829:93:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2821, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2796, - "src": "11933:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2822, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2798, - "src": "11943:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2823, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "11932:20:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2824, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2791, - "src": "11955:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2825, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2801, - "src": "11965:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11955:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2830, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2810, - "src": "11998:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2831, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "12008:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2832, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11997:20:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 2833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "11955:62:4", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2827, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "11975:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2810, - "src": "11985:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2829, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11974:20:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "11932:85:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2835, - "nodeType": "ExpressionStatement", - "src": "11932:85:4" - } - ] - }, - "documentation": null, - "id": 2837, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2789, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2837, - "src": "11661:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11661:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2791, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2837, - "src": "11678:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2790, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11678:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2793, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2837, - "src": "11694:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2792, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11694:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11660:49:4" - }, - "returnParameters": { - "id": 2799, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2796, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2837, - "src": "11733:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2795, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11733:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2798, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2837, - "src": "11748:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2797, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11748:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11732:30:4" - }, - "scope": 3232, - "src": "11640:384:4", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2867, - "nodeType": "Block", - "src": "12189:138:4", - "statements": [ - { - "assignments": [ - 2849, - null - ], - "declarations": [ - { - "constant": false, - "id": 2849, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2867, - "src": "12200:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2848, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12200:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 2854, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2851, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2841, - "src": "12230:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2852, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2843, - "src": "12238:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2850, - "name": "sortTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "12219:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 2853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12219:26:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12199:46:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2855, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "12255:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2839, - "src": "12285:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2841, - "src": "12294:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2860, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2843, - "src": "12302:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2857, - "name": "pairFor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2787, - "src": "12277:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 2861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12277:32:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2856, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "12265:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 2862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12265:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 2863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 2572, - "src": "12265:53:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 2864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12265:55:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "12255:65:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2866, - "nodeType": "ExpressionStatement", - "src": "12255:65:4" - } - ] - }, - "documentation": null, - "id": 2868, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2844, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2839, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2868, - "src": "12103:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2838, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12103:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2841, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2868, - "src": "12120:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2840, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12120:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2843, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2868, - "src": "12136:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2842, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12136:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12102:49:4" - }, - "returnParameters": { - "id": 2847, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2846, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2868, - "src": "12175:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2845, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12175:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12174:14:4" - }, - "scope": 3232, - "src": "12083:244:4", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2906, - "nodeType": "Block", - "src": "12533:215:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2880, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2870, - "src": "12551:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12561:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12551:11:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54", - "id": 2883, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12564:36:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4941112be25498feed92ef929155d80bdb527ec03291b35c2fc0e6212a9bba6f", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_AMOUNT\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4941112be25498feed92ef929155d80bdb527ec03291b35c2fc0e6212a9bba6f", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_AMOUNT\"" - } - ], - "id": 2879, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12543:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12543:58:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2885, - "nodeType": "ExpressionStatement", - "src": "12543:58:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2887, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2872, - "src": "12619:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12630:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12619:12:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2890, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2874, - "src": "12635:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12646:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12635:12:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12619:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4c4951554944495459", - "id": 2894, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12649:39:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_LIQUIDITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - } - ], - "id": 2886, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12611:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12611:78:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2896, - "nodeType": "ExpressionStatement", - "src": "12611:78:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2897, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2877, - "src": "12699:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2900, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2874, - "src": "12721:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2898, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2870, - "src": "12709:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2693, - "src": "12709:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12709:21:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2902, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2872, - "src": "12733:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12709:32:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12699:42:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2905, - "nodeType": "ExpressionStatement", - "src": "12699:42:4" - } - ] - }, - "documentation": null, - "id": 2907, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "quote", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2875, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2870, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2907, - "src": "12452:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2869, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12452:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2872, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2907, - "src": "12466:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2871, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12466:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2874, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2907, - "src": "12481:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2873, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12481:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12451:44:4" - }, - "returnParameters": { - "id": 2878, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2877, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2907, - "src": "12519:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2876, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12519:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12518:14:4" - }, - "scope": 3232, - "src": "12437:311:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2974, - "nodeType": "Block", - "src": "12990:417:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2921, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2909, - "src": "13008:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13019:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13008:12:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54", - "id": 2924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13022:42:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e4d2630755a31998597b5d43cb14cc6edea9d11eeb5693d972c3265868799513", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e4d2630755a31998597b5d43cb14cc6edea9d11eeb5693d972c3265868799513", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT\"" - } - ], - "id": 2920, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13000:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:65:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2926, - "nodeType": "ExpressionStatement", - "src": "13000:65:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2928, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2911, - "src": "13083:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13095:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13083:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2931, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2913, - "src": "13100:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13113:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13100:14:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13083:31:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4c4951554944495459", - "id": 2935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13116:39:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_LIQUIDITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - } - ], - "id": 2927, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13075:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13075:81:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2937, - "nodeType": "ExpressionStatement", - "src": "13075:81:4" - }, - { - "assignments": [ - 2939 - ], - "declarations": [ - { - "constant": false, - "id": 2939, - "mutability": "mutable", - "name": "amountInWithFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2974, - "src": "13166:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2938, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13166:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2950, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2947, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2915, - "src": "13218:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13207:5:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "id": 2943, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13202:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2942, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13202:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13202:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2665, - "src": "13202:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13202:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2940, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2909, - "src": "13189:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2693, - "src": "13189:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13189:38:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13166:61:4" - }, - { - "assignments": [ - 2952 - ], - "declarations": [ - { - "constant": false, - "id": 2952, - "mutability": "mutable", - "name": "numerator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2974, - "src": "13237:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2951, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13237:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2957, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2955, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2913, - "src": "13274:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2953, - "name": "amountInWithFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2939, - "src": "13254:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2693, - "src": "13254:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13254:31:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13237:48:4" - }, - { - "assignments": [ - 2959 - ], - "declarations": [ - { - "constant": false, - "id": 2959, - "mutability": "mutable", - "name": "denominator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2974, - "src": "13295:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2958, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13295:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2967, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2965, - "name": "amountInWithFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2939, - "src": "13339:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2962, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13328:5:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "argumentTypes": null, - "id": 2960, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2911, - "src": "13314:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2693, - "src": "13314:13:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13314:20:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2643, - "src": "13314:24:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13314:41:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13295:60:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2918, - "src": "13365:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2969, - "name": "numerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "13377:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2970, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2959, - "src": "13389:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13377:23:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13365:35:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2973, - "nodeType": "ExpressionStatement", - "src": "13365:35:4" - } - ] - }, - "documentation": null, - "id": 2975, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2909, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2975, - "src": "12889:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2908, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12889:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2911, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2975, - "src": "12904:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2910, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12904:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2913, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2975, - "src": "12920:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2912, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12920:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2915, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2975, - "src": "12937:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2914, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12937:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12888:62:4" - }, - "returnParameters": { - "id": 2919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2918, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2975, - "src": "12974:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12974:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12973:16:4" - }, - "scope": 3232, - "src": "12867:540:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3042, - "nodeType": "Block", - "src": "13647:374:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2989, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "13665:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2990, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13677:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13665:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 2992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13680:43:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bbe08a1ec2cff36e527d20c027bf70b8607d4c605e172bec1980f6ea25085cc9", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bbe08a1ec2cff36e527d20c027bf70b8607d4c605e172bec1980f6ea25085cc9", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 2988, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13657:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13657:67:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2994, - "nodeType": "ExpressionStatement", - "src": "13657:67:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2996, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2979, - "src": "13742:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2997, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13754:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13742:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2999, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "13759:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3000, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13772:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13759:14:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13742:31:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4c4951554944495459", - "id": 3003, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13775:39:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_LIQUIDITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - } - ], - "id": 2995, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13734:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13734:81:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3005, - "nodeType": "ExpressionStatement", - "src": "13734:81:4" - }, - { - "assignments": [ - 3007 - ], - "declarations": [ - { - "constant": false, - "id": 3007, - "mutability": "mutable", - "name": "numerator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3042, - "src": "13825:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3006, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13825:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3015, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 3013, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13871:5:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3010, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "13856:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3008, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2979, - "src": "13842:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2693, - "src": "13842:13:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13842:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2693, - "src": "13842:28:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13842:35:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13825:52:4" - }, - { - "assignments": [ - 3017 - ], - "declarations": [ - { - "constant": false, - "id": 3017, - "mutability": "mutable", - "name": "denominator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3042, - "src": "13887:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3016, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13887:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3031, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3028, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2983, - "src": "13952:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 3025, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13941:5:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "id": 3024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13936:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 3023, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13936:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3026, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13936:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2665, - "src": "13936:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13936:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3020, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "13921:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3018, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "13906:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2665, - "src": "13906:14:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13906:25:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2693, - "src": "13906:29:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13906:55:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13887:74:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3032, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "13971:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14012:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3033, - "name": "numerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "13983:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3034, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3017, - "src": "13995:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13983:23:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3036, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13982:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2643, - "src": "13982:29:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13982:32:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13971:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3041, - "nodeType": "ExpressionStatement", - "src": "13971:43:4" - } - ] - }, - "documentation": null, - "id": 3043, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2977, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3043, - "src": "13546:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2976, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13546:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2979, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3043, - "src": "13562:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2978, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13562:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2981, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3043, - "src": "13578:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2980, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13578:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2983, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3043, - "src": "13595:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2982, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13595:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13545:63:4" - }, - "returnParameters": { - "id": 2987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2986, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3043, - "src": "13632:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2985, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13632:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13631:15:4" - }, - "scope": 3232, - "src": "13525:496:4", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3134, - "nodeType": "Block", - "src": "14224:419:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3057, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "14242:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14242:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 3059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14257:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "14242:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e56414c49445f50415448", - "id": 3061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14260:29:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - }, - "value": "DXswapLibrary: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - } - ], - "id": 3056, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14234:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:56:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3063, - "nodeType": "ExpressionStatement", - "src": "14234:56:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3064, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "14300:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3068, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "14321:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14321:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "14310:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 3065, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14314:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3066, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14314:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 3070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14310:23:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "14300:33:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3072, - "nodeType": "ExpressionStatement", - "src": "14300:33:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3073, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "14343:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3075, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14351:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14343:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3076, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3047, - "src": "14356:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14343:21:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3078, - "nodeType": "ExpressionStatement", - "src": "14343:21:4" - }, - { - "body": { - "id": 3132, - "nodeType": "Block", - "src": "14413:224:4", - "statements": [ - { - "assignments": [ - 3092, - 3094 - ], - "declarations": [ - { - "constant": false, - "id": 3092, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3132, - "src": "14428:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3091, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14428:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3094, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3132, - "src": "14444:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3093, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14444:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3106, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3096, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "14475:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3097, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "14484:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3099, - "indexExpression": { - "argumentTypes": null, - "id": 3098, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3080, - "src": "14489:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14484:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "14493:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3104, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3101, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3080, - "src": "14498:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14502:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "14498:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14493:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3095, - "name": "getReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "14463:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256,uint256)" - } - }, - "id": 3105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14463:42:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14427:78:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3107, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "14519:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3111, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3108, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3080, - "src": "14527:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14531:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "14527:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14519:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3113, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "14549:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3115, - "indexExpression": { - "argumentTypes": null, - "id": 3114, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3080, - "src": "14557:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14549:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3116, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3092, - "src": "14561:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3117, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3094, - "src": "14572:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3119, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "14595:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3120, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "14604:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3122, - "indexExpression": { - "argumentTypes": null, - "id": 3121, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3080, - "src": "14609:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14604:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3123, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "14613:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3127, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3124, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3080, - "src": "14618:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14622:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "14618:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14613:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3118, - "name": "getSwapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2868, - "src": "14584:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256)" - } - }, - "id": 3128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14584:41:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3112, - "name": "getAmountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2975, - "src": "14536:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14536:90:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14519:107:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "14519:107:4" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3082, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3080, - "src": "14387:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3083, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "14391:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14391:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14405:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "14391:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14387:19:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3133, - "initializationExpression": { - "assignments": [ - 3080 - ], - "declarations": [ - { - "constant": false, - "id": 3080, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3133, - "src": "14379:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14379:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3081, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "14379:6:4" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14408:3:4", - "subExpression": { - "argumentTypes": null, - "id": 3088, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3080, - "src": "14408:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3090, - "nodeType": "ExpressionStatement", - "src": "14408:3:4" - }, - "nodeType": "ForStatement", - "src": "14374:263:4" - } - ] - }, - "documentation": null, - "id": 3135, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3051, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3135, - "src": "14123:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14123:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3047, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3135, - "src": "14140:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3046, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14140:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3050, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3135, - "src": "14155:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3048, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14155:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3049, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14155:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:55:4" - }, - "returnParameters": { - "id": 3055, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3054, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3135, - "src": "14201:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3052, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14201:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3053, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14201:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14200:23:4" - }, - "scope": 3232, - "src": "14100:543:4", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3230, - "nodeType": "Block", - "src": "14845:440:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3149, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "14863:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14863:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14878:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "14863:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e56414c49445f50415448", - "id": 3153, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14881:29:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - }, - "value": "DXswapLibrary: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - } - ], - "id": 3148, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14855:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14855:56:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3155, - "nodeType": "ExpressionStatement", - "src": "14855:56:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3156, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3146, - "src": "14921:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3160, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "14942:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14942:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "14931:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 3157, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14935:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3158, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14935:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14931:23:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "14921:33:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3164, - "nodeType": "ExpressionStatement", - "src": "14921:33:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3165, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3146, - "src": "14964:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3170, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3166, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3146, - "src": "14972:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14972:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3168, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14989:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "14972:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14964:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3171, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "14994:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14964:39:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3173, - "nodeType": "ExpressionStatement", - "src": "14964:39:4" - }, - { - "body": { - "id": 3228, - "nodeType": "Block", - "src": "15056:223:4", - "statements": [ - { - "assignments": [ - 3188, - 3190 - ], - "declarations": [ - { - "constant": false, - "id": 3188, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3228, - "src": "15071:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3187, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15071:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3190, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3228, - "src": "15087:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3189, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15087:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3202, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3192, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3137, - "src": "15118:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3193, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "15127:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3197, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3194, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3175, - "src": "15132:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3195, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15136:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15132:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15127:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3198, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "15140:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3200, - "indexExpression": { - "argumentTypes": null, - "id": 3199, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3175, - "src": "15145:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15140:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3191, - "name": "getReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "15106:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256,uint256)" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15106:42:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15070:78:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3203, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3146, - "src": "15162:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3207, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3204, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3175, - "src": "15170:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15174:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15170:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15162:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3209, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3146, - "src": "15191:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3211, - "indexExpression": { - "argumentTypes": null, - "id": 3210, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3175, - "src": "15199:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15191:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3212, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3188, - "src": "15203:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3213, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3190, - "src": "15214:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3215, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3137, - "src": "15237:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3216, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "15246:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3220, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3217, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3175, - "src": "15251:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15255:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15251:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15246:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3221, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "15259:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3223, - "indexExpression": { - "argumentTypes": null, - "id": 3222, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3175, - "src": "15264:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15259:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3214, - "name": "getSwapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2868, - "src": "15226:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256)" - } - }, - "id": 3224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15226:41:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3208, - "name": "getAmountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "15179:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15179:89:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15162:106:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "15162:106:4" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3181, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3175, - "src": "15044:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15048:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15044:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3229, - "initializationExpression": { - "assignments": [ - 3175 - ], - "declarations": [ - { - "constant": false, - "id": 3175, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3229, - "src": "15018:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3174, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15018:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3180, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3176, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "15027:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15027:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15041:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15027:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15018:24:4" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "15051:3:4", - "subExpression": { - "argumentTypes": null, - "id": 3184, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3175, - "src": "15051:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3186, - "nodeType": "ExpressionStatement", - "src": "15051:3:4" - }, - "nodeType": "ForStatement", - "src": "15013:266:4" - } - ] - }, - "documentation": null, - "id": 3231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3137, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3231, - "src": "14743:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14743:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3139, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3231, - "src": "14760:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14760:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3142, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3231, - "src": "14776:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14776:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3141, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14776:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14742:56:4" - }, - "returnParameters": { - "id": 3147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3146, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3231, - "src": "14822:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3144, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14822:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3145, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14822:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14821:23:4" - }, - "scope": 3232, - "src": "14721:564:4", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 5374, - "src": "10549:4738:4" - }, - { - "id": 3233, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "15331:24:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3315, - "linearizedBaseContracts": [ - 3315 - ], - "name": "IERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 3241, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3235, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3241, - "src": "15395:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3234, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15395:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3237, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3241, - "src": "15418:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15418:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3239, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3241, - "src": "15443:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3238, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15443:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15394:60:4" - }, - "src": "15380:75:4" - }, - { - "anonymous": false, - "documentation": null, - "id": 3249, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3243, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3249, - "src": "15475:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15475:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3245, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3249, - "src": "15497:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15497:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3247, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3249, - "src": "15517:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3246, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15517:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15474:54:4" - }, - "src": "15460:69:4" - }, - { - "body": null, - "documentation": null, - "functionSelector": "06fdde03", - "id": 3254, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3250, - "nodeType": "ParameterList", - "parameters": [], - "src": "15548:2:4" - }, - "returnParameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3252, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3254, - "src": "15574:13:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3251, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15574:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15573:15:4" - }, - "scope": 3315, - "src": "15535:54:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "95d89b41", - "id": 3259, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3255, - "nodeType": "ParameterList", - "parameters": [], - "src": "15609:2:4" - }, - "returnParameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3257, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3259, - "src": "15635:13:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3256, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15635:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15634:15:4" - }, - "scope": 3315, - "src": "15594:56:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "313ce567", - "id": 3264, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3260, - "nodeType": "ParameterList", - "parameters": [], - "src": "15672:2:4" - }, - "returnParameters": { - "id": 3263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3262, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3264, - "src": "15698:5:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3261, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "15698:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15697:7:4" - }, - "scope": 3315, - "src": "15655:50:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "18160ddd", - "id": 3269, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "15730:2:4" - }, - "returnParameters": { - "id": 3268, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3267, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3269, - "src": "15756:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3266, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15756:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15755:6:4" - }, - "scope": 3315, - "src": "15710:52:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "70a08231", - "id": 3276, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3272, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3271, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3276, - "src": "15786:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15786:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15785:15:4" - }, - "returnParameters": { - "id": 3275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3274, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3276, - "src": "15824:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3273, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15824:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15823:6:4" - }, - "scope": 3315, - "src": "15767:63:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "dd62ed3e", - "id": 3285, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3278, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3285, - "src": "15854:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3277, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15854:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3280, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3285, - "src": "15869:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3279, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15869:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15853:32:4" - }, - "returnParameters": { - "id": 3284, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3283, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3285, - "src": "15909:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3282, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15909:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15908:6:4" - }, - "scope": 3315, - "src": "15835:80:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 3294, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3287, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3294, - "src": "15938:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3286, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15938:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3289, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3294, - "src": "15955:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3288, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15955:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15937:29:4" - }, - "returnParameters": { - "id": 3293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3292, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3294, - "src": "15985:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3291, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15985:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15984:6:4" - }, - "scope": 3315, - "src": "15921:70:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 3303, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3296, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3303, - "src": "16014:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3295, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16014:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3298, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3303, - "src": "16026:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16026:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16013:24:4" - }, - "returnParameters": { - "id": 3302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3301, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3303, - "src": "16056:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3300, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16056:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16055:6:4" - }, - "scope": 3315, - "src": "15996:66:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "23b872dd", - "id": 3314, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3305, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3314, - "src": "16089:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3304, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16089:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3307, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3314, - "src": "16103:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3306, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16103:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3309, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3314, - "src": "16115:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3308, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16115:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16088:38:4" - }, - "returnParameters": { - "id": 3313, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3312, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3314, - "src": "16145:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3311, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16145:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16144:6:4" - }, - "scope": 3315, - "src": "16067:84:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 5374, - "src": "15357:796:4" - }, - { - "id": 3316, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "16196:24:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3334, - "linearizedBaseContracts": [ - 3334 - ], - "name": "IWETH", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "functionSelector": "d0e30db0", - "id": 3319, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [], - "src": "16260:2:4" - }, - "returnParameters": { - "id": 3318, - "nodeType": "ParameterList", - "parameters": [], - "src": "16279:0:4" - }, - "scope": 3334, - "src": "16244:36:4", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 3328, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3324, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3321, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3328, - "src": "16303:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3320, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16303:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3323, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3328, - "src": "16315:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3322, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16315:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16302:24:4" - }, - "returnParameters": { - "id": 3327, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3326, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3328, - "src": "16345:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3325, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16345:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16344:6:4" - }, - "scope": 3334, - "src": "16285:66:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "2e1a7d4d", - "id": 3333, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3330, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3333, - "src": "16374:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3329, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16374:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16373:6:4" - }, - "returnParameters": { - "id": 3332, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:4" - }, - "scope": 3334, - "src": "16356:33:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 5374, - "src": "16222:169:4" - }, - { - "id": 3335, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "16430:23:4" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3336, - "name": "IDXswapRouter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2369, - "src": "16487:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$2369", - "typeString": "contract IDXswapRouter" - } - }, - "id": 3337, - "nodeType": "InheritanceSpecifier", - "src": "16487:13:4" - } - ], - "contractDependencies": [ - 2369 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5373, - "linearizedBaseContracts": [ - 5373, - 2369 - ], - "name": "DXswapRouter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3340, - "libraryName": { - "contractScope": null, - "id": 3338, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2694, - "src": "16513:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2694", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "16507:24:4", - "typeName": { - "id": 3339, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16526:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "baseFunctions": [ - 1982 - ], - "constant": false, - "functionSelector": "c45a0155", - "id": 3343, - "mutability": "immutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": { - "id": 3342, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "16562:8:4" - }, - "scope": 5373, - "src": "16537:41:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3341, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16537:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "baseFunctions": [ - 1987 - ], - "constant": false, - "functionSelector": "ad5c4648", - "id": 3346, - "mutability": "immutable", - "name": "WETH", - "nodeType": "VariableDeclaration", - "overrides": { - "id": 3345, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "16609:8:4" - }, - "scope": 5373, - "src": "16584:38:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16584:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 3359, - "nodeType": "Block", - "src": "16660:89:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3351, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "16678:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3352, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "16690:5:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 3353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16690:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16678:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a2045585049524544", - "id": 3355, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16707:23:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e8aa169b1a2ff802bfc300bca130c1f206538938d88e8a2dbf5501c4bb4241cf", - "typeString": "literal_string \"DXswapRouter: EXPIRED\"" - }, - "value": "DXswapRouter: EXPIRED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e8aa169b1a2ff802bfc300bca130c1f206538938d88e8a2dbf5501c4bb4241cf", - "typeString": "literal_string \"DXswapRouter: EXPIRED\"" - } - ], - "id": 3350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "16670:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16670:61:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3357, - "nodeType": "ExpressionStatement", - "src": "16670:61:4" - }, - { - "id": 3358, - "nodeType": "PlaceholderStatement", - "src": "16741:1:4" - } - ] - }, - "documentation": null, - "id": 3360, - "name": "ensure", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 3349, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3348, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3360, - "src": "16645:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3347, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16645:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16644:15:4" - }, - "src": "16629:120:4", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3375, - "nodeType": "Block", - "src": "16807:57:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3367, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "16817:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3368, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "16827:8:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16817:18:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3370, - "nodeType": "ExpressionStatement", - "src": "16817:18:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3371, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "16845:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3372, - "name": "_WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3364, - "src": "16852:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16845:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3374, - "nodeType": "ExpressionStatement", - "src": "16845:12:4" - } - ] - }, - "documentation": null, - "id": 3376, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3362, - "mutability": "mutable", - "name": "_factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3376, - "src": "16767:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16767:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3364, - "mutability": "mutable", - "name": "_WETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3376, - "src": "16785:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16785:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16766:33:4" - }, - "returnParameters": { - "id": 3366, - "nodeType": "ParameterList", - "parameters": [], - "src": "16807:0:4" - }, - "scope": 5373, - "src": "16755:109:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3386, - "nodeType": "Block", - "src": "16897:98:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3380, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "16914:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16914:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3382, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "16928:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16914:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3379, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "16907:6:4", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16907:26:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3385, - "nodeType": "ExpressionStatement", - "src": "16907:26:4" - } - ] - }, - "documentation": null, - "id": 3387, - "implemented": true, - "kind": "receive", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3377, - "nodeType": "ParameterList", - "parameters": [], - "src": "16877:2:4" - }, - "returnParameters": { - "id": 3378, - "nodeType": "ParameterList", - "parameters": [], - "src": "16897:0:4" - }, - "scope": 5373, - "src": "16870:125:4", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 3517, - "nodeType": "Block", - "src": "17271:1103:4", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3410, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3389, - "src": "17368:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3411, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "17376:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3407, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "17351:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3406, - "name": "IDXswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "17336:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapFactory_$1817_$", - "typeString": "type(contract IDXswapFactory)" - } - }, - "id": 3408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17336:23:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapFactory_$1817", - "typeString": "contract IDXswapFactory" - } - }, - "id": 3409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getPair", - "nodeType": "MemberAccess", - "referencedDeclaration": 1773, - "src": "17336:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address) view external returns (address)" - } - }, - "id": 3412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17336:47:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17395:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17387:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3413, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17387:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17387:10:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17336:61:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3427, - "nodeType": "IfStatement", - "src": "17332:142:4", - "trueBody": { - "id": 3426, - "nodeType": "Block", - "src": "17399:75:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3389, - "src": "17448:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3423, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "17456:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3419, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "17428:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3418, - "name": "IDXswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "17413:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapFactory_$1817_$", - "typeString": "type(contract IDXswapFactory)" - } - }, - "id": 3420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17413:23:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapFactory_$1817", - "typeString": "contract IDXswapFactory" - } - }, - "id": 3421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createPair", - "nodeType": "MemberAccess", - "referencedDeclaration": 1794, - "src": "17413:34:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address) external returns (address)" - } - }, - "id": 3424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17413:50:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3425, - "nodeType": "ExpressionStatement", - "src": "17413:50:4" - } - ] - } - }, - { - "assignments": [ - 3429, - 3431 - ], - "declarations": [ - { - "constant": false, - "id": 3429, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3517, - "src": "17484:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3428, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17484:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3431, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3517, - "src": "17499:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3430, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17499:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3438, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3434, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "17542:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3435, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3389, - "src": "17551:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3436, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "17559:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3432, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "17516:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 3433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 2837, - "src": "17516:25:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256,uint256)" - } - }, - "id": 3437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17516:50:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17483:83:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3439, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3429, - "src": "17580:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17592:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17580:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3442, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "17597:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17609:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17597:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17580:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3515, - "nodeType": "Block", - "src": "17696:672:4", - "statements": [ - { - "assignments": [ - 3456 - ], - "declarations": [ - { - "constant": false, - "id": 3456, - "mutability": "mutable", - "name": "amountBOptimal", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3515, - "src": "17710:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3455, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17710:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3463, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3459, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "17752:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3460, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3429, - "src": "17768:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3461, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "17778:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3457, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "17732:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "quote", - "nodeType": "MemberAccess", - "referencedDeclaration": 2907, - "src": "17732:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 3462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17732:55:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17710:77:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3464, - "name": "amountBOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3456, - "src": "17805:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3465, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "17823:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17805:32:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3513, - "nodeType": "Block", - "src": "18025:333:4", - "statements": [ - { - "assignments": [ - 3484 - ], - "declarations": [ - { - "constant": false, - "id": 3484, - "mutability": "mutable", - "name": "amountAOptimal", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3513, - "src": "18043:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3483, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18043:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3491, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3487, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "18085:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3488, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "18101:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3489, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3429, - "src": "18111:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3485, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "18065:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "quote", - "nodeType": "MemberAccess", - "referencedDeclaration": 2907, - "src": "18065:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 3490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18065:55:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18043:77:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3493, - "name": "amountAOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "18145:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3494, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "18163:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18145:32:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3492, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "18138:6:4", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18138:40:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3497, - "nodeType": "ExpressionStatement", - "src": "18138:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "amountAOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "18204:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3500, - "name": "amountAMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3397, - "src": "18222:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18204:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e54", - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18234:37:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d67922d8d1b1ee33fa1f85a08f43e1a4a207515581f5845bf7d6bef9c165ae8", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_A_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_A_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d67922d8d1b1ee33fa1f85a08f43e1a4a207515581f5845bf7d6bef9c165ae8", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_A_AMOUNT\"" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "18196:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18196:76:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3504, - "nodeType": "ExpressionStatement", - "src": "18196:76:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3505, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3402, - "src": "18291:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3506, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "18300:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3507, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "18290:18:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3508, - "name": "amountAOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "18312:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3509, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "18328:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3510, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18311:32:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "18290:53:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3512, - "nodeType": "ExpressionStatement", - "src": "18290:53:4" - } - ] - }, - "id": 3514, - "nodeType": "IfStatement", - "src": "17801:557:4", - "trueBody": { - "id": 3482, - "nodeType": "Block", - "src": "17839:180:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3468, - "name": "amountBOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3456, - "src": "17865:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3469, - "name": "amountBMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "17883:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17865:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e54", - "id": 3471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17895:37:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d667c08b6dee8d914a27b5221c0b76a88002adc554aba65ad576a4b2cd5507ba", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_B_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_B_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d667c08b6dee8d914a27b5221c0b76a88002adc554aba65ad576a4b2cd5507ba", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_B_AMOUNT\"" - } - ], - "id": 3467, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "17857:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17857:76:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3473, - "nodeType": "ExpressionStatement", - "src": "17857:76:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3474, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3402, - "src": "17952:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3475, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "17961:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3476, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "17951:18:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3477, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "17973:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3478, - "name": "amountBOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3456, - "src": "17989:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3479, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "17972:32:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "17951:53:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3481, - "nodeType": "ExpressionStatement", - "src": "17951:53:4" - } - ] - } - } - ] - }, - "id": 3516, - "nodeType": "IfStatement", - "src": "17576:792:4", - "trueBody": { - "id": 3454, - "nodeType": "Block", - "src": "17612:78:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3446, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3402, - "src": "17627:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3447, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "17636:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3448, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "17626:18:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3449, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "17648:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3450, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "17664:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3451, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "17647:32:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "17626:53:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "17626:53:4" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3518, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addLiquidity", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3389, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3518, - "src": "17064:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17064:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3391, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3518, - "src": "17088:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3390, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17088:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3393, - "mutability": "mutable", - "name": "amountADesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3518, - "src": "17112:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3392, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17112:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3395, - "mutability": "mutable", - "name": "amountBDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3518, - "src": "17141:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3394, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17141:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3397, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3518, - "src": "17170:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3396, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17170:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3399, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3518, - "src": "17195:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3398, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17195:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17054:162:4" - }, - "returnParameters": { - "id": 3405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3402, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3518, - "src": "17243:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3401, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17243:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3404, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3518, - "src": "17257:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3403, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17257:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17242:28:4" - }, - "scope": 5373, - "src": "17032:1342:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "baseFunctions": [ - 2012 - ], - "body": { - "id": 3598, - "nodeType": "Block", - "src": "18702:394:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3547, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3541, - "src": "18713:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3548, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3543, - "src": "18722:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3549, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "18712:18:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3551, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "18747:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3552, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "18755:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3553, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3524, - "src": "18763:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3554, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3526, - "src": "18779:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3555, - "name": "amountAMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3528, - "src": "18795:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3556, - "name": "amountBMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3530, - "src": "18807:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3550, - "name": "_addLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "18733:13:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" - } - }, - "id": 3557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18733:85:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "18712:106:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3559, - "nodeType": "ExpressionStatement", - "src": "18712:106:4" - }, - { - "assignments": [ - 3561 - ], - "declarations": [ - { - "constant": false, - "id": 3561, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3598, - "src": "18828:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3560, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18828:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3568, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3564, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "18865:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3565, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "18874:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3566, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "18882:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3562, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "18843:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 3563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "18843:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 3567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18843:46:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18828:61:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3572, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3520, - "src": "18931:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3573, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "18939:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18939:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3575, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3561, - "src": "18951:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3576, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3541, - "src": "18957:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3569, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "18899:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 3571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 1950, - "src": "18899:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18899:66:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3578, - "nodeType": "ExpressionStatement", - "src": "18899:66:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3582, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "19007:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3583, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "19015:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19015:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3585, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3561, - "src": "19027:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3586, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3543, - "src": "19033:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3579, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "18975:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 3581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 1950, - "src": "18975:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18975:66:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3588, - "nodeType": "ExpressionStatement", - "src": "18975:66:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3589, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "19051:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3594, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3532, - "src": "19086:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3591, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3561, - "src": "19075:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3590, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "19063:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19063:17:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2579, - "src": "19063:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 3595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19063:26:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19051:38:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3597, - "nodeType": "ExpressionStatement", - "src": "19051:38:4" - } - ] - }, - "documentation": null, - "functionSelector": "e8e33700", - "id": 3599, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3538, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "18639:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3539, - "modifierName": { - "argumentTypes": null, - "id": 3537, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "18632:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "18632:16:4" - } - ], - "name": "addLiquidity", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3536, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "18623:8:4" - }, - "parameters": { - "id": 3535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3520, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18410:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3519, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18410:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3522, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18434:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3521, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18434:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3524, - "mutability": "mutable", - "name": "amountADesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18458:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3523, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18458:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3526, - "mutability": "mutable", - "name": "amountBDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18487:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3525, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18487:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18516:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3527, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18516:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3530, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18541:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3529, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18541:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3532, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18566:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18566:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3534, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18586:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3533, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18586:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18400:205:4" - }, - "returnParameters": { - "id": 3546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3541, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18658:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3540, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18658:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3543, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18672:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3542, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18672:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3545, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3599, - "src": "18686:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3544, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18686:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18657:44:4" - }, - "scope": 5373, - "src": "18379:717:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2033 - ], - "body": { - "id": 3700, - "nodeType": "Block", - "src": "19397:649:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3624, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "19408:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3625, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "19421:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3626, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "19407:24:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3628, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "19461:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3629, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "19480:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3630, - "name": "amountTokenDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3603, - "src": "19498:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3631, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "19530:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19530:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3633, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "19553:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3634, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3607, - "src": "19581:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3627, - "name": "_addLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "19434:13:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" - } - }, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19434:169:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "19407:196:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3637, - "nodeType": "ExpressionStatement", - "src": "19407:196:4" - }, - { - "assignments": [ - 3639 - ], - "declarations": [ - { - "constant": false, - "id": 3639, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3700, - "src": "19613:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3638, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19613:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3646, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3642, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "19650:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3643, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "19659:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3644, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "19666:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3640, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "19628:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "19628:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 3645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19628:43:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19613:58:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3650, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "19713:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3651, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "19720:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19720:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3653, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3639, - "src": "19732:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3654, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "19738:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3647, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "19681:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 3649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 1950, - "src": "19681:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19681:69:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3656, - "nodeType": "ExpressionStatement", - "src": "19681:69:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3658, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "19766:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3657, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "19760:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 3659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19760:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 3660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 3319, - "src": "19760:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 3662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "id": 3661, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "19787:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "19760:37:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 3663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19760:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3664, - "nodeType": "ExpressionStatement", - "src": "19760:39:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3670, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3639, - "src": "19837:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3671, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "19843:9:4", - "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": 3667, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "19822:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3666, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "19816:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 3668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19816:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 3669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3328, - "src": "19816:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19816:37:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3665, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "19809:6:4", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19809:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3674, - "nodeType": "ExpressionStatement", - "src": "19809:45:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3675, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "19864:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3680, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3609, - "src": "19899:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3677, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3639, - "src": "19888:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3676, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "19876:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 3678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19876:17:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 3679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2579, - "src": "19876:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 3681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19876:26:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19864:38:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3683, - "nodeType": "ExpressionStatement", - "src": "19864:38:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3684, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "19951:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19951:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 3686, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "19963:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19951:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3699, - "nodeType": "IfStatement", - "src": "19947:92:4", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3691, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "20005:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20005:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3693, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "20017:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20017:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3695, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "20029:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20017:21:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3688, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "19974:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 1975, - "src": "19974:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19974:65:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3698, - "nodeType": "ExpressionStatement", - "src": "19974:65:4" - } - } - ] - }, - "documentation": null, - "functionSelector": "f305d719", - "id": 3701, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3615, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "19328:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3616, - "modifierName": { - "argumentTypes": null, - "id": 3614, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "19321:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "19321:16:4" - } - ], - "name": "addLiquidityETH", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3613, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "19304:8:4" - }, - "parameters": { - "id": 3612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3601, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3701, - "src": "19135:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3600, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19135:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3603, - "mutability": "mutable", - "name": "amountTokenDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3701, - "src": "19158:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19158:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3605, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3701, - "src": "19191:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3604, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19191:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3607, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3701, - "src": "19220:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3606, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19220:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3609, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3701, - "src": "19247:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19247:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3611, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3701, - "src": "19267:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3610, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19267:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19125:161:4" - }, - "returnParameters": { - "id": 3623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3618, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3701, - "src": "19347:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3617, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19347:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3620, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3701, - "src": "19365:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3619, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19365:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3622, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3701, - "src": "19381:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3621, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19381:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19346:50:4" - }, - "scope": 5373, - "src": "19101:945:4", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2054 - ], - "body": { - "id": 3793, - "nodeType": "Block", - "src": "20360:557:4", - "statements": [ - { - "assignments": [ - 3727 - ], - "declarations": [ - { - "constant": false, - "id": 3727, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3793, - "src": "20370:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20370:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3734, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3730, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "20407:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3731, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "20416:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3732, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3705, - "src": "20424:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3728, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "20385:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 3729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "20385:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20385:46:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20370:61:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3739, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "20472:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20472:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3741, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3727, - "src": "20484:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3742, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3707, - "src": "20490:9:4", - "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, - "id": 3736, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3727, - "src": "20453:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3735, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "20441:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20441:17:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 2451, - "src": "20441:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 3743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20441:59:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3744, - "nodeType": "ExpressionStatement", - "src": "20441:59:4" - }, - { - "assignments": [ - 3746, - 3748 - ], - "declarations": [ - { - "constant": false, - "id": 3746, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3793, - "src": "20537:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3745, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20537:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3748, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3793, - "src": "20551:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3747, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20551:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3755, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3753, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3713, - "src": "20590:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3750, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3727, - "src": "20579:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3749, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "20567:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 3751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20567:17:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 3752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2588, - "src": "20567:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address) external returns (uint256,uint256)" - } - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20567:26:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20536:57:4" - }, - { - "assignments": [ - 3757, - null - ], - "declarations": [ - { - "constant": false, - "id": 3757, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3793, - "src": "20604:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3756, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20604:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 3763, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3760, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "20648:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3761, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3705, - "src": "20656:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3758, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "20623:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 3759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sortTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 2742, - "src": "20623:24:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 3762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20623:40:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20603:60:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3764, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "20674:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3765, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "20683:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3766, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "20673:18:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3767, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "20694:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3768, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3757, - "src": "20704:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20694:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3773, - "name": "amount1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "20735:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3774, - "name": "amount0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "20744:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3775, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20734:18:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "20694:58:4", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3770, - "name": "amount0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "20714:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3771, - "name": "amount1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "20723:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3772, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20713:18:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "20673:79:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "20673:79:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3780, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "20770:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3781, - "name": "amountAMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3709, - "src": "20781:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20770:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e54", - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20793:37:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d67922d8d1b1ee33fa1f85a08f43e1a4a207515581f5845bf7d6bef9c165ae8", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_A_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_A_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d67922d8d1b1ee33fa1f85a08f43e1a4a207515581f5845bf7d6bef9c165ae8", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_A_AMOUNT\"" - } - ], - "id": 3779, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "20762:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20762:69:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3785, - "nodeType": "ExpressionStatement", - "src": "20762:69:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3787, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "20849:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3788, - "name": "amountBMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "20860:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20849:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e54", - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20872:37:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d667c08b6dee8d914a27b5221c0b76a88002adc554aba65ad576a4b2cd5507ba", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_B_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_B_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d667c08b6dee8d914a27b5221c0b76a88002adc554aba65ad576a4b2cd5507ba", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_B_AMOUNT\"" - } - ], - "id": 3786, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "20841:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20841:69:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3792, - "nodeType": "ExpressionStatement", - "src": "20841:69:4" - } - ] - }, - "documentation": null, - "functionSelector": "baa2abde", - "id": 3794, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3719, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "20313:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3720, - "modifierName": { - "argumentTypes": null, - "id": 3718, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "20306:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "20306:16:4" - } - ], - "name": "removeLiquidity", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3717, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "20297:8:4" - }, - "parameters": { - "id": 3716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3703, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3794, - "src": "20120:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3702, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20120:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3705, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3794, - "src": "20144:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20144:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3707, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3794, - "src": "20168:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3706, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20168:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3709, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3794, - "src": "20192:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3708, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20192:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3711, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3794, - "src": "20217:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3710, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20217:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3713, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3794, - "src": "20242:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20242:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3715, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3794, - "src": "20262:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3714, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20262:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20110:171:4" - }, - "returnParameters": { - "id": 3725, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3722, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3794, - "src": "20332:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3721, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20332:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3724, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3794, - "src": "20346:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3723, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20346:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20331:28:4" - }, - "scope": 5373, - "src": "20086:831:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 2073 - ], - "body": { - "id": 3856, - "nodeType": "Block", - "src": "21186:389:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3817, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3813, - "src": "21197:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3818, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "21210:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3819, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "21196:24:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3821, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "21252:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3822, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "21271:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3823, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3798, - "src": "21289:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3824, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3800, - "src": "21312:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3825, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3802, - "src": "21340:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3828, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "21374:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21366:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21366:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21366:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3830, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "21393:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3820, - "name": "removeLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "21223:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)" - } - }, - "id": 3831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21223:188:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "21196:215:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3833, - "nodeType": "ExpressionStatement", - "src": "21196:215:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3837, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "21449:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3838, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "21456:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3839, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3813, - "src": "21460:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3834, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "21421:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 3836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1904, - "src": "21421:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21421:51:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3841, - "nodeType": "ExpressionStatement", - "src": "21421:51:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3846, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "21503:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3843, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "21488:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3842, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "21482:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 3844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21482:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 3845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 3333, - "src": "21482:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 3847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21482:31:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3848, - "nodeType": "ExpressionStatement", - "src": "21482:31:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3852, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "21554:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3853, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "21558:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3849, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "21523:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 3851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 1975, - "src": "21523:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21523:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3855, - "nodeType": "ExpressionStatement", - "src": "21523:45:4" - } - ] - }, - "documentation": null, - "functionSelector": "02751cec", - "id": 3857, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3810, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "21133:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3811, - "modifierName": { - "argumentTypes": null, - "id": 3809, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "21126:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "21126:16:4" - } - ], - "name": "removeLiquidityETH", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3808, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "21117:8:4" - }, - "parameters": { - "id": 3807, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3796, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3857, - "src": "20959:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3795, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20959:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3798, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3857, - "src": "20982:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3797, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20982:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3800, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3857, - "src": "21006:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3799, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21006:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3802, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3857, - "src": "21035:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3801, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21035:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3804, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3857, - "src": "21062:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3803, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21062:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3806, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3857, - "src": "21082:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3805, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21082:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20949:152:4" - }, - "returnParameters": { - "id": 3816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3813, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3857, - "src": "21152:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3812, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21152:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3815, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3857, - "src": "21170:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3814, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21170:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21151:34:4" - }, - "scope": 5373, - "src": "20922:653:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 2102 - ], - "body": { - "id": 3938, - "nodeType": "Block", - "src": "21905:332:4", - "statements": [ - { - "assignments": [ - 3888 - ], - "declarations": [ - { - "constant": false, - "id": 3888, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3938, - "src": "21915:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3887, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21915:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3895, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3891, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "21952:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3892, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3859, - "src": "21961:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3893, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3861, - "src": "21969:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3889, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "21930:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 3890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "21930:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 3894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21930:46:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21915:61:4" - }, - { - "assignments": [ - 3897 - ], - "declarations": [ - { - "constant": false, - "id": 3897, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3938, - "src": "21986:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3896, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21986:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3906, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3898, - "name": "approveMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3873, - "src": "21999:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 3904, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3863, - "src": "22023:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "21999:33:4", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3902, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "22017:2:4", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3901, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22018:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - ], - "id": 3900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22012:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 3899, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "22012:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22012:8:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21986:46:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3911, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "22067:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22067:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3915, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "22087:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 3914, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22079:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22079:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22079:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3917, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3897, - "src": "22094:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3918, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3871, - "src": "22101:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3919, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3875, - "src": "22111:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 3920, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3877, - "src": "22114:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3879, - "src": "22117:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3908, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3888, - "src": "22054:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3907, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "22042:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 3909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22042:17:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 3910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "permit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2485, - "src": "22042:24:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external" - } - }, - "id": 3922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22042:77:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3923, - "nodeType": "ExpressionStatement", - "src": "22042:77:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 3924, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3883, - "src": "22130:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3925, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "22139:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3926, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "22129:18:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3928, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3859, - "src": "22166:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3929, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3861, - "src": "22174:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3930, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3863, - "src": "22182:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "amountAMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3865, - "src": "22193:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "amountBMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3867, - "src": "22205:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3869, - "src": "22217:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3934, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3871, - "src": "22221:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3927, - "name": "removeLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "22150:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)" - } - }, - "id": 3935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22150:80:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "22129:101:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3937, - "nodeType": "ExpressionStatement", - "src": "22129:101:4" - } - ] - }, - "documentation": null, - "functionSelector": "2195995c", - "id": 3939, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityWithPermit", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3881, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "21859:8:4" - }, - "parameters": { - "id": 3880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3859, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21624:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3858, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21624:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3861, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21648:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3860, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21648:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3863, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21672:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3862, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21672:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3865, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21696:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3864, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21696:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3867, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21721:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3866, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21721:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3869, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21746:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3868, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21746:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3871, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21766:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3870, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21766:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3873, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21789:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3872, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "21789:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3875, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21806:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3874, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "21806:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3877, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21815:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3876, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "21815:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3879, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21826:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3878, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "21826:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21614:227:4" - }, - "returnParameters": { - "id": 3886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3883, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21877:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3882, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21877:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3885, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3939, - "src": "21891:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3884, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21891:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21876:28:4" - }, - "scope": 5373, - "src": "21580:657:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2129 - ], - "body": { - "id": 4017, - "nodeType": "Block", - "src": "22557:335:4", - "statements": [ - { - "assignments": [ - 3968 - ], - "declarations": [ - { - "constant": false, - "id": 3968, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4017, - "src": "22567:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3967, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22567:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3975, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3971, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "22604:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3972, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3941, - "src": "22613:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3973, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "22620:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3969, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "22582:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 3970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "22582:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 3974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22582:43:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22567:58:4" - }, - { - "assignments": [ - 3977 - ], - "declarations": [ - { - "constant": false, - "id": 3977, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4017, - "src": "22635:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3976, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "22635:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3986, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3978, - "name": "approveMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3953, - "src": "22648:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 3984, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3943, - "src": "22672:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "22648:33:4", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "22666:2:4", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22667:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - ], - "id": 3980, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22661:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 3979, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "22661:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3983, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22661:8:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22635:46:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3991, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "22716:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22716:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3995, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "22736:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 3994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22728:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22728:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22728:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3997, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3977, - "src": "22743:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3998, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "22750:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3999, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3955, - "src": "22760:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 4000, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3957, - "src": "22763:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 4001, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3959, - "src": "22766:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3988, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3968, - "src": "22703:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3987, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "22691:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 3989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22691:17:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 3990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "permit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2485, - "src": "22691:24:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external" - } - }, - "id": 4002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22691:77:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4003, - "nodeType": "ExpressionStatement", - "src": "22691:77:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 4015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 4004, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3963, - "src": "22779:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4005, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "22792:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4006, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "22778:24:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4008, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3941, - "src": "22824:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4009, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3943, - "src": "22831:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4010, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3945, - "src": "22842:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4011, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3947, - "src": "22858:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4012, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3949, - "src": "22872:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4013, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3951, - "src": "22876:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4007, - "name": "removeLiquidityETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3857, - "src": "22805:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)" - } - }, - "id": 4014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22805:80:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "22778:107:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4016, - "nodeType": "ExpressionStatement", - "src": "22778:107:4" - } - ] - }, - "documentation": null, - "functionSelector": "ded9382a", - "id": 4018, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHWithPermit", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3961, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "22505:8:4" - }, - "parameters": { - "id": 3960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3941, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22289:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3940, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22289:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3943, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22312:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3942, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "22312:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3945, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22336:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3944, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "22336:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3947, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22365:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3946, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "22365:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3949, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22392:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22392:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3951, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22412:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "22412:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3953, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22435:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3952, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "22435:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3955, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22452:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3954, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "22452:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3957, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22461:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3956, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "22461:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3959, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22472:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3958, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "22472:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22279:208:4" - }, - "returnParameters": { - "id": 3966, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3963, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22523:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3962, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "22523:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3965, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4018, - "src": "22541:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3964, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "22541:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22522:34:4" - }, - "scope": 5373, - "src": "22242:650:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2303 - ], - "body": { - "id": 4085, - "nodeType": "Block", - "src": "23243:405:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - null, - { - "argumentTypes": null, - "id": 4039, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4037, - "src": "23256:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4040, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "23253:13:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$_t_uint256_$", - "typeString": "tuple(,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4042, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "23298:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4043, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "23317:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4044, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4022, - "src": "23335:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4045, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4024, - "src": "23358:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4046, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4026, - "src": "23386:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4049, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "23420:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 4048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23412:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4047, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23412:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23412:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4051, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4030, - "src": "23439:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4041, - "name": "removeLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "23269:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)" - } - }, - "id": 4052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23269:188:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "23253:204:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4054, - "nodeType": "ExpressionStatement", - "src": "23253:204:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4058, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "23495:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4059, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4028, - "src": "23502:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4066, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "23538:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 4065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23530:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4064, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23530:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23530:13:4", - "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": 4061, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "23513:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4060, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "23506:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$3315_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 4062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23506:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$3315", - "typeString": "contract IERC20" - } - }, - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 3276, - "src": "23506:23:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23506:38:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4055, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "23467:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 4057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1904, - "src": "23467:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 4069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23467:78:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4070, - "nodeType": "ExpressionStatement", - "src": "23467:78:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4075, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4037, - "src": "23576:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4072, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "23561:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4071, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "23555:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 4073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23555:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 4074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 3333, - "src": "23555:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 4076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23555:31:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4077, - "nodeType": "ExpressionStatement", - "src": "23555:31:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4081, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4028, - "src": "23627:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4082, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4037, - "src": "23631:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4078, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "23596:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 4080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 1975, - "src": "23596:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23596:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4084, - "nodeType": "ExpressionStatement", - "src": "23596:45:4" - } - ] - }, - "documentation": null, - "functionSelector": "af2979eb", - "id": 4086, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4034, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4030, - "src": "23208:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4035, - "modifierName": { - "argumentTypes": null, - "id": 4033, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "23201:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "23201:16:4" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 4032, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "23192:8:4" - }, - "parameters": { - "id": 4031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4020, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4086, - "src": "23034:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4019, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23034:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4022, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4086, - "src": "23057:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4021, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23057:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4024, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4086, - "src": "23081:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4023, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23081:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4026, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4086, - "src": "23110:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4025, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23110:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4028, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4086, - "src": "23137:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4027, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23137:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4030, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4086, - "src": "23157:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4029, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23157:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23024:152:4" - }, - "returnParameters": { - "id": 4038, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4037, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4086, - "src": "23227:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4036, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23227:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23226:16:4" - }, - "scope": 5373, - "src": "22968:680:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 2328 - ], - "body": { - "id": 4160, - "nodeType": "Block", - "src": "23979:371:4", - "statements": [ - { - "assignments": [ - 4113 - ], - "declarations": [ - { - "constant": false, - "id": 4113, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4160, - "src": "23989:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23989:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4120, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4116, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "24026:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4117, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4088, - "src": "24035:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4118, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "24042:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4114, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "24004:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "24004:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24004:43:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23989:58:4" - }, - { - "assignments": [ - 4122 - ], - "declarations": [ - { - "constant": false, - "id": 4122, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4160, - "src": "24057:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4121, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24057:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4131, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 4123, - "name": "approveMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "24070:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 4129, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4090, - "src": "24094:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "24070:33:4", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "24088:2:4", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24089:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - ], - "id": 4125, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24083:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 4124, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24083:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4128, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24083:8:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24057:46:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4136, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "24138:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24138:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4140, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "24158:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 4139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24150:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24150:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24150:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4142, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4122, - "src": "24165:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4143, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4098, - "src": "24172:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4144, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4102, - "src": "24182:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 4145, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4104, - "src": "24185:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 4146, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4106, - "src": "24188:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4133, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4113, - "src": "24125:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4132, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "24113:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 4134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24113:17:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 4135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "permit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2485, - "src": "24113:24:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external" - } - }, - "id": 4147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24113:77:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4148, - "nodeType": "ExpressionStatement", - "src": "24113:77:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 4158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4149, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4110, - "src": "24200:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4151, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4088, - "src": "24273:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4152, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4090, - "src": "24280:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4153, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "24291:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4154, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "24307:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4155, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4096, - "src": "24321:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4156, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4098, - "src": "24325:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4150, - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "24212:47:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256) returns (uint256)" - } - }, - "id": 4157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24212:131:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24200:143:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4159, - "nodeType": "ExpressionStatement", - "src": "24200:143:4" - } - ] - }, - "documentation": null, - "functionSelector": "5b0d5984", - "id": 4161, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 4108, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "23945:8:4" - }, - "parameters": { - "id": 4107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4088, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23729:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23729:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4090, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23752:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4089, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23752:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4092, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23776:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4091, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23776:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4094, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23805:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4093, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23805:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4096, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23832:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23832:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4098, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23852:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4097, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23852:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4100, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23875:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4099, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23875:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4102, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23892:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 4101, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "23892:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4104, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23901:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4103, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "23901:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4106, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23912:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4105, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "23912:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23719:208:4" - }, - "returnParameters": { - "id": 4111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4110, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4161, - "src": "23963:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4109, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23963:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23962:16:4" - }, - "scope": 5373, - "src": "23653:697:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "body": { - "id": 4276, - "nodeType": "Block", - "src": "24548:621:4", - "statements": [ - { - "body": { - "id": 4274, - "nodeType": "Block", - "src": "24597:566:4", - "statements": [ - { - "assignments": [ - 4185, - 4187 - ], - "declarations": [ - { - "constant": false, - "id": 4185, - "mutability": "mutable", - "name": "input", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4274, - "src": "24612:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4184, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24612:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4187, - "mutability": "mutable", - "name": "output", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4274, - "src": "24627:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4186, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24627:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4197, - "initialValue": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4188, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "24646:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4190, - "indexExpression": { - "argumentTypes": null, - "id": 4189, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4173, - "src": "24651:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24646:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4191, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "24655:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4195, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4192, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4173, - "src": "24660:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24664:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24660:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24655:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4196, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24645:22:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24611:56:4" - }, - { - "assignments": [ - 4199, - null - ], - "declarations": [ - { - "constant": false, - "id": 4199, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4274, - "src": "24682:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4198, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24682:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 4205, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4202, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "24726:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4203, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4187, - "src": "24733:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4200, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "24701:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sortTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 2742, - "src": "24701:24:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 4204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24701:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24681:59:4" - }, - { - "assignments": [ - 4207 - ], - "declarations": [ - { - "constant": false, - "id": 4207, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4274, - "src": "24754:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4206, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24754:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4213, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4208, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4164, - "src": "24771:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4212, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4209, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4173, - "src": "24779:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4210, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24783:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24779:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24771:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24754:31:4" - }, - { - "assignments": [ - 4215, - 4217 - ], - "declarations": [ - { - "constant": false, - "id": 4215, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4274, - "src": "24800:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4214, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24800:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4217, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4274, - "src": "24817:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4216, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24817:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4234, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4218, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "24836:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4219, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4199, - "src": "24845:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "24836:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 4227, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4207, - "src": "24878:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24894:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4229, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24889:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 4228, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24889:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4231, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24889:7:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4232, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24877:20:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 4233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "24836:61:4", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4223, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24860:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4222, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24855:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 4221, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24855:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4224, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24855:7:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4225, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4207, - "src": "24864:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4226, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24854:20:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24799:98:4" - }, - { - "assignments": [ - 4236 - ], - "declarations": [ - { - "constant": false, - "id": 4236, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4274, - "src": "24911:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24911:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4255, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4237, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4173, - "src": "24924:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4238, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "24928:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24928:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 4240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24942:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "24928:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24924:19:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 4253, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4169, - "src": "25000:3:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "24924:79:4", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4245, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "24968:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4246, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4187, - "src": "24977:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4247, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "24985:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4251, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4248, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4173, - "src": "24990:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 4249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24994:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "24990:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24985:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4243, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "24946:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "24946:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24946:51:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24911:92:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4265, - "name": "amount0Out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "25098:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4266, - "name": "amount1Out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4217, - "src": "25110:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4267, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4236, - "src": "25122:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25136:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "25126:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 4268, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "25130:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 4271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25126:12:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4259, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "25051:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4260, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "25060:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4261, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4187, - "src": "25067:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4257, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "25029:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "25029:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25029:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4256, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "25017:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 4263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25017:58:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 4264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swap", - "nodeType": "MemberAccess", - "referencedDeclaration": 2599, - "src": "25017:63:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,address,bytes memory) external" - } - }, - "id": 4272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25017:135:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4273, - "nodeType": "ExpressionStatement", - "src": "25017:135:4" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4175, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4173, - "src": "24571:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4176, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4167, - "src": "24575:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24575:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24589:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24575:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24571:19:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4275, - "initializationExpression": { - "assignments": [ - 4173 - ], - "declarations": [ - { - "constant": false, - "id": 4173, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4275, - "src": "24563:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4172, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24563:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4174, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "24563:6:4" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "24592:3:4", - "subExpression": { - "argumentTypes": null, - "id": 4181, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4173, - "src": "24592:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4183, - "nodeType": "ExpressionStatement", - "src": "24592:3:4" - }, - "nodeType": "ForStatement", - "src": "24558:605:4" - } - ] - }, - "documentation": null, - "id": 4277, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_swap", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4164, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4277, - "src": "24472:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4162, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24472:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4163, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24472:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4167, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4277, - "src": "24495:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4165, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24495:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4166, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24495:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4169, - "mutability": "mutable", - "name": "_to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4277, - "src": "24518:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24518:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24471:59:4" - }, - "returnParameters": { - "id": 4171, - "nodeType": "ParameterList", - "parameters": [], - "src": "24548:0:4" - }, - "scope": 5373, - "src": "24457:712:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "baseFunctions": [ - 2146 - ], - "body": { - "id": 4348, - "nodeType": "Block", - "src": "25415:365:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4298, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4296, - "src": "25425:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4301, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "25463:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4302, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4279, - "src": "25472:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4303, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4284, - "src": "25482:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4299, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "25435:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 3135, - "src": "25435:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 4304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25435:52:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "25425:62:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4306, - "nodeType": "ExpressionStatement", - "src": "25425:62:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4308, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4296, - "src": "25505:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4313, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4309, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4296, - "src": "25513:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25513:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25530:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "25513:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25505:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4314, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4281, - "src": "25536:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25505:43:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 4316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25550:42:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 4307, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "25497:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25497:96:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4318, - "nodeType": "ExpressionStatement", - "src": "25497:96:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4322, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4284, - "src": "25648:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4324, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25653:1:4", - "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": "25648:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4325, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "25657:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25657:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4329, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "25691:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4330, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4284, - "src": "25700:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4332, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25705:1:4", - "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": "25700:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4333, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4284, - "src": "25709:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4335, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25714:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25709:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4327, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "25669:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "25669:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25669:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4337, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4296, - "src": "25719:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4339, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25727:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25719:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4319, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "25603:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 4321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 1950, - "src": "25603:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 4340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25603:136:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4341, - "nodeType": "ExpressionStatement", - "src": "25603:136:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4343, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4296, - "src": "25755:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 4344, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4284, - "src": "25764:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 4345, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4286, - "src": "25770:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4342, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4277, - "src": "25749:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 4346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25749:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4347, - "nodeType": "ExpressionStatement", - "src": "25749:24:4" - } - ] - }, - "documentation": null, - "functionSelector": "38ed1739", - "id": 4349, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4292, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4288, - "src": "25373:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4293, - "modifierName": { - "argumentTypes": null, - "id": 4291, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "25366:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "25366:16:4" - } - ], - "name": "swapExactTokensForTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 4290, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "25357:8:4" - }, - "parameters": { - "id": 4289, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4279, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4349, - "src": "25217:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4278, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "25217:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4281, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4349, - "src": "25240:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4280, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "25240:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4284, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4349, - "src": "25267:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25267:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4283, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25267:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4286, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4349, - "src": "25300:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4285, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25300:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4288, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4349, - "src": "25320:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4287, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "25320:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25207:132:4" - }, - "returnParameters": { - "id": 4297, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4296, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4349, - "src": "25392:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4294, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "25392:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4295, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25392:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25391:23:4" - }, - "scope": 5373, - "src": "25174:606:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2163 - ], - "body": { - "id": 4417, - "nodeType": "Block", - "src": "26026:343:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4370, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4368, - "src": "26036:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4373, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "26073:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4374, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4351, - "src": "26082:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4375, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4356, - "src": "26093:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4371, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "26046:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 3231, - "src": "26046:26:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 4376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26046:52:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "26036:62:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4378, - "nodeType": "ExpressionStatement", - "src": "26036:62:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4380, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4368, - "src": "26116:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4382, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26124:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26116:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 4383, - "name": "amountInMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "26130:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26116:25:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54", - "id": 4385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26143:38:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - }, - "value": "DXswapRouter: EXCESSIVE_INPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - } - ], - "id": 4379, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "26108:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26108:74:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4387, - "nodeType": "ExpressionStatement", - "src": "26108:74:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4391, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4356, - "src": "26237:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4393, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26242:1:4", - "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": "26237:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4394, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "26246:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26246:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4398, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "26280:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4399, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4356, - "src": "26289:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4401, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4400, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26294:1:4", - "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": "26289:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4402, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4356, - "src": "26298:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4404, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26303:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26298:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4396, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "26258:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "26258:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26258:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4406, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4368, - "src": "26308:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4408, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26316:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26308:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4388, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "26192:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 4390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 1950, - "src": "26192:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 4409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26192:136:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4410, - "nodeType": "ExpressionStatement", - "src": "26192:136:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4412, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4368, - "src": "26344:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 4413, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4356, - "src": "26353:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 4414, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4358, - "src": "26359:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4411, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4277, - "src": "26338:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 4415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26338:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4416, - "nodeType": "ExpressionStatement", - "src": "26338:24:4" - } - ] - }, - "documentation": null, - "functionSelector": "8803dbee", - "id": 4418, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4364, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "25984:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4365, - "modifierName": { - "argumentTypes": null, - "id": 4363, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "25977:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "25977:16:4" - } - ], - "name": "swapTokensForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 4362, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "25968:8:4" - }, - "parameters": { - "id": 4361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4351, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4418, - "src": "25828:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4350, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "25828:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4353, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4418, - "src": "25852:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4352, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "25852:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4356, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4418, - "src": "25878:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25878:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4355, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25878:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4358, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4418, - "src": "25911:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4357, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25911:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4360, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4418, - "src": "25931:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4359, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "25931:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25818:132:4" - }, - "returnParameters": { - "id": 4369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4368, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4418, - "src": "26003:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4366, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26003:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4367, - "length": null, - "nodeType": "ArrayTypeName", - "src": "26003:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26002:23:4" - }, - "scope": 5373, - "src": "25785:584:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2178 - ], - "body": { - "id": 4505, - "nodeType": "Block", - "src": "26611:434:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4438, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4423, - "src": "26629:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4440, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26634:1:4", - "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": "26629:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4441, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "26640:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "26629:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 4443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26646:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 4437, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "26621:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26621:54:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4445, - "nodeType": "ExpressionStatement", - "src": "26621:54:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 4454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4446, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4435, - "src": "26685:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4449, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "26723:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4450, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "26732:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4452, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4423, - "src": "26743:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4447, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "26695:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 3135, - "src": "26695:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 4453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26695:53:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "26685:63:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4455, - "nodeType": "ExpressionStatement", - "src": "26685:63:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4457, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4435, - "src": "26766:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4462, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4458, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4435, - "src": "26774:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26774:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26791:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "26774:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26766:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4463, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4420, - "src": "26797:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26766:43:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 4465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26811:42:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 4456, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "26758:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26758:96:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4467, - "nodeType": "ExpressionStatement", - "src": "26758:96:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4469, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "26870:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4468, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "26864:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 4470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26864:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 4471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 3319, - "src": "26864:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 4475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4472, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4435, - "src": "26891:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4474, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26899:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26891:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "26864:38:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 4476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26864:40:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4477, - "nodeType": "ExpressionStatement", - "src": "26864:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4485, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "26964:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4486, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4423, - "src": "26973:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4488, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26978:1:4", - "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": "26973:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4489, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4423, - "src": "26982:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4491, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26987:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26982:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4483, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "26942:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "26942:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26942:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4493, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4435, - "src": "26992:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4495, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27000:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26992:10:4", - "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": 4480, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "26927:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4479, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "26921:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 4481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26921:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 4482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3328, - "src": "26921:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26921:82:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4478, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "26914:6:4", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26914:90:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4498, - "nodeType": "ExpressionStatement", - "src": "26914:90:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4500, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4435, - "src": "27020:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 4501, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4423, - "src": "27029:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 4502, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4425, - "src": "27035:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4499, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4277, - "src": "27014:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 4503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27014:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4504, - "nodeType": "ExpressionStatement", - "src": "27014:24:4" - } - ] - }, - "documentation": null, - "functionSelector": "7ff36ab5", - "id": 4506, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4431, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4427, - "src": "26557:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4432, - "modifierName": { - "argumentTypes": null, - "id": 4430, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "26550:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "26550:16:4" - } - ], - "name": "swapExactETHForTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 4429, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "26517:8:4" - }, - "parameters": { - "id": 4428, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4420, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4506, - "src": "26405:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4419, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26405:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4423, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4506, - "src": "26424:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4421, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26424:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4422, - "length": null, - "nodeType": "ArrayTypeName", - "src": "26424:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4425, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4506, - "src": "26449:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4424, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26449:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4427, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4506, - "src": "26461:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4426, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26461:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26404:71:4" - }, - "returnParameters": { - "id": 4436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4435, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4506, - "src": "26584:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4433, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26584:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4434, - "length": null, - "nodeType": "ArrayTypeName", - "src": "26584:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26583:23:4" - }, - "scope": 5373, - "src": "26374:671:4", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2195 - ], - "body": { - "id": 4613, - "nodeType": "Block", - "src": "27286:564:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4528, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "27304:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4533, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4529, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "27309:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "27309:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27323:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27309:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27304:21:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4534, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "27329:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "27304:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 4536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27335:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 4527, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "27296:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27296:68:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4538, - "nodeType": "ExpressionStatement", - "src": "27296:68:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 4546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4539, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4525, - "src": "27374:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4542, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "27411:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4543, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4508, - "src": "27420:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4544, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "27431:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4540, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "27384:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 3231, - "src": "27384:26:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 4545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27384:52:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "27374:62:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4547, - "nodeType": "ExpressionStatement", - "src": "27374:62:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4549, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4525, - "src": "27454:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4551, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27462:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27454:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 4552, - "name": "amountInMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4510, - "src": "27468:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27454:25:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54", - "id": 4554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27481:38:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - }, - "value": "DXswapRouter: EXCESSIVE_INPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - } - ], - "id": 4548, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "27446:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27446:74:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4556, - "nodeType": "ExpressionStatement", - "src": "27446:74:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4560, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "27575:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4562, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27580:1:4", - "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": "27575:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4563, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "27584:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "27584:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4567, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "27618:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4568, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "27627:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4570, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27632:1:4", - "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": "27627:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4571, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "27636:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4573, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27641:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27636:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4565, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "27596:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "27596:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27596:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4575, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4525, - "src": "27646:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4577, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27654:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27646:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4557, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "27530:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 4559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 1950, - "src": "27530:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 4578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27530:136:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4579, - "nodeType": "ExpressionStatement", - "src": "27530:136:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4581, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4525, - "src": "27682:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 4582, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "27691:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4585, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "27705:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 4584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "27697:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4583, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27697:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27697:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 4580, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4277, - "src": "27676:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 4587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27676:35:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4588, - "nodeType": "ExpressionStatement", - "src": "27676:35:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4593, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4525, - "src": "27742:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4598, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4594, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4525, - "src": "27750:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "27750:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27767:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27750:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27742:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4590, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "27727:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4589, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "27721:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 4591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27721:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 4592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 3333, - "src": "27721:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 4599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27721:49:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4600, - "nodeType": "ExpressionStatement", - "src": "27721:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4604, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4515, - "src": "27811:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4605, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4525, - "src": "27815:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4610, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4606, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4525, - "src": "27823:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "27823:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27840:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27823:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27815:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4601, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "27780:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 4603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 1975, - "src": "27780:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 4611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27780:63:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4612, - "nodeType": "ExpressionStatement", - "src": "27780:63:4" - } - ] - }, - "documentation": null, - "functionSelector": "4a25d94a", - "id": 4614, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4521, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4517, - "src": "27232:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4522, - "modifierName": { - "argumentTypes": null, - "id": 4520, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "27225:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "27225:16:4" - } - ], - "name": "swapTokensForExactETH", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 4519, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "27208:8:4" - }, - "parameters": { - "id": 4518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4508, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4614, - "src": "27081:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4507, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27081:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4510, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4614, - "src": "27097:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4509, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27097:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4513, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4614, - "src": "27115:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4511, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27115:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4512, - "length": null, - "nodeType": "ArrayTypeName", - "src": "27115:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4515, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4614, - "src": "27140:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4514, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27140:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4517, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4614, - "src": "27152:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4516, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27152:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27080:86:4" - }, - "returnParameters": { - "id": 4526, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4525, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4614, - "src": "27259:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4523, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27259:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4524, - "length": null, - "nodeType": "ArrayTypeName", - "src": "27259:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27258:23:4" - }, - "scope": 5373, - "src": "27050:800:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2212 - ], - "body": { - "id": 4724, - "nodeType": "Block", - "src": "28091:586:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4636, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4621, - "src": "28109:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4641, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4637, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4621, - "src": "28114:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "28114:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28128:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "28114:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28109:21:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4642, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "28134:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "28109:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 4644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28140:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 4635, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "28101:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28101:68:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4646, - "nodeType": "ExpressionStatement", - "src": "28101:68:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 4654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4647, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4633, - "src": "28179:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4650, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "28217:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4651, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4616, - "src": "28226:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4652, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4621, - "src": "28236:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4648, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "28189:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 3135, - "src": "28189:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 4653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28189:52:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "28179:62:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4655, - "nodeType": "ExpressionStatement", - "src": "28179:62:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4657, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4633, - "src": "28259:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4662, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4658, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4633, - "src": "28267:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "28267:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28284:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "28267:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28259:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4663, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4618, - "src": "28290:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28259:43:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 4665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28304:42:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 4656, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "28251:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28251:96:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4667, - "nodeType": "ExpressionStatement", - "src": "28251:96:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4671, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4621, - "src": "28402:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4673, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28407:1:4", - "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": "28402:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4674, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "28411:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "28411:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4678, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "28445:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4679, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4621, - "src": "28454:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4681, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28459:1:4", - "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": "28454:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4682, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4621, - "src": "28463:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4684, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4683, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28468:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28463:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4676, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "28423:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "28423:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28423:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4686, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4633, - "src": "28473:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4688, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4687, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28481:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28473:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4668, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "28357:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 4670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 1950, - "src": "28357:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 4689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28357:136:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4690, - "nodeType": "ExpressionStatement", - "src": "28357:136:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4692, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4633, - "src": "28509:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 4693, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4621, - "src": "28518:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4696, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "28532:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 4695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28524:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28524:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28524:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 4691, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4277, - "src": "28503:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 4698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28503:35:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4699, - "nodeType": "ExpressionStatement", - "src": "28503:35:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4704, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4633, - "src": "28569:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4709, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4705, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4633, - "src": "28577:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "28577:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4707, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28594:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "28577:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28569:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4701, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "28554:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4700, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "28548:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 4702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28548:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 4703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 3333, - "src": "28548:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 4710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28548:49:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4711, - "nodeType": "ExpressionStatement", - "src": "28548:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4715, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4623, - "src": "28638:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4716, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4633, - "src": "28642:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4721, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4717, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4633, - "src": "28650:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "28650:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28667:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "28650:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28642:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4712, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "28607:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 4714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 1975, - "src": "28607:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 4722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28607:63:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4723, - "nodeType": "ExpressionStatement", - "src": "28607:63:4" - } - ] - }, - "documentation": null, - "functionSelector": "18cbafe5", - "id": 4725, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4629, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4625, - "src": "28037:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4630, - "modifierName": { - "argumentTypes": null, - "id": 4628, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "28030:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "28030:16:4" - } - ], - "name": "swapExactTokensForETH", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 4627, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "28013:8:4" - }, - "parameters": { - "id": 4626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4616, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4725, - "src": "27886:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4615, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27886:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4618, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4725, - "src": "27901:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4617, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27901:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4621, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4725, - "src": "27920:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4619, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27920:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4620, - "length": null, - "nodeType": "ArrayTypeName", - "src": "27920:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4623, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4725, - "src": "27945:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27945:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4625, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4725, - "src": "27957:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4624, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27957:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27885:86:4" - }, - "returnParameters": { - "id": 4634, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4633, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4725, - "src": "28064:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4631, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28064:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4632, - "length": null, - "nodeType": "ArrayTypeName", - "src": "28064:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28063:23:4" - }, - "scope": 5373, - "src": "27855:822:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2227 - ], - "body": { - "id": 4829, - "nodeType": "Block", - "src": "28916:548:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4745, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4730, - "src": "28934:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4747, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28939:1:4", - "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": "28934:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4748, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "28945:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "28934:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 4750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28951:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 4744, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "28926:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28926:54:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4752, - "nodeType": "ExpressionStatement", - "src": "28926:54:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 4760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4753, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "28990:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4756, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "29027:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4757, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4727, - "src": "29036:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4758, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4730, - "src": "29047:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4754, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "29000:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 3231, - "src": "29000:26:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 4759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29000:52:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "28990:62:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4761, - "nodeType": "ExpressionStatement", - "src": "28990:62:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4763, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "29070:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4765, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29078:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29070:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "29084:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29084:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29070:23:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54", - "id": 4769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29095:38:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - }, - "value": "DXswapRouter: EXCESSIVE_INPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - } - ], - "id": 4762, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "29062:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29062:72:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4771, - "nodeType": "ExpressionStatement", - "src": "29062:72:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4773, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "29150:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4772, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "29144:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 4774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29144:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 4775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 3319, - "src": "29144:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 4779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4776, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "29171:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4778, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4777, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29179:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29171:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "29144:38:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 4780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29144:40:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4781, - "nodeType": "ExpressionStatement", - "src": "29144:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4789, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "29244:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4790, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4730, - "src": "29253:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4792, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29258:1:4", - "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": "29253:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4793, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4730, - "src": "29262:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 4795, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29267:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29262:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4787, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "29222:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "29222:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29222:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4797, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "29272:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4799, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29280:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29272:10:4", - "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": 4784, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "29207:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4783, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "29201:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 4785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29201:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 4786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3328, - "src": "29201:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29201:82:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4782, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "29194:6:4", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29194:90:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4802, - "nodeType": "ExpressionStatement", - "src": "29194:90:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4804, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "29300:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 4805, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4730, - "src": "29309:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 4806, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4732, - "src": "29315:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4803, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4277, - "src": "29294:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 4807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29294:24:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4808, - "nodeType": "ExpressionStatement", - "src": "29294:24:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4809, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "29367:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29367:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4811, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "29379:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4813, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4812, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29387:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29379:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29367:22:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4828, - "nodeType": "IfStatement", - "src": "29363:94:4", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4818, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "29422:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29422:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4820, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "29434:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29434:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4822, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "29446:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 4824, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4823, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29454:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29446:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29434:22:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4815, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "29391:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 4817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 1975, - "src": "29391:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 4826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29391:66:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4827, - "nodeType": "ExpressionStatement", - "src": "29391:66:4" - } - } - ] - }, - "documentation": null, - "functionSelector": "fb3bdb41", - "id": 4830, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4738, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4734, - "src": "28862:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4739, - "modifierName": { - "argumentTypes": null, - "id": 4737, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "28855:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "28855:16:4" - } - ], - "name": "swapETHForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 4736, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "28822:8:4" - }, - "parameters": { - "id": 4735, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4727, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4830, - "src": "28713:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4726, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28713:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4730, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4830, - "src": "28729:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28729:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4729, - "length": null, - "nodeType": "ArrayTypeName", - "src": "28729:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4732, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4830, - "src": "28754:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28754:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4734, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4830, - "src": "28766:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4733, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28766:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28712:68:4" - }, - "returnParameters": { - "id": 4743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4742, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4830, - "src": "28889:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4740, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28889:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4741, - "length": null, - "nodeType": "ArrayTypeName", - "src": "28889:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28888:23:4" - }, - "scope": 5373, - "src": "28682:782:4", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - }, - { - "body": { - "id": 4996, - "nodeType": "Block", - "src": "29704:1098:4", - "statements": [ - { - "body": { - "id": 4994, - "nodeType": "Block", - "src": "29753:1043:4", - "statements": [ - { - "assignments": [ - 4851, - 4853 - ], - "declarations": [ - { - "constant": false, - "id": 4851, - "mutability": "mutable", - "name": "input", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4994, - "src": "29768:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29768:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4853, - "mutability": "mutable", - "name": "output", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4994, - "src": "29783:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4852, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29783:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4863, - "initialValue": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4854, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4833, - "src": "29802:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4856, - "indexExpression": { - "argumentTypes": null, - "id": 4855, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4839, - "src": "29807:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29802:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4857, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4833, - "src": "29811:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4861, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4858, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4839, - "src": "29816:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29820:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "29816:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29811:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4862, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "29801:22:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29767:56:4" - }, - { - "assignments": [ - 4865, - null - ], - "declarations": [ - { - "constant": false, - "id": 4865, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4994, - "src": "29838:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4864, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29838:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 4871, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4868, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4851, - "src": "29882:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4869, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4853, - "src": "29889:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4866, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "29857:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sortTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 2742, - "src": "29857:24:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 4870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29857:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29837:59:4" - }, - { - "assignments": [ - 4873 - ], - "declarations": [ - { - "constant": false, - "id": 4873, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4994, - "src": "29910:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - }, - "typeName": { - "contractScope": null, - "id": 4872, - "name": "IDXswapPair", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2620, - "src": "29910:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4882, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4877, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "29963:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4878, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4851, - "src": "29972:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4879, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4853, - "src": "29979:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4875, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "29941:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "29941:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29941:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4874, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "29929:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$2620_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 4881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29929:58:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29910:77:4" - }, - { - "assignments": [ - 4884 - ], - "declarations": [ - { - "constant": false, - "id": 4884, - "mutability": "mutable", - "name": "amountInput", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4994, - "src": "30001:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4883, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30001:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4885, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "30001:16:4" - }, - { - "assignments": [ - 4887 - ], - "declarations": [ - { - "constant": false, - "id": 4887, - "mutability": "mutable", - "name": "amountOutput", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4994, - "src": "30031:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4886, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30031:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4888, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "30031:17:4" - }, - { - "id": 4939, - "nodeType": "Block", - "src": "30062:435:4", - "statements": [ - { - "assignments": [ - 4890, - 4892, - null - ], - "declarations": [ - { - "constant": false, - "id": 4890, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4939, - "src": "30117:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4889, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30117:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4892, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4939, - "src": "30132:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4891, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30132:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 4896, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4893, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "30150:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 4894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 2552, - "src": "30150:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 4895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30150:18:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "30116:52:4" - }, - { - "assignments": [ - 4898, - 4900 - ], - "declarations": [ - { - "constant": false, - "id": 4898, - "mutability": "mutable", - "name": "reserveInput", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4939, - "src": "30183:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4897, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30183:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4900, - "mutability": "mutable", - "name": "reserveOutput", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4939, - "src": "30202:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4899, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30202:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4911, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4901, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4851, - "src": "30224:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4902, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4865, - "src": "30233:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "30224:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 4907, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4892, - "src": "30266:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4908, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4890, - "src": "30276:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4909, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "30265:20:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 4910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "30224:61:4", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 4904, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4890, - "src": "30243:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4905, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4892, - "src": "30253:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4906, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "30242:20:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "30182:103:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 4925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4912, - "name": "amountInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4884, - "src": "30299:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4923, - "name": "reserveInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4898, - "src": "30356:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4919, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "30345:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - ], - "id": 4918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30337:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4917, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30337:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30337:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4914, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4851, - "src": "30320:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4913, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "30313:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$3315_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 4915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30313:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$3315", - "typeString": "contract IERC20" - } - }, - "id": 4916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 3276, - "src": "30313:23:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30313:38:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2665, - "src": "30313:42:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30313:56:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30299:70:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4926, - "nodeType": "ExpressionStatement", - "src": "30299:70:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 4937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4927, - "name": "amountOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4887, - "src": "30383:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4930, - "name": "amountInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4884, - "src": "30425:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4931, - "name": "reserveInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4898, - "src": "30438:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4932, - "name": "reserveOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4900, - "src": "30452:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4933, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "30467:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 4934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 2572, - "src": "30467:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 4935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30467:14:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4928, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "30398:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 2975, - "src": "30398:26:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 4936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30398:84:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30383:99:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4938, - "nodeType": "ExpressionStatement", - "src": "30383:99:4" - } - ] - }, - { - "assignments": [ - 4941, - 4943 - ], - "declarations": [ - { - "constant": false, - "id": 4941, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4994, - "src": "30511:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4940, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30511:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4943, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4994, - "src": "30528:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4942, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30528:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4960, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4944, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4851, - "src": "30547:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 4945, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4865, - "src": "30556:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "30547:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 4953, - "name": "amountOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4887, - "src": "30592:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30611:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30606:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 4954, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30606:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4957, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30606:7:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4958, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "30591:23:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 4959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "30547:67:4", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30571:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4948, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30566:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 4947, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30566:4:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 4950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30566:7:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4951, - "name": "amountOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4887, - "src": "30575:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4952, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "30565:23:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "30510:104:4" - }, - { - "assignments": [ - 4962 - ], - "declarations": [ - { - "constant": false, - "id": 4962, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4994, - "src": "30628:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4961, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30628:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4981, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4963, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4839, - "src": "30641:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4964, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4833, - "src": "30645:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30645:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 4966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30659:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "30645:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30641:19:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 4979, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4835, - "src": "30717:3:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "30641:79:4", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4971, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "30685:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4972, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4853, - "src": "30694:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4973, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4833, - "src": "30702:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4977, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4974, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4839, - "src": "30707:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 4975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30711:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "30707:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30702:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4969, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "30663:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 4970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "30663:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 4978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30663:51:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "30628:92:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4985, - "name": "amount0Out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4941, - "src": "30744:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4986, - "name": "amount1Out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4943, - "src": "30756:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4987, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4962, - "src": "30768:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4990, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30782:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4989, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "30772:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 4988, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "30776:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 4991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30772:12:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 4982, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "30734:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$2620", - "typeString": "contract IDXswapPair" - } - }, - "id": 4984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swap", - "nodeType": "MemberAccess", - "referencedDeclaration": 2599, - "src": "30734:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,address,bytes memory) external" - } - }, - "id": 4992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30734:51:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4993, - "nodeType": "ExpressionStatement", - "src": "30734:51:4" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4841, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4839, - "src": "29727:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4842, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4833, - "src": "29731:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29731:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29745:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "29731:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29727:19:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4995, - "initializationExpression": { - "assignments": [ - 4839 - ], - "declarations": [ - { - "constant": false, - "id": 4839, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4995, - "src": "29719:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4838, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "29719:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4840, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "29719:6:4" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "29748:3:4", - "subExpression": { - "argumentTypes": null, - "id": 4847, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4839, - "src": "29748:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4849, - "nodeType": "ExpressionStatement", - "src": "29748:3:4" - }, - "nodeType": "ForStatement", - "src": "29714:1082:4" - } - ] - }, - "documentation": null, - "id": 4997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_swapSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4836, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4833, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4997, - "src": "29651:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4831, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29651:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4832, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29651:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4835, - "mutability": "mutable", - "name": "_to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4997, - "src": "29674:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29674:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29650:36:4" - }, - "returnParameters": { - "id": 4837, - "nodeType": "ParameterList", - "parameters": [], - "src": "29704:0:4" - }, - "scope": 5373, - "src": "29607:1195:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "baseFunctions": [ - 2342 - ], - "body": { - "id": 5075, - "nodeType": "Block", - "src": "31045:454:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5018, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5004, - "src": "31100:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5020, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31105:1:4", - "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": "31100:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5021, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "31109:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31109:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5025, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "31143:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5026, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5004, - "src": "31152:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5028, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31157:1:4", - "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": "31152:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5029, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5004, - "src": "31161:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5031, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31166:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31161:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5023, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "31121:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "31121:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 5032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31121:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5033, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4999, - "src": "31171:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5015, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "31055:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 5017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 1950, - "src": "31055:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 5034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31055:134:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5035, - "nodeType": "ExpressionStatement", - "src": "31055:134:4" - }, - { - "assignments": [ - 5037 - ], - "declarations": [ - { - "constant": false, - "id": 5037, - "mutability": "mutable", - "name": "balanceBefore", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5075, - "src": "31199:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5036, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31199:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5049, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5047, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5006, - "src": "31260:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5039, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5004, - "src": "31227:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5044, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5040, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5004, - "src": "31232:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31232:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31246:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "31232:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31227:21:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5038, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "31220:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$3315_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 5045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31220:29:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$3315", - "typeString": "contract IERC20" - } - }, - "id": 5046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 3276, - "src": "31220:39:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 5048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31220:43:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31199:64:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5051, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5004, - "src": "31308:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 5052, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5006, - "src": "31314:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5050, - "name": "_swapSupportingFeeOnTransferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4997, - "src": "31273:34:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (address[] memory,address)" - } - }, - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31273:44:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5054, - "nodeType": "ExpressionStatement", - "src": "31273:44:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5068, - "name": "balanceBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5037, - "src": "31396:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5065, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5006, - "src": "31388:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5004, - "src": "31355:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5062, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5058, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5004, - "src": "31360:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31360:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31374:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "31360:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31355:21:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5056, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "31348:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$3315_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 5063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31348:29:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$3315", - "typeString": "contract IERC20" - } - }, - "id": 5064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 3276, - "src": "31348:39:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 5066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31348:43:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2665, - "src": "31348:47:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 5069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31348:62:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5070, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5001, - "src": "31414:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31348:78:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 5072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31440:42:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 5055, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "31327:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31327:165:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5074, - "nodeType": "ExpressionStatement", - "src": "31327:165:4" - } - ] - }, - "documentation": null, - "functionSelector": "5c11d795", - "id": 5076, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5012, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5008, - "src": "31035:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5013, - "modifierName": { - "argumentTypes": null, - "id": 5011, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "31028:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31028:16:4" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5010, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "31019:8:4" - }, - "parameters": { - "id": 5009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4999, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5076, - "src": "30879:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4998, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30879:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5001, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5076, - "src": "30902:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5000, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30902:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5004, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5076, - "src": "30929:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 5002, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30929:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5003, - "length": null, - "nodeType": "ArrayTypeName", - "src": "30929:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5006, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5076, - "src": "30962:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5005, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30962:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5008, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5076, - "src": "30982:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30982:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30869:132:4" - }, - "returnParameters": { - "id": 5014, - "nodeType": "ParameterList", - "parameters": [], - "src": "31045:0:4" - }, - "scope": 5373, - "src": "30807:692:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2354 - ], - "body": { - "id": 5172, - "nodeType": "Block", - "src": "31768:555:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5093, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "31786:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5095, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5094, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31791:1:4", - "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": "31786:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5096, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "31797:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "31786:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 5098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31803:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 5092, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "31778:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31778:54:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5100, - "nodeType": "ExpressionStatement", - "src": "31778:54:4" - }, - { - "assignments": [ - 5102 - ], - "declarations": [ - { - "constant": false, - "id": 5102, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5172, - "src": "31842:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5101, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31842:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5105, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5103, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "31858:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31858:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31842:25:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5107, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "31883:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5106, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "31877:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 5108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31877:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 5109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 3319, - "src": "31877:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 5111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "id": 5110, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "31904:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "31877:36:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 5112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31877:38:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5113, - "nodeType": "ExpressionStatement", - "src": "31877:38:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5121, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "31975:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5122, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "31984:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5124, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31989:1:4", - "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": "31984:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5125, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "31993:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5127, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31998:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31993:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5119, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "31953:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "31953:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 5128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31953:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5129, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "32003:8:4", - "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": 5116, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "31938:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5115, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "31932:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 5117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31932:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 5118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3328, - "src": "31932:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 5130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31932:80:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5114, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "31925:6:4", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31925:88:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5132, - "nodeType": "ExpressionStatement", - "src": "31925:88:4" - }, - { - "assignments": [ - 5134 - ], - "declarations": [ - { - "constant": false, - "id": 5134, - "mutability": "mutable", - "name": "balanceBefore", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5172, - "src": "32023:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32023:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5146, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5144, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5083, - "src": "32084:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5136, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "32051:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5141, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5137, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "32056:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32056:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32070:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "32056:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32051:21:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5135, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "32044:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$3315_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 5142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32044:29:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$3315", - "typeString": "contract IERC20" - } - }, - "id": 5143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 3276, - "src": "32044:39:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 5145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32044:43:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32023:64:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5148, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "32132:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 5149, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5083, - "src": "32138:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5147, - "name": "_swapSupportingFeeOnTransferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4997, - "src": "32097:34:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (address[] memory,address)" - } - }, - "id": 5150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32097:44:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5151, - "nodeType": "ExpressionStatement", - "src": "32097:44:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5165, - "name": "balanceBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5134, - "src": "32220:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5162, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5083, - "src": "32212:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5154, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "32179:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5159, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5155, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "32184:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32184:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5157, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32198:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "32184:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32179:21:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5153, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "32172:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$3315_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 5160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32172:29:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$3315", - "typeString": "contract IERC20" - } - }, - "id": 5161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 3276, - "src": "32172:39:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 5163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32172:43:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2665, - "src": "32172:47:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 5166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32172:62:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5167, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5078, - "src": "32238:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32172:78:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 5169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32264:42:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 5152, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "32151:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32151:165:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5171, - "nodeType": "ExpressionStatement", - "src": "32151:165:4" - } - ] - }, - "documentation": null, - "functionSelector": "b6f9de95", - "id": 5173, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5089, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5085, - "src": "31754:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5090, - "modifierName": { - "argumentTypes": null, - "id": 5088, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "31747:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31747:16:4" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5087, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "31714:8:4" - }, - "parameters": { - "id": 5086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5078, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5173, - "src": "31573:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5077, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31573:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5081, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5173, - "src": "31600:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 5079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31600:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5080, - "length": null, - "nodeType": "ArrayTypeName", - "src": "31600:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5083, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5173, - "src": "31633:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31633:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5085, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5173, - "src": "31653:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5084, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31653:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31563:109:4" - }, - "returnParameters": { - "id": 5091, - "nodeType": "ParameterList", - "parameters": [], - "src": "31768:0:4" - }, - "scope": 5373, - "src": "31504:819:4", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2368 - ], - "body": { - "id": 5265, - "nodeType": "Block", - "src": "32599:542:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5192, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5180, - "src": "32617:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5197, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5193, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5180, - "src": "32622:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32622:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5195, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32636:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "32622:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32617:21:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5198, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "32642:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "32617:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 5200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32648:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 5191, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "32609:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32609:68:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5202, - "nodeType": "ExpressionStatement", - "src": "32609:68:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5206, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5180, - "src": "32732:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5208, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32737:1:4", - "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": "32732:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5209, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "32741:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32741:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5213, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "32775:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5214, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5180, - "src": "32784:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5216, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32789:1:4", - "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": "32784:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5217, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5180, - "src": "32793:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 5219, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32798:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32793:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5211, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "32753:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2787, - "src": "32753:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 5220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32753:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5221, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5175, - "src": "32803:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5203, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "32687:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 1950, - "src": "32687:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 5222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32687:134:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5223, - "nodeType": "ExpressionStatement", - "src": "32687:134:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5225, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5180, - "src": "32866:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5228, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "32880:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 5227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "32872:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5226, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32872:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 5229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32872:13:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5224, - "name": "_swapSupportingFeeOnTransferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4997, - "src": "32831:34:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (address[] memory,address)" - } - }, - "id": 5230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32831:55:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5231, - "nodeType": "ExpressionStatement", - "src": "32831:55:4" - }, - { - "assignments": [ - 5233 - ], - "declarations": [ - { - "constant": false, - "id": 5233, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5265, - "src": "32896:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5232, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32896:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5243, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5240, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "32944:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$5373", - "typeString": "contract DXswapRouter" - } - ], - "id": 5239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "32936:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32936:7:4", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 5241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32936:13:4", - "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": 5235, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "32920:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5234, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "32913:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$3315_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32913:12:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$3315", - "typeString": "contract IERC20" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 3276, - "src": "32913:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 5242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32913:37:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32896:54:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5245, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "32968:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5246, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5177, - "src": "32981:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32968:25:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32995:42:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 5244, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "32960:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32960:78:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5250, - "nodeType": "ExpressionStatement", - "src": "32960:78:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5255, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "33069:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5252, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "33054:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5251, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "33048:5:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$3334_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 5253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33048:11:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$3334", - "typeString": "contract IWETH" - } - }, - "id": 5254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 3333, - "src": "33048:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 5256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33048:31:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5257, - "nodeType": "ExpressionStatement", - "src": "33048:31:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5261, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5182, - "src": "33120:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5262, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "33124:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5258, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "33089:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1976_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 1975, - "src": "33089:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33089:45:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5264, - "nodeType": "ExpressionStatement", - "src": "33089:45:4" - } - ] - }, - "documentation": null, - "functionSelector": "791ac947", - "id": 5266, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5188, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5184, - "src": "32585:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5189, - "modifierName": { - "argumentTypes": null, - "id": 5187, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "32578:6:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "32578:16:4" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5186, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "32561:8:4" - }, - "parameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5175, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5266, - "src": "32397:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5174, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32397:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5177, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5266, - "src": "32420:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5176, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32420:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5180, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5266, - "src": "32447:23:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32447:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5179, - "length": null, - "nodeType": "ArrayTypeName", - "src": "32447:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5182, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5266, - "src": "32480:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5181, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32480:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5184, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5266, - "src": "32500:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5183, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32500:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32387:132:4" - }, - "returnParameters": { - "id": 5190, - "nodeType": "ParameterList", - "parameters": [], - "src": "32599:0:4" - }, - "scope": 5373, - "src": "32328:813:4", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 2238 - ], - "body": { - "id": 5285, - "nodeType": "Block", - "src": "33293:72:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5280, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5268, - "src": "33330:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5281, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5270, - "src": "33339:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5282, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5272, - "src": "33349:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5278, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "33310:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "quote", - "nodeType": "MemberAccess", - "referencedDeclaration": 2907, - "src": "33310:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 5283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33310:48:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5277, - "id": 5284, - "nodeType": "Return", - "src": "33303:55:4" - } - ] - }, - "documentation": null, - "functionSelector": "ad615dec", - "id": 5286, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "quote", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5274, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "33261:8:4" - }, - "parameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5268, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5286, - "src": "33197:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5267, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33197:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5270, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5286, - "src": "33211:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5269, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33211:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5272, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5286, - "src": "33226:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33226:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33196:44:4" - }, - "returnParameters": { - "id": 5277, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5276, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5286, - "src": "33279:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5275, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33279:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33278:14:4" - }, - "scope": 5373, - "src": "33182:183:4", - "stateMutability": "pure", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 2251 - ], - "body": { - "id": 5308, - "nodeType": "Block", - "src": "33553:92:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5302, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5288, - "src": "33597:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5303, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5290, - "src": "33607:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5304, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5292, - "src": "33618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5305, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5294, - "src": "33630:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5300, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "33570:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 2975, - "src": "33570:26:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33570:68:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5299, - "id": 5307, - "nodeType": "Return", - "src": "33563:75:4" - } - ] - }, - "documentation": null, - "functionSelector": "52707d8c", - "id": 5309, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountOut", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5296, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "33507:8:4" - }, - "parameters": { - "id": 5295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5288, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5309, - "src": "33393:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5287, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33393:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5290, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5309, - "src": "33408:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5289, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33408:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5292, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5309, - "src": "33424:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5291, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33424:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5294, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5309, - "src": "33441:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5293, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33441:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33392:62:4" - }, - "returnParameters": { - "id": 5299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5298, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5309, - "src": "33533:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33533:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33532:16:4" - }, - "scope": 5373, - "src": "33371:274:4", - "stateMutability": "pure", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 2264 - ], - "body": { - "id": 5331, - "nodeType": "Block", - "src": "33832:92:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5325, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5311, - "src": "33875:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5326, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "33886:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5327, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5315, - "src": "33897:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5328, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5317, - "src": "33909:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5323, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "33849:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 3043, - "src": "33849:25:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 5329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33849:68:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5322, - "id": 5330, - "nodeType": "Return", - "src": "33842:75:4" - } - ] - }, - "documentation": null, - "functionSelector": "571fd012", - "id": 5332, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountIn", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5319, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "33787:8:4" - }, - "parameters": { - "id": 5318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5311, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5332, - "src": "33672:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5310, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33672:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5313, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5332, - "src": "33688:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33688:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5315, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5332, - "src": "33704:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5314, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33704:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5317, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5332, - "src": "33721:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5316, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33721:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33671:63:4" - }, - "returnParameters": { - "id": 5322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5321, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5332, - "src": "33813:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5320, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33813:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33812:15:4" - }, - "scope": 5373, - "src": "33651:273:4", - "stateMutability": "pure", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 2275 - ], - "body": { - "id": 5351, - "nodeType": "Block", - "src": "34096:76:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5346, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "34141:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5347, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5334, - "src": "34150:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5348, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5337, - "src": "34160:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 5344, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "34113:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 3135, - "src": "34113:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 5349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34113:52:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 5343, - "id": 5350, - "nodeType": "Return", - "src": "34106:59:4" - } - ] - }, - "documentation": null, - "functionSelector": "d06ca61f", - "id": 5352, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsOut", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5339, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "34043:8:4" - }, - "parameters": { - "id": 5338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5334, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5352, - "src": "33953:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5333, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33953:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5337, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5352, - "src": "33968:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 5335, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33968:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5336, - "length": null, - "nodeType": "ArrayTypeName", - "src": "33968:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33952:38:4" - }, - "returnParameters": { - "id": 5343, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5342, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5352, - "src": "34069:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 5340, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34069:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5341, - "length": null, - "nodeType": "ArrayTypeName", - "src": "34069:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34068:23:4" - }, - "scope": 5373, - "src": "33930:242:4", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 2286 - ], - "body": { - "id": 5371, - "nodeType": "Block", - "src": "34344:76:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5366, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "34388:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5367, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5354, - "src": "34397:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5368, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5357, - "src": "34408:4:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 5364, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3232, - "src": "34361:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$3232_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 3231, - "src": "34361:26:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 5369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34361:52:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 5363, - "id": 5370, - "nodeType": "Return", - "src": "34354:59:4" - } - ] - }, - "documentation": null, - "functionSelector": "1f00ca74", - "id": 5372, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsIn", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5359, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "34291:8:4" - }, - "parameters": { - "id": 5358, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5354, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5372, - "src": "34200:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5353, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34200:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5357, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5372, - "src": "34216:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 5355, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34216:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5356, - "length": null, - "nodeType": "ArrayTypeName", - "src": "34216:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34199:39:4" - }, - "returnParameters": { - "id": 5363, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5362, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5372, - "src": "34317:21:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 5360, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34317:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5361, - "length": null, - "nodeType": "ArrayTypeName", - "src": "34317:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34316:23:4" - }, - "scope": 5373, - "src": "34178:242:4", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - } - ], - "scope": 5374, - "src": "16462:17960:4" - } - ], - "src": "63:34360:4" - } - }, - "contracts/DXswapRouter.sol": { - "id": 5, - "AST": { - "absolutePath": "contracts/DXswapRouter.sol", - "exportedSymbols": { - "DXswapRouter": [ - 7420 - ] - }, - "id": 7421, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5375, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapFactory.sol", - "file": "@swapr/core/contracts/interfaces/IDXswapFactory.sol", - "id": 5376, - "nodeType": "ImportDirective", - "scope": 7421, - "sourceUnit": 85, - "src": "25:61:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/TransferHelper.sol", - "file": "./libraries/TransferHelper.sol", - "id": 5377, - "nodeType": "ImportDirective", - "scope": 7421, - "sourceUnit": 12528, - "src": "88:40:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IDXswapRouter.sol", - "file": "./interfaces/IDXswapRouter.sol", - "id": 5378, - "nodeType": "ImportDirective", - "scope": 7421, - "sourceUnit": 10760, - "src": "129:40:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/DXswapLibrary.sol", - "file": "./libraries/DXswapLibrary.sol", - "id": 5379, - "nodeType": "ImportDirective", - "scope": 7421, - "sourceUnit": 11621, - "src": "170:39:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/SafeMath.sol", - "file": "./libraries/SafeMath.sol", - "id": 5380, - "nodeType": "ImportDirective", - "scope": 7421, - "sourceUnit": 12368, - "src": "210:34:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IERC20.sol", - "file": "./interfaces/IERC20.sol", - "id": 5381, - "nodeType": "ImportDirective", - "scope": 7421, - "sourceUnit": 10844, - "src": "245:33:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IWETH.sol", - "file": "./interfaces/IWETH.sol", - "id": 5382, - "nodeType": "ImportDirective", - "scope": 7421, - "sourceUnit": 10880, - "src": "279:32:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5383, - "name": "IDXswapRouter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10759, - "src": "338:13:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 5384, - "nodeType": "InheritanceSpecifier", - "src": "338:13:5" - } - ], - "contractDependencies": [ - 10759 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 7420, - "linearizedBaseContracts": [ - 7420, - 10759 - ], - "name": "DXswapRouter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 5387, - "libraryName": { - "contractScope": null, - "id": 5385, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12367, - "src": "364:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$12367", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "358:24:5", - "typeName": { - "id": 5386, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "377:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "baseFunctions": [ - 10372 - ], - "constant": false, - "functionSelector": "c45a0155", - "id": 5390, - "mutability": "immutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": { - "id": 5389, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "413:8:5" - }, - "scope": 7420, - "src": "388:41:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "388:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "baseFunctions": [ - 10377 - ], - "constant": false, - "functionSelector": "ad5c4648", - "id": 5393, - "mutability": "immutable", - "name": "WETH", - "nodeType": "VariableDeclaration", - "overrides": { - "id": 5392, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "460:8:5" - }, - "scope": 7420, - "src": "435:38:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5391, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "435:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5406, - "nodeType": "Block", - "src": "511:89:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5398, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5395, - "src": "529:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5399, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "541:5:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "541:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "529:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a2045585049524544", - "id": 5402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "558:23:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e8aa169b1a2ff802bfc300bca130c1f206538938d88e8a2dbf5501c4bb4241cf", - "typeString": "literal_string \"DXswapRouter: EXPIRED\"" - }, - "value": "DXswapRouter: EXPIRED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e8aa169b1a2ff802bfc300bca130c1f206538938d88e8a2dbf5501c4bb4241cf", - "typeString": "literal_string \"DXswapRouter: EXPIRED\"" - } - ], - "id": 5397, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "521:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "521:61:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5404, - "nodeType": "ExpressionStatement", - "src": "521:61:5" - }, - { - "id": 5405, - "nodeType": "PlaceholderStatement", - "src": "592:1:5" - } - ] - }, - "documentation": null, - "id": 5407, - "name": "ensure", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 5396, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5395, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5407, - "src": "496:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5394, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "496:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "495:15:5" - }, - "src": "480:120:5", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5422, - "nodeType": "Block", - "src": "658:57:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5414, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "668:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5415, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5409, - "src": "678:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "668:18:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5417, - "nodeType": "ExpressionStatement", - "src": "668:18:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 5420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5418, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "696:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5419, - "name": "_WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5411, - "src": "703:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "696:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5421, - "nodeType": "ExpressionStatement", - "src": "696:12:5" - } - ] - }, - "documentation": null, - "id": 5423, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 5412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5409, - "mutability": "mutable", - "name": "_factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5423, - "src": "618:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5408, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "618:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5411, - "mutability": "mutable", - "name": "_WETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5423, - "src": "636:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5410, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "636:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "617:33:5" - }, - "returnParameters": { - "id": 5413, - "nodeType": "ParameterList", - "parameters": [], - "src": "658:0:5" - }, - "scope": 7420, - "src": "606:109:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 5433, - "nodeType": "Block", - "src": "748:98:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5427, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "765:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "765:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5429, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "779:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "765:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5426, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "758:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "758:26:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5432, - "nodeType": "ExpressionStatement", - "src": "758:26:5" - } - ] - }, - "documentation": null, - "id": 5434, - "implemented": true, - "kind": "receive", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [], - "src": "728:2:5" - }, - "returnParameters": { - "id": 5425, - "nodeType": "ParameterList", - "parameters": [], - "src": "748:0:5" - }, - "scope": 7420, - "src": "721:125:5", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 5564, - "nodeType": "Block", - "src": "1122:1103:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5457, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5436, - "src": "1219:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5458, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5438, - "src": "1227:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5454, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "1202:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5453, - "name": "IDXswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "1187:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapFactory_$84_$", - "typeString": "type(contract IDXswapFactory)" - } - }, - "id": 5455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1187:23:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapFactory_$84", - "typeString": "contract IDXswapFactory" - } - }, - "id": 5456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getPair", - "nodeType": "MemberAccess", - "referencedDeclaration": 40, - "src": "1187:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address) view external returns (address)" - } - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1187:47:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1246:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1238:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5460, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1238:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 5463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1238:10:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1187:61:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5474, - "nodeType": "IfStatement", - "src": "1183:142:5", - "trueBody": { - "id": 5473, - "nodeType": "Block", - "src": "1250:75:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5436, - "src": "1299:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5438, - "src": "1307:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5466, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "1279:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5465, - "name": "IDXswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "1264:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapFactory_$84_$", - "typeString": "type(contract IDXswapFactory)" - } - }, - "id": 5467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1264:23:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapFactory_$84", - "typeString": "contract IDXswapFactory" - } - }, - "id": 5468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createPair", - "nodeType": "MemberAccess", - "referencedDeclaration": 61, - "src": "1264:34:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address) external returns (address)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1264:50:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "1264:50:5" - } - ] - } - }, - { - "assignments": [ - 5476, - 5478 - ], - "declarations": [ - { - "constant": false, - "id": 5476, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5564, - "src": "1335:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5475, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1335:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5478, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5564, - "src": "1350:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5477, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1350:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5485, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5481, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "1393:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5482, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5436, - "src": "1402:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5483, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5438, - "src": "1410:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5479, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "1367:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 11225, - "src": "1367:25:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256,uint256)" - } - }, - "id": 5484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1367:50:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1334:83:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5486, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5476, - "src": "1431:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1443:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1431:13:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5489, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5478, - "src": "1448:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1460:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1448:13:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1431:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5562, - "nodeType": "Block", - "src": "1547:672:5", - "statements": [ - { - "assignments": [ - 5503 - ], - "declarations": [ - { - "constant": false, - "id": 5503, - "mutability": "mutable", - "name": "amountBOptimal", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5562, - "src": "1561:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5502, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1561:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5510, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5506, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5440, - "src": "1603:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5507, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5476, - "src": "1619:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5508, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5478, - "src": "1629:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5504, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "1583:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "quote", - "nodeType": "MemberAccess", - "referencedDeclaration": 11295, - "src": "1583:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 5509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1583:55:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1561:77:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5511, - "name": "amountBOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5503, - "src": "1656:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 5512, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5442, - "src": "1674:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1656:32:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5560, - "nodeType": "Block", - "src": "1876:333:5", - "statements": [ - { - "assignments": [ - 5531 - ], - "declarations": [ - { - "constant": false, - "id": 5531, - "mutability": "mutable", - "name": "amountAOptimal", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5560, - "src": "1894:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1894:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5538, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5534, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5442, - "src": "1936:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5535, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5478, - "src": "1952:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5536, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5476, - "src": "1962:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5532, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "1916:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "quote", - "nodeType": "MemberAccess", - "referencedDeclaration": 11295, - "src": "1916:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 5537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1916:55:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1894:77:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5540, - "name": "amountAOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5531, - "src": "1996:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 5541, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5440, - "src": "2014:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1996:32:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5539, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "1989:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1989:40:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5544, - "nodeType": "ExpressionStatement", - "src": "1989:40:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5546, - "name": "amountAOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5531, - "src": "2055:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5547, - "name": "amountAMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5444, - "src": "2073:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2055:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e54", - "id": 5549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2085:37:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d67922d8d1b1ee33fa1f85a08f43e1a4a207515581f5845bf7d6bef9c165ae8", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_A_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_A_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d67922d8d1b1ee33fa1f85a08f43e1a4a207515581f5845bf7d6bef9c165ae8", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_A_AMOUNT\"" - } - ], - "id": 5545, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2047:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2047:76:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5551, - "nodeType": "ExpressionStatement", - "src": "2047:76:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5552, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5449, - "src": "2142:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5553, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5451, - "src": "2151:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5554, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "2141:18:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5555, - "name": "amountAOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5531, - "src": "2163:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5556, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5442, - "src": "2179:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5557, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2162:32:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "2141:53:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5559, - "nodeType": "ExpressionStatement", - "src": "2141:53:5" - } - ] - }, - "id": 5561, - "nodeType": "IfStatement", - "src": "1652:557:5", - "trueBody": { - "id": 5529, - "nodeType": "Block", - "src": "1690:180:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5515, - "name": "amountBOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5503, - "src": "1716:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5516, - "name": "amountBMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5446, - "src": "1734:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1716:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e54", - "id": 5518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1746:37:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d667c08b6dee8d914a27b5221c0b76a88002adc554aba65ad576a4b2cd5507ba", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_B_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_B_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d667c08b6dee8d914a27b5221c0b76a88002adc554aba65ad576a4b2cd5507ba", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_B_AMOUNT\"" - } - ], - "id": 5514, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1708:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1708:76:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5520, - "nodeType": "ExpressionStatement", - "src": "1708:76:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 5527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5521, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5449, - "src": "1803:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5451, - "src": "1812:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5523, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "1802:18:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5524, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5440, - "src": "1824:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5525, - "name": "amountBOptimal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5503, - "src": "1840:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5526, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1823:32:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "1802:53:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5528, - "nodeType": "ExpressionStatement", - "src": "1802:53:5" - } - ] - } - } - ] - }, - "id": 5563, - "nodeType": "IfStatement", - "src": "1427:792:5", - "trueBody": { - "id": 5501, - "nodeType": "Block", - "src": "1463:78:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5493, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5449, - "src": "1478:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5494, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5451, - "src": "1487:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "1477:18:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5496, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5440, - "src": "1499:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5497, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5442, - "src": "1515:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5498, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1498:32:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "1477:53:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5500, - "nodeType": "ExpressionStatement", - "src": "1477:53:5" - } - ] - } - } - ] - }, - "documentation": null, - "id": 5565, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addLiquidity", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 5447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5436, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5565, - "src": "915:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5435, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "915:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5438, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5565, - "src": "939:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5437, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "939:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5440, - "mutability": "mutable", - "name": "amountADesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5565, - "src": "963:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5439, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "963:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5442, - "mutability": "mutable", - "name": "amountBDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5565, - "src": "992:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5441, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "992:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5444, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5565, - "src": "1021:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5443, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1021:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5446, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5565, - "src": "1046:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1046:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "905:162:5" - }, - "returnParameters": { - "id": 5452, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5449, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5565, - "src": "1094:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5448, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1094:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5451, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5565, - "src": "1108:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5450, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1108:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1093:28:5" - }, - "scope": 7420, - "src": "883:1342:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "baseFunctions": [ - 10402 - ], - "body": { - "id": 5645, - "nodeType": "Block", - "src": "2553:394:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5594, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5588, - "src": "2564:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5595, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5590, - "src": "2573:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5596, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "2563:18:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5598, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "2598:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5599, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "2606:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5600, - "name": "amountADesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "2614:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5601, - "name": "amountBDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5573, - "src": "2630:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5602, - "name": "amountAMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5575, - "src": "2646:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5603, - "name": "amountBMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "2658:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5597, - "name": "_addLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5565, - "src": "2584:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" - } - }, - "id": 5604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2584:85:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "2563:106:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5606, - "nodeType": "ExpressionStatement", - "src": "2563:106:5" - }, - { - "assignments": [ - 5608 - ], - "declarations": [ - { - "constant": false, - "id": 5608, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5645, - "src": "2679:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2679:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5615, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5611, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "2716:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5612, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "2725:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5613, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "2733:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5609, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "2694:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "2694:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 5614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2694:46:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2679:61:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5619, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "2782:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5620, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2790:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2790:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5622, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5608, - "src": "2802:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5623, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5588, - "src": "2808:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5616, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "2750:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 5618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "2750:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 5624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2750:66:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5625, - "nodeType": "ExpressionStatement", - "src": "2750:66:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5629, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "2858:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5630, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2866:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2866:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5632, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5608, - "src": "2878:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5633, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5590, - "src": "2884:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5626, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "2826:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 5628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "2826:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2826:66:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5635, - "nodeType": "ExpressionStatement", - "src": "2826:66:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5636, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5592, - "src": "2902:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5641, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5579, - "src": "2937:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5638, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5608, - "src": "2926:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5637, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "2914:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 5639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2914:17:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "2914:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2914:26:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2902:38:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5644, - "nodeType": "ExpressionStatement", - "src": "2902:38:5" - } - ] - }, - "documentation": null, - "functionSelector": "e8e33700", - "id": 5646, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5585, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5581, - "src": "2490:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5586, - "modifierName": { - "argumentTypes": null, - "id": 5584, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "2483:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2483:16:5" - } - ], - "name": "addLiquidity", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5583, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2474:8:5" - }, - "parameters": { - "id": 5582, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5567, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2261:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2261:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5569, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2285:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2285:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "mutability": "mutable", - "name": "amountADesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2309:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2309:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5573, - "mutability": "mutable", - "name": "amountBDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2338:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5572, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2338:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5575, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2367:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5574, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2367:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5577, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2392:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5576, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2392:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5579, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2417:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5578, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2417:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5581, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2437:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5580, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2437:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2251:205:5" - }, - "returnParameters": { - "id": 5593, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5588, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2509:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5587, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2509:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5590, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2523:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5589, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2523:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5592, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5646, - "src": "2537:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5591, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2537:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2508:44:5" - }, - "scope": 7420, - "src": "2230:717:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10423 - ], - "body": { - "id": 5747, - "nodeType": "Block", - "src": "3248:649:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5671, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5665, - "src": "3259:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5672, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5667, - "src": "3272:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5673, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "3258:24:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5675, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5648, - "src": "3312:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5676, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "3331:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5677, - "name": "amountTokenDesired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5650, - "src": "3349:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5678, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3381:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3381:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5680, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5652, - "src": "3404:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5681, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5654, - "src": "3432:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5674, - "name": "_addLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5565, - "src": "3285:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" - } - }, - "id": 5682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3285:169:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "3258:196:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5684, - "nodeType": "ExpressionStatement", - "src": "3258:196:5" - }, - { - "assignments": [ - 5686 - ], - "declarations": [ - { - "constant": false, - "id": 5686, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5747, - "src": "3464:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3464:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5693, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5689, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "3501:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5690, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5648, - "src": "3510:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5691, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "3517:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5687, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "3479:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "3479:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 5692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3479:43:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3464:58:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5697, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5648, - "src": "3564:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5698, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3571:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3571:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5700, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5686, - "src": "3583:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5701, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5665, - "src": "3589:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5694, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "3532:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 5696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "3532:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3532:69:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5703, - "nodeType": "ExpressionStatement", - "src": "3532:69:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5705, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "3617:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5704, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "3611:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 5706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3611:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 5707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10848, - "src": "3611:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 5709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "id": 5708, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5667, - "src": "3638:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "3611:37:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 5710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3611:39:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5711, - "nodeType": "ExpressionStatement", - "src": "3611:39:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5717, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5686, - "src": "3688:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5718, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5667, - "src": "3694:9:5", - "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": 5714, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "3673:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5713, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "3667:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 5715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3667:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 5716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10857, - "src": "3667:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3667:37:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5712, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "3660:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3660:45:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5721, - "nodeType": "ExpressionStatement", - "src": "3660:45:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 5729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5722, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5669, - "src": "3715:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5727, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5656, - "src": "3750:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5724, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5686, - "src": "3739:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5723, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "3727:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 5725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3727:17:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 5726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "3727:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 5728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3727:26:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3715:38:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5730, - "nodeType": "ExpressionStatement", - "src": "3715:38:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5731, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3802:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3802:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 5733, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5667, - "src": "3814:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3802:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5746, - "nodeType": "IfStatement", - "src": "3798:92:5", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3856:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3856:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5740, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3868:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3868:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 5742, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5667, - "src": "3880:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3868:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5735, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "3825:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 5737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "3825:30:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3825:65:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5745, - "nodeType": "ExpressionStatement", - "src": "3825:65:5" - } - } - ] - }, - "documentation": null, - "functionSelector": "f305d719", - "id": 5748, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5662, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "3179:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5663, - "modifierName": { - "argumentTypes": null, - "id": 5661, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "3172:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3172:16:5" - } - ], - "name": "addLiquidityETH", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5660, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3155:8:5" - }, - "parameters": { - "id": 5659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5648, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5748, - "src": "2986:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5647, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2986:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5650, - "mutability": "mutable", - "name": "amountTokenDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5748, - "src": "3009:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5649, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3009:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5652, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5748, - "src": "3042:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5651, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3042:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5654, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5748, - "src": "3071:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5653, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3071:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5656, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5748, - "src": "3098:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5655, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3098:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5658, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5748, - "src": "3118:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5657, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3118:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2976:161:5" - }, - "returnParameters": { - "id": 5670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5665, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5748, - "src": "3198:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5664, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3198:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5667, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5748, - "src": "3216:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3216:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5669, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5748, - "src": "3232:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5668, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3232:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3197:50:5" - }, - "scope": 7420, - "src": "2952:945:5", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10444 - ], - "body": { - "id": 5840, - "nodeType": "Block", - "src": "4211:557:5", - "statements": [ - { - "assignments": [ - 5774 - ], - "declarations": [ - { - "constant": false, - "id": 5774, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5840, - "src": "4221:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5773, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4221:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5781, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5777, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "4258:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5778, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "4267:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5779, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5752, - "src": "4275:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5775, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "4236:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "4236:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 5780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4236:46:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4221:61:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4323:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4323:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5788, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5774, - "src": "4335:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5789, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5754, - "src": "4341:9:5", - "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, - "id": 5783, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5774, - "src": "4304:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5782, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "4292:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 5784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4292:17:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 5785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 167, - "src": "4292:30:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 5790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4292:59:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5791, - "nodeType": "ExpressionStatement", - "src": "4292:59:5" - }, - { - "assignments": [ - 5793, - 5795 - ], - "declarations": [ - { - "constant": false, - "id": 5793, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5840, - "src": "4388:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5792, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4388:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5795, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5840, - "src": "4402:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5794, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4402:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5802, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5800, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5760, - "src": "4441:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5797, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5774, - "src": "4430:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5796, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "4418:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 5798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4418:17:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 5799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 304, - "src": "4418:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address) external returns (uint256,uint256)" - } - }, - "id": 5801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4418:26:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4387:57:5" - }, - { - "assignments": [ - 5804, - null - ], - "declarations": [ - { - "constant": false, - "id": 5804, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5840, - "src": "4455:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5803, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4455:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 5810, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5807, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "4499:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5808, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5752, - "src": "4507:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5805, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "4474:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sortTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11130, - "src": "4474:24:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 5809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4474:40:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4454:60:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 5824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5811, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5769, - "src": "4525:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5812, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5771, - "src": "4534:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5813, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "4524:18:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5814, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "4545:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5815, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5804, - "src": "4555:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4545:16:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5820, - "name": "amount1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5795, - "src": "4586:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5821, - "name": "amount0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5793, - "src": "4595:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5822, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4585:18:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 5823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "4545:58:5", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5817, - "name": "amount0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5793, - "src": "4565:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5818, - "name": "amount1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5795, - "src": "4574:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5819, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4564:18:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "4524:79:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5825, - "nodeType": "ExpressionStatement", - "src": "4524:79:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5827, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5769, - "src": "4621:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5828, - "name": "amountAMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5756, - "src": "4632:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4621:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e54", - "id": 5830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4644:37:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d67922d8d1b1ee33fa1f85a08f43e1a4a207515581f5845bf7d6bef9c165ae8", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_A_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_A_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d67922d8d1b1ee33fa1f85a08f43e1a4a207515581f5845bf7d6bef9c165ae8", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_A_AMOUNT\"" - } - ], - "id": 5826, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4613:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4613:69:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5832, - "nodeType": "ExpressionStatement", - "src": "4613:69:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5834, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5771, - "src": "4700:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5835, - "name": "amountBMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5758, - "src": "4711:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4700:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e54", - "id": 5837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4723:37:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d667c08b6dee8d914a27b5221c0b76a88002adc554aba65ad576a4b2cd5507ba", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_B_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_B_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d667c08b6dee8d914a27b5221c0b76a88002adc554aba65ad576a4b2cd5507ba", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_B_AMOUNT\"" - } - ], - "id": 5833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4692:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4692:69:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5839, - "nodeType": "ExpressionStatement", - "src": "4692:69:5" - } - ] - }, - "documentation": null, - "functionSelector": "baa2abde", - "id": 5841, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5766, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5762, - "src": "4164:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5767, - "modifierName": { - "argumentTypes": null, - "id": 5765, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "4157:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4157:16:5" - } - ], - "name": "removeLiquidity", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5764, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4148:8:5" - }, - "parameters": { - "id": 5763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5750, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5841, - "src": "3971:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5749, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3971:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5752, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5841, - "src": "3995:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3995:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5754, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5841, - "src": "4019:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5753, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4019:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5756, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5841, - "src": "4043:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4043:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5758, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5841, - "src": "4068:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5757, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4068:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5760, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5841, - "src": "4093:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5759, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4093:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5762, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5841, - "src": "4113:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5761, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4113:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3961:171:5" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5769, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5841, - "src": "4183:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5768, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4183:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5771, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5841, - "src": "4197:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5770, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4197:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4182:28:5" - }, - "scope": 7420, - "src": "3937:831:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 10463 - ], - "body": { - "id": 5903, - "nodeType": "Block", - "src": "5037:389:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5864, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5860, - "src": "5048:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5865, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5862, - "src": "5061:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5866, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "5047:24:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5868, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5843, - "src": "5103:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5869, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "5122:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5870, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5845, - "src": "5140:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5871, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5847, - "src": "5163:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5872, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5849, - "src": "5191:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5875, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "5225:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 5874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5217:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5873, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5217:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 5876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5217:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5877, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5853, - "src": "5244:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5867, - "name": "removeLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5841, - "src": "5074:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)" - } - }, - "id": 5878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5074:188:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "5047:215:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5880, - "nodeType": "ExpressionStatement", - "src": "5047:215:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5884, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5843, - "src": "5300:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5885, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5851, - "src": "5307:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5886, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5860, - "src": "5311:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5881, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "5272:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 5883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 12455, - "src": "5272:27:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5272:51:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5888, - "nodeType": "ExpressionStatement", - "src": "5272:51:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5893, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5862, - "src": "5354:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5890, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "5339:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5889, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "5333:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 5891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5333:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 5892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 10862, - "src": "5333:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 5894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5333:31:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5895, - "nodeType": "ExpressionStatement", - "src": "5333:31:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5899, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5851, - "src": "5405:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5900, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5862, - "src": "5409:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5896, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "5374:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 5898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "5374:30:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5374:45:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5902, - "nodeType": "ExpressionStatement", - "src": "5374:45:5" - } - ] - }, - "documentation": null, - "functionSelector": "02751cec", - "id": 5904, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5857, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5853, - "src": "4984:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5858, - "modifierName": { - "argumentTypes": null, - "id": 5856, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "4977:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4977:16:5" - } - ], - "name": "removeLiquidityETH", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5855, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4968:8:5" - }, - "parameters": { - "id": 5854, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5843, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5904, - "src": "4810:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5842, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4810:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5845, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5904, - "src": "4833:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5844, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4833:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5847, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5904, - "src": "4857:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5846, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4857:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5849, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5904, - "src": "4886:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5848, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4886:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5851, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5904, - "src": "4913:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4913:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5853, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5904, - "src": "4933:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5852, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4933:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4800:152:5" - }, - "returnParameters": { - "id": 5863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5860, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5904, - "src": "5003:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5859, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5003:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5862, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5904, - "src": "5021:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5861, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5021:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5002:34:5" - }, - "scope": 7420, - "src": "4773:653:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 10492 - ], - "body": { - "id": 5985, - "nodeType": "Block", - "src": "5756:332:5", - "statements": [ - { - "assignments": [ - 5935 - ], - "declarations": [ - { - "constant": false, - "id": 5935, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5985, - "src": "5766:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5934, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5766:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5942, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5938, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "5803:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5939, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "5812:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5940, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5908, - "src": "5820:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5936, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "5781:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 5937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "5781:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 5941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5781:46:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5766:61:5" - }, - { - "assignments": [ - 5944 - ], - "declarations": [ - { - "constant": false, - "id": 5944, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5985, - "src": "5837:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5943, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5837:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5953, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 5945, - "name": "approveMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5920, - "src": "5850:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 5951, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "5874:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5850:33:5", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "5868:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5948, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5869:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - ], - "id": 5947, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5863:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 5946, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5863:4:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 5950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5863:8:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5837:46:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5958, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5918:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5918:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5962, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "5938:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 5961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5930:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5960, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5930:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 5963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5930:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5964, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5944, - "src": "5945:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5965, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5918, - "src": "5952:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5966, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5922, - "src": "5962:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 5967, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5924, - "src": "5965:1:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 5968, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5926, - "src": "5968:1:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5955, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5935, - "src": "5905:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5954, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "5893:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 5956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5893:17:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 5957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "permit", - "nodeType": "MemberAccess", - "referencedDeclaration": 201, - "src": "5893:24:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external" - } - }, - "id": 5969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5893:77:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5970, - "nodeType": "ExpressionStatement", - "src": "5893:77:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 5983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 5971, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5930, - "src": "5981:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5972, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5932, - "src": "5990:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5973, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "5980:18:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5975, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5906, - "src": "6017:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5976, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5908, - "src": "6025:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5977, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5910, - "src": "6033:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5978, - "name": "amountAMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5912, - "src": "6044:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5979, - "name": "amountBMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5914, - "src": "6056:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5980, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5916, - "src": "6068:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5981, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5918, - "src": "6072:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5974, - "name": "removeLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5841, - "src": "6001:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)" - } - }, - "id": 5982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6001:80:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "5980:101:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5984, - "nodeType": "ExpressionStatement", - "src": "5980:101:5" - } - ] - }, - "documentation": null, - "functionSelector": "2195995c", - "id": 5986, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityWithPermit", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 5928, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "5710:8:5" - }, - "parameters": { - "id": 5927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5906, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5475:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5905, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5475:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5908, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5499:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5907, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5499:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5910, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5523:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5909, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5523:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5912, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5547:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5911, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5547:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5914, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5572:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5913, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5572:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5916, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5597:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5915, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5597:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5918, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5617:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5917, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5617:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5920, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5640:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5919, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5640:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5922, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5657:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5921, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "5657:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5924, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5666:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5923, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5666:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5926, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5677:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5925, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5677:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5465:227:5" - }, - "returnParameters": { - "id": 5933, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5930, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5728:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5929, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5728:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5932, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 5986, - "src": "5742:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5931, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5742:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5727:28:5" - }, - "scope": 7420, - "src": "5431:657:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10519 - ], - "body": { - "id": 6064, - "nodeType": "Block", - "src": "6408:335:5", - "statements": [ - { - "assignments": [ - 6015 - ], - "declarations": [ - { - "constant": false, - "id": 6015, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6064, - "src": "6418:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6418:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6022, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6018, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "6455:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6019, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5988, - "src": "6464:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6020, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "6471:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6016, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "6433:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "6433:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6433:43:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6418:58:5" - }, - { - "assignments": [ - 6024 - ], - "declarations": [ - { - "constant": false, - "id": 6024, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6064, - "src": "6486:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6023, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6486:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6033, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 6025, - "name": "approveMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6000, - "src": "6499:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 6031, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5990, - "src": "6523:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6499:33:5", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "6517:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6518:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - ], - "id": 6027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6512:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6026, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6512:4:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6512:8:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6486:46:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6038, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6567:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6567:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6042, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "6587:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 6041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6579:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6040, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6579:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6579:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 6044, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6024, - "src": "6594:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6045, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "6601:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6046, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6002, - "src": "6611:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 6047, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6004, - "src": "6614:1:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 6048, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6006, - "src": "6617:1:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6035, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6015, - "src": "6554:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6034, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "6542:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 6036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6542:17:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 6037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "permit", - "nodeType": "MemberAccess", - "referencedDeclaration": 201, - "src": "6542:24:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external" - } - }, - "id": 6049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6542:77:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6050, - "nodeType": "ExpressionStatement", - "src": "6542:77:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 6062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 6051, - "name": "amountToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6010, - "src": "6630:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6052, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6012, - "src": "6643:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6053, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "6629:24:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6055, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5988, - "src": "6675:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6056, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5990, - "src": "6682:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6057, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5992, - "src": "6693:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6058, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5994, - "src": "6709:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6059, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5996, - "src": "6723:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6060, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "6727:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6054, - "name": "removeLiquidityETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5904, - "src": "6656:18:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)" - } - }, - "id": 6061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6656:80:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "6629:107:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6063, - "nodeType": "ExpressionStatement", - "src": "6629:107:5" - } - ] - }, - "documentation": null, - "functionSelector": "ded9382a", - "id": 6065, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHWithPermit", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 6008, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "6356:8:5" - }, - "parameters": { - "id": 6007, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5988, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6140:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5987, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6140:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5990, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6163:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5989, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6163:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5992, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6187:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5991, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6187:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5994, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6216:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5993, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6216:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5996, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6243:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5995, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6243:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5998, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6263:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5997, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6263:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6000, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6286:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5999, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6286:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6002, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6303:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6001, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "6303:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6004, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6312:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6003, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6312:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6006, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6323:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6005, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6323:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6130:208:5" - }, - "returnParameters": { - "id": 6013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6010, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6374:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6009, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6374:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6012, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6065, - "src": "6392:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6011, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6392:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6373:34:5" - }, - "scope": 7420, - "src": "6093:650:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10693 - ], - "body": { - "id": 6132, - "nodeType": "Block", - "src": "7094:405:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - null, - { - "argumentTypes": null, - "id": 6086, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6084, - "src": "7107:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6087, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "7104:13:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$_t_uint256_$", - "typeString": "tuple(,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6089, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6067, - "src": "7149:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6090, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "7168:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6091, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6069, - "src": "7186:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6092, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "7209:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6093, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6073, - "src": "7237:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6096, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7271:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 6095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7263:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6094, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7263:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7263:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 6098, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6077, - "src": "7290:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6088, - "name": "removeLiquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5841, - "src": "7120:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)" - } - }, - "id": 6099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7120:188:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "7104:204:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6101, - "nodeType": "ExpressionStatement", - "src": "7104:204:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6105, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6067, - "src": "7346:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6106, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6075, - "src": "7353:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6113, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7389:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 6112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7381:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7381:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7381:13:5", - "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": 6108, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6067, - "src": "7364:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6107, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10843, - "src": "7357:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$10843_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7357:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$10843", - "typeString": "contract IERC20" - } - }, - "id": 6110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10804, - "src": "7357:23:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 6115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7357:38:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6102, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "7318:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 6104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 12455, - "src": "7318:27:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 6116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7318:78:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6117, - "nodeType": "ExpressionStatement", - "src": "7318:78:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6122, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6084, - "src": "7427:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6119, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "7412:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6118, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "7406:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 6120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7406:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 6121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 10862, - "src": "7406:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 6123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7406:31:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6124, - "nodeType": "ExpressionStatement", - "src": "7406:31:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6128, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6075, - "src": "7478:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6129, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6084, - "src": "7482:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6125, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "7447:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 6127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "7447:30:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 6130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7447:45:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6131, - "nodeType": "ExpressionStatement", - "src": "7447:45:5" - } - ] - }, - "documentation": null, - "functionSelector": "af2979eb", - "id": 6133, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 6081, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6077, - "src": "7059:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6082, - "modifierName": { - "argumentTypes": null, - "id": 6080, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "7052:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7052:16:5" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 6079, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "7043:8:5" - }, - "parameters": { - "id": 6078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6067, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6133, - "src": "6885:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6066, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6885:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6069, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6133, - "src": "6908:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6068, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6908:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6071, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6133, - "src": "6932:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6070, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6932:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6073, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6133, - "src": "6961:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6072, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6961:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6075, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6133, - "src": "6988:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6074, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6988:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6077, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6133, - "src": "7008:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6076, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7008:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6875:152:5" - }, - "returnParameters": { - "id": 6085, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6084, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6133, - "src": "7078:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6083, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7078:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7077:16:5" - }, - "scope": 7420, - "src": "6819:680:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 10718 - ], - "body": { - "id": 6207, - "nodeType": "Block", - "src": "7830:371:5", - "statements": [ - { - "assignments": [ - 6160 - ], - "declarations": [ - { - "constant": false, - "id": 6160, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6207, - "src": "7840:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6159, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7840:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6167, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6163, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "7877:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6164, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6135, - "src": "7886:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6165, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "7893:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6161, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "7855:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "7855:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7855:43:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7840:58:5" - }, - { - "assignments": [ - 6169 - ], - "declarations": [ - { - "constant": false, - "id": 6169, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6207, - "src": "7908:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6168, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7908:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6178, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 6170, - "name": "approveMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6147, - "src": "7921:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 6176, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6137, - "src": "7945:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7921:33:5", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7939:2:5", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7940:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - ], - "id": 6172, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7934:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6171, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7934:4:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7934:8:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7908:46:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6183, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7989:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7989:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6187, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "8009:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 6186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8001:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6185, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8001:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8001:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 6189, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6169, - "src": "8016:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6190, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6145, - "src": "8023:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6191, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6149, - "src": "8033:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 6192, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6151, - "src": "8036:1:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 6193, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6153, - "src": "8039:1:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6180, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6160, - "src": "7976:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6179, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "7964:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 6181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7964:17:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 6182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "permit", - "nodeType": "MemberAccess", - "referencedDeclaration": 201, - "src": "7964:24:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external" - } - }, - "id": 6194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7964:77:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6195, - "nodeType": "ExpressionStatement", - "src": "7964:77:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 6205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6196, - "name": "amountETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6157, - "src": "8051:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6198, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6135, - "src": "8124:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6199, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6137, - "src": "8131:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6200, - "name": "amountTokenMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6139, - "src": "8142:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6201, - "name": "amountETHMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6141, - "src": "8158:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6202, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6143, - "src": "8172:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6203, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6145, - "src": "8176:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6197, - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6133, - "src": "8063:47:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256) returns (uint256)" - } - }, - "id": 6204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8063:131:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8051:143:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6206, - "nodeType": "ExpressionStatement", - "src": "8051:143:5" - } - ] - }, - "documentation": null, - "functionSelector": "5b0d5984", - "id": 6208, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 6155, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "7796:8:5" - }, - "parameters": { - "id": 6154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6135, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7580:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6134, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7580:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6137, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7603:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6136, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7603:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6139, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7627:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7627:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6141, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7656:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6140, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7656:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6143, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7683:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7683:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6145, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7703:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6144, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7703:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6147, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7726:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6146, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7726:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6149, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7743:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6148, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "7743:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6151, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7752:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6150, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7752:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6153, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7763:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6152, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7763:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7570:208:5" - }, - "returnParameters": { - "id": 6158, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6157, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6208, - "src": "7814:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6156, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7814:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7813:16:5" - }, - "scope": 7420, - "src": "7504:697:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "body": { - "id": 6323, - "nodeType": "Block", - "src": "8399:621:5", - "statements": [ - { - "body": { - "id": 6321, - "nodeType": "Block", - "src": "8448:566:5", - "statements": [ - { - "assignments": [ - 6232, - 6234 - ], - "declarations": [ - { - "constant": false, - "id": 6232, - "mutability": "mutable", - "name": "input", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6321, - "src": "8463:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6231, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8463:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6234, - "mutability": "mutable", - "name": "output", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6321, - "src": "8478:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8478:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6244, - "initialValue": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6235, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "8497:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6237, - "indexExpression": { - "argumentTypes": null, - "id": 6236, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6220, - "src": "8502:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8497:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6238, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "8506:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6242, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6239, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6220, - "src": "8511:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8515:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8511:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8506:11:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 6243, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8496:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8462:56:5" - }, - { - "assignments": [ - 6246, - null - ], - "declarations": [ - { - "constant": false, - "id": 6246, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6321, - "src": "8533:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8533:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 6252, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6249, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6232, - "src": "8577:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6250, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6234, - "src": "8584:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6247, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "8552:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sortTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11130, - "src": "8552:24:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 6251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8552:39:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8532:59:5" - }, - { - "assignments": [ - 6254 - ], - "declarations": [ - { - "constant": false, - "id": 6254, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6321, - "src": "8605:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6253, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8605:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6260, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6255, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6211, - "src": "8622:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6259, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6256, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6220, - "src": "8630:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8634:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8630:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8622:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8605:31:5" - }, - { - "assignments": [ - 6262, - 6264 - ], - "declarations": [ - { - "constant": false, - "id": 6262, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6321, - "src": "8651:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6261, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8651:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6264, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6321, - "src": "8668:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6263, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8668:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6281, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6265, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6232, - "src": "8687:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 6266, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "8696:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8687:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 6274, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6254, - "src": "8729:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8745:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8740:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6275, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8740:4:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:7:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6279, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8728:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 6280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "8687:61:5", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8711:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8706:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6268, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8706:4:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8706:7:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6272, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6254, - "src": "8715:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6273, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8705:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8650:98:5" - }, - { - "assignments": [ - 6283 - ], - "declarations": [ - { - "constant": false, - "id": 6283, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6321, - "src": "8762:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8762:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6302, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6284, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6220, - "src": "8775:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6285, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "8779:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8779:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 6287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8793:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "8779:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8775:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 6300, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6216, - "src": "8851:3:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "8775:79:5", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6292, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "8819:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6293, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6234, - "src": "8828:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6294, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "8836:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6298, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6295, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6220, - "src": "8841:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 6296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8845:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "8841:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8836:11:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6290, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "8797:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "8797:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8797:51:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8762:92:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6312, - "name": "amount0Out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6262, - "src": "8949:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6313, - "name": "amount1Out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6264, - "src": "8961:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6314, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6283, - "src": "8973:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8987:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8977:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 6315, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8981:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 6318, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8977:12:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6306, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "8902:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6307, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6232, - "src": "8911:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6308, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6234, - "src": "8918:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6304, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "8880:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "8880:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8880:45:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6303, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "8868:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 6310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8868:58:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 6311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swap", - "nodeType": "MemberAccess", - "referencedDeclaration": 315, - "src": "8868:63:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,address,bytes memory) external" - } - }, - "id": 6319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8868:135:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6320, - "nodeType": "ExpressionStatement", - "src": "8868:135:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6222, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6220, - "src": "8422:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6223, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6214, - "src": "8426:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8426:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8440:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8426:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8422:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6322, - "initializationExpression": { - "assignments": [ - 6220 - ], - "declarations": [ - { - "constant": false, - "id": 6220, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6322, - "src": "8414:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6219, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8414:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6221, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8414:6:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 6229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8443:3:5", - "subExpression": { - "argumentTypes": null, - "id": 6228, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6220, - "src": "8443:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6230, - "nodeType": "ExpressionStatement", - "src": "8443:3:5" - }, - "nodeType": "ForStatement", - "src": "8409:605:5" - } - ] - }, - "documentation": null, - "id": 6324, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_swap", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 6217, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6211, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6324, - "src": "8323:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 6209, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8323:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6210, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8323:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6214, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6324, - "src": "8346:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8346:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6213, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8346:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6216, - "mutability": "mutable", - "name": "_to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6324, - "src": "8369:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8369:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8322:59:5" - }, - "returnParameters": { - "id": 6218, - "nodeType": "ParameterList", - "parameters": [], - "src": "8399:0:5" - }, - "scope": 7420, - "src": "8308:712:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "baseFunctions": [ - 10536 - ], - "body": { - "id": 6395, - "nodeType": "Block", - "src": "9266:365:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6345, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6343, - "src": "9276:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6348, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "9314:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6349, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6326, - "src": "9323:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6350, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6331, - "src": "9333:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 6346, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "9286:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 11523, - "src": "9286:27:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 6351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9286:52:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "9276:62:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6353, - "nodeType": "ExpressionStatement", - "src": "9276:62:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6355, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6343, - "src": "9356:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6360, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6356, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6343, - "src": "9364:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9364:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6358, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9381:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9364:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9356:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 6361, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6328, - "src": "9387:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9356:43:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 6363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9401:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 6354, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9348:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9348:96:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6365, - "nodeType": "ExpressionStatement", - "src": "9348:96:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6369, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6331, - "src": "9499:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6371, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9504:1:5", - "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": "9499:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6372, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9508:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9508:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6376, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "9542:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6377, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6331, - "src": "9551:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6379, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6378, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9556:1:5", - "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": "9551:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6380, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6331, - "src": "9560:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6382, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9565:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9560:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6374, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "9520:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "9520:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9520:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6384, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6343, - "src": "9570:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6386, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9578:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9570:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6366, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "9454:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 6368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "9454:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 6387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9454:136:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6388, - "nodeType": "ExpressionStatement", - "src": "9454:136:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6390, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6343, - "src": "9606:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 6391, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6331, - "src": "9615:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 6392, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6333, - "src": "9621:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6389, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "9600:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 6393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9600:24:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6394, - "nodeType": "ExpressionStatement", - "src": "9600:24:5" - } - ] - }, - "documentation": null, - "functionSelector": "38ed1739", - "id": 6396, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 6339, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6335, - "src": "9224:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6340, - "modifierName": { - "argumentTypes": null, - "id": 6338, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "9217:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9217:16:5" - } - ], - "name": "swapExactTokensForTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 6337, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "9208:8:5" - }, - "parameters": { - "id": 6336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6326, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6396, - "src": "9068:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6325, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9068:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6328, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6396, - "src": "9091:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6327, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9091:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6331, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6396, - "src": "9118:23:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6329, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9118:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6330, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9118:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6333, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6396, - "src": "9151:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9151:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6335, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6396, - "src": "9171:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6334, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9171:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9058:132:5" - }, - "returnParameters": { - "id": 6344, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6343, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6396, - "src": "9243:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 6341, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9243:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6342, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9243:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9242:23:5" - }, - "scope": 7420, - "src": "9025:606:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10553 - ], - "body": { - "id": 6464, - "nodeType": "Block", - "src": "9877:343:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6417, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6415, - "src": "9887:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6420, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "9924:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6421, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6398, - "src": "9933:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6422, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6403, - "src": "9944:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 6418, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "9897:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 11619, - "src": "9897:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 6423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9897:52:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "9887:62:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6425, - "nodeType": "ExpressionStatement", - "src": "9887:62:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6427, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6415, - "src": "9967:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6429, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9975:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9967:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 6430, - "name": "amountInMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6400, - "src": "9981:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9967:25:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54", - "id": 6432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9994:38:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - }, - "value": "DXswapRouter: EXCESSIVE_INPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - } - ], - "id": 6426, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9959:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9959:74:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6434, - "nodeType": "ExpressionStatement", - "src": "9959:74:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6438, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6403, - "src": "10088:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6440, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10093:1:5", - "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": "10088:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6441, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10097:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10097:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6445, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "10131:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6446, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6403, - "src": "10140:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6448, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10145:1:5", - "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": "10140:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6449, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6403, - "src": "10149:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6451, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10154:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10149:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6443, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "10109:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "10109:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10109:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6453, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6415, - "src": "10159:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6455, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10167:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10159:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6435, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "10043:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 6437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "10043:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 6456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10043:136:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6457, - "nodeType": "ExpressionStatement", - "src": "10043:136:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6459, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6415, - "src": "10195:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 6460, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6403, - "src": "10204:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 6461, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6405, - "src": "10210:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6458, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "10189:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 6462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10189:24:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6463, - "nodeType": "ExpressionStatement", - "src": "10189:24:5" - } - ] - }, - "documentation": null, - "functionSelector": "8803dbee", - "id": 6465, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 6411, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6407, - "src": "9835:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6412, - "modifierName": { - "argumentTypes": null, - "id": 6410, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "9828:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9828:16:5" - } - ], - "name": "swapTokensForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 6409, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "9819:8:5" - }, - "parameters": { - "id": 6408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6398, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6465, - "src": "9679:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9679:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6400, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6465, - "src": "9703:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6399, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9703:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6403, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6465, - "src": "9729:23:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9729:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6402, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9729:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6405, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6465, - "src": "9762:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9762:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6407, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6465, - "src": "9782:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6406, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9782:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9669:132:5" - }, - "returnParameters": { - "id": 6416, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6415, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6465, - "src": "9854:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 6413, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9854:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6414, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9854:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9853:23:5" - }, - "scope": 7420, - "src": "9636:584:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10568 - ], - "body": { - "id": 6552, - "nodeType": "Block", - "src": "10462:434:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6485, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6470, - "src": "10480:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6487, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10485:1:5", - "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": "10480:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 6488, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "10491:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10480:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 6490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10497:28:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 6484, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10472:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10472:54:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6492, - "nodeType": "ExpressionStatement", - "src": "10472:54:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 6501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6493, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6482, - "src": "10536:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6496, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "10574:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6497, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10583:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10583:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6499, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6470, - "src": "10594:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 6494, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "10546:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 11523, - "src": "10546:27:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 6500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10546:53:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "10536:63:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6502, - "nodeType": "ExpressionStatement", - "src": "10536:63:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6504, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6482, - "src": "10617:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6509, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6505, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6482, - "src": "10625:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10625:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10642:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10625:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10617:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 6510, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6467, - "src": "10648:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10617:43:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 6512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10662:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 6503, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10609:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10609:96:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6514, - "nodeType": "ExpressionStatement", - "src": "10609:96:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6516, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "10721:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6515, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "10715:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 6517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10715:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 6518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10848, - "src": "10715:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 6522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6519, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6482, - "src": "10742:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6521, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10750:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10742:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "10715:38:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 6523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10715:40:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6524, - "nodeType": "ExpressionStatement", - "src": "10715:40:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6532, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "10815:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6533, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6470, - "src": "10824:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6535, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10829:1:5", - "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": "10824:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6536, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6470, - "src": "10833:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6538, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10838:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10833:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6530, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "10793:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "10793:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10793:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6540, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6482, - "src": "10843:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6542, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10851:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10843:10:5", - "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": 6527, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "10778:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6526, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "10772:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 6528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10772:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 6529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10857, - "src": "10772:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 6543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10772:82:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 6525, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "10765:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 6544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10765:90:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6545, - "nodeType": "ExpressionStatement", - "src": "10765:90:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6547, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6482, - "src": "10871:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 6548, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6470, - "src": "10880:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 6549, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6472, - "src": "10886:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6546, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "10865:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 6550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10865:24:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6551, - "nodeType": "ExpressionStatement", - "src": "10865:24:5" - } - ] - }, - "documentation": null, - "functionSelector": "7ff36ab5", - "id": 6553, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 6478, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6474, - "src": "10408:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6479, - "modifierName": { - "argumentTypes": null, - "id": 6477, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "10401:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10401:16:5" - } - ], - "name": "swapExactETHForTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 6476, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "10368:8:5" - }, - "parameters": { - "id": 6475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6467, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6553, - "src": "10256:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6466, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10256:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6470, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6553, - "src": "10275:23:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6468, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10275:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6469, - "length": null, - "nodeType": "ArrayTypeName", - "src": "10275:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6472, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6553, - "src": "10300:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10300:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6474, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6553, - "src": "10312:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6473, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10312:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10255:71:5" - }, - "returnParameters": { - "id": 6483, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6482, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6553, - "src": "10435:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 6480, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10435:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6481, - "length": null, - "nodeType": "ArrayTypeName", - "src": "10435:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10434:23:5" - }, - "scope": 7420, - "src": "10225:671:5", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10585 - ], - "body": { - "id": 6660, - "nodeType": "Block", - "src": "11137:564:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6575, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6560, - "src": "11155:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6580, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6576, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6560, - "src": "11160:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11160:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11174:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11160:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11155:21:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 6581, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "11180:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11155:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 6583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11186:28:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 6574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11147:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11147:68:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6585, - "nodeType": "ExpressionStatement", - "src": "11147:68:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 6593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6586, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "11225:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6589, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11262:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6590, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6555, - "src": "11271:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6591, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6560, - "src": "11282:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 6587, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "11235:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 11619, - "src": "11235:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 6592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11235:52:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "11225:62:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6594, - "nodeType": "ExpressionStatement", - "src": "11225:62:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6596, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "11305:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6598, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11313:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11305:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 6599, - "name": "amountInMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6557, - "src": "11319:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11305:25:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54", - "id": 6601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11332:38:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - }, - "value": "DXswapRouter: EXCESSIVE_INPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - } - ], - "id": 6595, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11297:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11297:74:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6603, - "nodeType": "ExpressionStatement", - "src": "11297:74:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6607, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6560, - "src": "11426:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6609, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11431:1:5", - "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": "11426:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6610, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "11435:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11435:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6614, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11469:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6615, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6560, - "src": "11478:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6617, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11483:1:5", - "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": "11478:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6618, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6560, - "src": "11487:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6620, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11492:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11487:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6612, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "11447:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "11447:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11447:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6622, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "11497:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6624, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11505:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11497:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6604, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "11381:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 6606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "11381:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 6625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11381:136:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6626, - "nodeType": "ExpressionStatement", - "src": "11381:136:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6628, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "11533:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 6629, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6560, - "src": "11542:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6632, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "11556:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 6631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11548:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6630, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11548:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11548:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 6627, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "11527:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 6634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11527:35:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6635, - "nodeType": "ExpressionStatement", - "src": "11527:35:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6640, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "11593:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6645, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6641, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "11601:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11601:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11618:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11601:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11593:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6637, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "11578:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6636, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "11572:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 6638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11572:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 6639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 10862, - "src": "11572:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 6646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11572:49:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6647, - "nodeType": "ExpressionStatement", - "src": "11572:49:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6651, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6562, - "src": "11662:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6652, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "11666:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6657, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6653, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "11674:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11674:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11691:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11674:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11666:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6648, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "11631:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 6650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "11631:30:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 6658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11631:63:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6659, - "nodeType": "ExpressionStatement", - "src": "11631:63:5" - } - ] - }, - "documentation": null, - "functionSelector": "4a25d94a", - "id": 6661, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 6568, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6564, - "src": "11083:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6569, - "modifierName": { - "argumentTypes": null, - "id": 6567, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "11076:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11076:16:5" - } - ], - "name": "swapTokensForExactETH", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 6566, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "11059:8:5" - }, - "parameters": { - "id": 6565, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6555, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6661, - "src": "10932:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6554, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10932:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6557, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6661, - "src": "10948:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10948:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6560, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6661, - "src": "10966:23:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6558, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10966:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6559, - "length": null, - "nodeType": "ArrayTypeName", - "src": "10966:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6562, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6661, - "src": "10991:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6561, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10991:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6564, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6661, - "src": "11003:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6563, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11003:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10931:86:5" - }, - "returnParameters": { - "id": 6573, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6572, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6661, - "src": "11110:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 6570, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11110:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6571, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11110:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11109:23:5" - }, - "scope": 7420, - "src": "10901:800:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10602 - ], - "body": { - "id": 6771, - "nodeType": "Block", - "src": "11942:586:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6683, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "11960:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6688, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6684, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "11965:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11965:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6686, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11979:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11965:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11960:21:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 6689, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "11985:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11960:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 6691, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11991:28:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 6682, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11952:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11952:68:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6693, - "nodeType": "ExpressionStatement", - "src": "11952:68:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 6701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6694, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "12030:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6697, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "12068:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6698, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6663, - "src": "12077:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6699, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "12087:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 6695, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "12040:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 11523, - "src": "12040:27:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 6700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12040:52:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "12030:62:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6702, - "nodeType": "ExpressionStatement", - "src": "12030:62:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6704, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "12110:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6709, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6705, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "12118:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12118:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6707, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12135:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12118:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12110:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 6710, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6665, - "src": "12141:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12110:43:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 6712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12155:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 6703, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12102:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12102:96:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6714, - "nodeType": "ExpressionStatement", - "src": "12102:96:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6718, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "12253:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6720, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12258:1:5", - "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": "12253:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6721, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12262:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12262:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6725, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "12296:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6726, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "12305:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6728, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:1:5", - "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": "12305:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6729, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "12314:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6731, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6730, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12319:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12314:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6723, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "12274:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "12274:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12274:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6733, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "12324:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6735, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12332:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12324:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6715, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "12208:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 6717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "12208:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 6736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12208:136:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6737, - "nodeType": "ExpressionStatement", - "src": "12208:136:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6739, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "12360:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 6740, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "12369:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6743, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "12383:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 6742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12375:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12375:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12375:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 6738, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "12354:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 6745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12354:35:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6746, - "nodeType": "ExpressionStatement", - "src": "12354:35:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6751, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "12420:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6756, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6752, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "12428:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12428:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12445:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12428:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12420:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6748, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "12405:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6747, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "12399:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 6749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12399:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 6750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 10862, - "src": "12399:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 6757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12399:49:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6758, - "nodeType": "ExpressionStatement", - "src": "12399:49:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6762, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "12489:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6763, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "12493:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6768, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6764, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "12501:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12501:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12518:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12501:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12493:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6759, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "12458:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 6761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "12458:30:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 6769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12458:63:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6770, - "nodeType": "ExpressionStatement", - "src": "12458:63:5" - } - ] - }, - "documentation": null, - "functionSelector": "18cbafe5", - "id": 6772, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 6676, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6672, - "src": "11888:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6677, - "modifierName": { - "argumentTypes": null, - "id": 6675, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "11881:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11881:16:5" - } - ], - "name": "swapExactTokensForETH", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 6674, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "11864:8:5" - }, - "parameters": { - "id": 6673, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6663, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6772, - "src": "11737:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6662, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11737:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6665, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6772, - "src": "11752:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6664, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11752:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6668, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6772, - "src": "11771:23:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6666, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11771:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6667, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11771:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6670, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6772, - "src": "11796:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11796:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6672, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6772, - "src": "11808:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6671, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11808:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11736:86:5" - }, - "returnParameters": { - "id": 6681, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6680, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6772, - "src": "11915:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 6678, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11915:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6679, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11915:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11914:23:5" - }, - "scope": 7420, - "src": "11706:822:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10617 - ], - "body": { - "id": 6876, - "nodeType": "Block", - "src": "12767:548:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6792, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6777, - "src": "12785:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6794, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6793, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12790:1:5", - "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": "12785:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 6795, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "12796:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12785:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 6797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12802:28:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 6791, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12777:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12777:54:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6799, - "nodeType": "ExpressionStatement", - "src": "12777:54:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 6807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6800, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "12841:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6803, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "12878:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6804, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6774, - "src": "12887:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6805, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6777, - "src": "12898:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 6801, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "12851:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 11619, - "src": "12851:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 6806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12851:52:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "12841:62:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6808, - "nodeType": "ExpressionStatement", - "src": "12841:62:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6810, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "12921:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6812, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12929:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12921:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6813, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12935:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12935:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12921:23:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54", - "id": 6816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12946:38:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - }, - "value": "DXswapRouter: EXCESSIVE_INPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f7200d2a03ed656713502e0daa0e851a056259f71ed4618a5308bbaad145eb15", - "typeString": "literal_string \"DXswapRouter: EXCESSIVE_INPUT_AMOUNT\"" - } - ], - "id": 6809, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12913:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12913:72:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6818, - "nodeType": "ExpressionStatement", - "src": "12913:72:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6820, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "13001:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6819, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "12995:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 6821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12995:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 6822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10848, - "src": "12995:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 6826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6823, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "13022:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6825, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13030:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13022:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "12995:38:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 6827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12995:40:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6828, - "nodeType": "ExpressionStatement", - "src": "12995:40:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6836, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "13095:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6837, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6777, - "src": "13104:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6839, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13109:1:5", - "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": "13104:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6840, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6777, - "src": "13113:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 6842, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6841, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13118:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13113:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6834, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "13073:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "13073:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13073:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6844, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "13123:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6846, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13131:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13123:10:5", - "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": 6831, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "13058:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6830, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "13052:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 6832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13052:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 6833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10857, - "src": "13052:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 6847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13052:82:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 6829, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "13045:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 6848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13045:90:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6849, - "nodeType": "ExpressionStatement", - "src": "13045:90:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6851, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "13151:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 6852, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6777, - "src": "13160:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 6853, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6779, - "src": "13166:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6850, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6324, - "src": "13145:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256[] memory,address[] memory,address)" - } - }, - "id": 6854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13145:24:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6855, - "nodeType": "ExpressionStatement", - "src": "13145:24:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6856, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13218:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13218:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6858, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "13230:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6860, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13238:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13230:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13218:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 6875, - "nodeType": "IfStatement", - "src": "13214:94:5", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6865, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13273:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13273:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6867, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13285:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13285:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6869, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6789, - "src": "13297:7:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 6871, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13305:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13297:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13285:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6862, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "13242:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 6864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "13242:30:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 6873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13242:66:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6874, - "nodeType": "ExpressionStatement", - "src": "13242:66:5" - } - } - ] - }, - "documentation": null, - "functionSelector": "fb3bdb41", - "id": 6877, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 6785, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6781, - "src": "12713:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6786, - "modifierName": { - "argumentTypes": null, - "id": 6784, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "12706:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12706:16:5" - } - ], - "name": "swapETHForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 6783, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "12673:8:5" - }, - "parameters": { - "id": 6782, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6774, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6877, - "src": "12564:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6773, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12564:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6777, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6877, - "src": "12580:23:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6775, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12580:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6776, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12580:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6779, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6877, - "src": "12605:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6778, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12605:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6781, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6877, - "src": "12617:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6780, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12617:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12563:68:5" - }, - "returnParameters": { - "id": 6790, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6789, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6877, - "src": "12740:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 6787, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12740:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6788, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12740:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12739:23:5" - }, - "scope": 7420, - "src": "12533:782:5", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - }, - { - "body": { - "id": 7043, - "nodeType": "Block", - "src": "13555:1098:5", - "statements": [ - { - "body": { - "id": 7041, - "nodeType": "Block", - "src": "13604:1043:5", - "statements": [ - { - "assignments": [ - 6898, - 6900 - ], - "declarations": [ - { - "constant": false, - "id": 6898, - "mutability": "mutable", - "name": "input", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7041, - "src": "13619:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6897, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13619:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6900, - "mutability": "mutable", - "name": "output", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7041, - "src": "13634:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13634:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6910, - "initialValue": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6901, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6880, - "src": "13653:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6903, - "indexExpression": { - "argumentTypes": null, - "id": 6902, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "13658:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13653:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6904, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6880, - "src": "13662:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6908, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6905, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "13667:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6906, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13671:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13667:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13662:11:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 6909, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13652:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13618:56:5" - }, - { - "assignments": [ - 6912, - null - ], - "declarations": [ - { - "constant": false, - "id": 6912, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7041, - "src": "13689:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6911, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13689:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 6918, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6915, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6898, - "src": "13733:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6916, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6900, - "src": "13740:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6913, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "13708:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sortTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11130, - "src": "13708:24:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 6917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13708:39:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13688:59:5" - }, - { - "assignments": [ - 6920 - ], - "declarations": [ - { - "constant": false, - "id": 6920, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7041, - "src": "13761:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - }, - "typeName": { - "contractScope": null, - "id": 6919, - "name": "IDXswapPair", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "13761:11:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6929, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6924, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "13814:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6925, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6898, - "src": "13823:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6926, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6900, - "src": "13830:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 6922, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "13792:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "13792:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 6927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13792:45:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6921, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "13780:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 6928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13780:58:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13761:77:5" - }, - { - "assignments": [ - 6931 - ], - "declarations": [ - { - "constant": false, - "id": 6931, - "mutability": "mutable", - "name": "amountInput", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7041, - "src": "13852:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6930, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13852:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6932, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "13852:16:5" - }, - { - "assignments": [ - 6934 - ], - "declarations": [ - { - "constant": false, - "id": 6934, - "mutability": "mutable", - "name": "amountOutput", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7041, - "src": "13882:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6933, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13882:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6935, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "13882:17:5" - }, - { - "id": 6986, - "nodeType": "Block", - "src": "13913:435:5", - "statements": [ - { - "assignments": [ - 6937, - 6939, - null - ], - "declarations": [ - { - "constant": false, - "id": 6937, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6986, - "src": "13968:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6936, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13968:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6939, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6986, - "src": "13983:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6938, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13983:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 6943, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 6940, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6920, - "src": "14001:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 6941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 268, - "src": "14001:16:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 6942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14001:18:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13967:52:5" - }, - { - "assignments": [ - 6945, - 6947 - ], - "declarations": [ - { - "constant": false, - "id": 6945, - "mutability": "mutable", - "name": "reserveInput", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6986, - "src": "14034:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6944, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14034:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6947, - "mutability": "mutable", - "name": "reserveOutput", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 6986, - "src": "14053:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6946, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14053:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6958, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6948, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6898, - "src": "14075:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 6949, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6912, - "src": "14084:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "14075:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 6954, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6939, - "src": "14117:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6955, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6937, - "src": "14127:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6956, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14116:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 6957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "14075:61:5", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 6951, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6937, - "src": "14094:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6952, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6939, - "src": "14104:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6953, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14093:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14033:103:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 6972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6959, - "name": "amountInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6931, - "src": "14150:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6970, - "name": "reserveInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6945, - "src": "14207:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6966, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6920, - "src": "14196:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - ], - "id": 6965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14188:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6964, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14188:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14188:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6961, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6898, - "src": "14171:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6960, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10843, - "src": "14164:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$10843_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14164:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$10843", - "typeString": "contract IERC20" - } - }, - "id": 6963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10804, - "src": "14164:23:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 6968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14164:38:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "14164:42:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 6971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14164:56:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14150:70:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6973, - "nodeType": "ExpressionStatement", - "src": "14150:70:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 6984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6974, - "name": "amountOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "14234:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6977, - "name": "amountInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6931, - "src": "14276:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6978, - "name": "reserveInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6945, - "src": "14289:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6979, - "name": "reserveOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6947, - "src": "14303:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 6980, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6920, - "src": "14318:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 6981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "14318:12:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 6982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14318:14:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 6975, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "14249:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 6976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 11363, - "src": "14249:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 6983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14249:84:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14234:99:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6985, - "nodeType": "ExpressionStatement", - "src": "14234:99:5" - } - ] - }, - { - "assignments": [ - 6988, - 6990 - ], - "declarations": [ - { - "constant": false, - "id": 6988, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7041, - "src": "14362:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6987, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14362:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6990, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7041, - "src": "14379:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6989, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14379:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7007, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6991, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6898, - "src": "14398:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 6992, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6912, - "src": "14407:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "14398:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 7000, - "name": "amountOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "14443:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 7003, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14462:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 7002, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14457:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 7001, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14457:4:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 7004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14457:7:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7005, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14442:23:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 7006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "14398:67:5", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6996, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14422:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6995, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14417:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6994, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14417:4:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 6997, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14417:7:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6998, - "name": "amountOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "14426:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6999, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14416:23:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14361:104:5" - }, - { - "assignments": [ - 7009 - ], - "declarations": [ - { - "constant": false, - "id": 7009, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7041, - "src": "14479:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7008, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14479:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7028, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7010, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "14492:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7011, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6880, - "src": "14496:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 7012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14496:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 7013, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14510:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "14496:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14492:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 7026, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6882, - "src": "14568:3:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "14492:79:5", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7018, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "14536:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7019, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6900, - "src": "14545:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7020, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6880, - "src": "14553:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 7024, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7021, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "14558:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 7022, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14562:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "14558:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14553:11:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 7016, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "14514:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "14514:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 7025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14514:51:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14479:92:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7032, - "name": "amount0Out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6988, - "src": "14595:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7033, - "name": "amount1Out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6990, - "src": "14607:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7034, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7009, - "src": "14619:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 7037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14633:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 7036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "14623:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 7035, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14627:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 7038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14623:12:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 7029, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6920, - "src": "14585:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 7031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swap", - "nodeType": "MemberAccess", - "referencedDeclaration": 315, - "src": "14585:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,address,bytes memory) external" - } - }, - "id": 7039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14585:51:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7040, - "nodeType": "ExpressionStatement", - "src": "14585:51:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6888, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "13578:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6889, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6880, - "src": "13582:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13582:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13596:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13582:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13578:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7042, - "initializationExpression": { - "assignments": [ - 6886 - ], - "declarations": [ - { - "constant": false, - "id": 6886, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7042, - "src": "13570:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6885, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13570:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6887, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "13570:6:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 6895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13599:3:5", - "subExpression": { - "argumentTypes": null, - "id": 6894, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "13599:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6896, - "nodeType": "ExpressionStatement", - "src": "13599:3:5" - }, - "nodeType": "ForStatement", - "src": "13565:1082:5" - } - ] - }, - "documentation": null, - "id": 7044, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_swapSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 6883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6880, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7044, - "src": "13502:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6878, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13502:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6879, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13502:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6882, - "mutability": "mutable", - "name": "_to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7044, - "src": "13525:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13525:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13501:36:5" - }, - "returnParameters": { - "id": 6884, - "nodeType": "ParameterList", - "parameters": [], - "src": "13555:0:5" - }, - "scope": 7420, - "src": "13458:1195:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "baseFunctions": [ - 10732 - ], - "body": { - "id": 7122, - "nodeType": "Block", - "src": "14896:454:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7065, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7051, - "src": "14951:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7067, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7066, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14956:1:5", - "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": "14951:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7068, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14960:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14960:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7072, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "14994:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7073, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7051, - "src": "15003:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7075, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15008:1:5", - "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": "15003:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7076, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7051, - "src": "15012:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7078, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15017:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15012:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 7070, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "14972:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "14972:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 7079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14972:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7080, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7046, - "src": "15022:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7062, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "14906:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 7064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "14906:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 7081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14906:134:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7082, - "nodeType": "ExpressionStatement", - "src": "14906:134:5" - }, - { - "assignments": [ - 7084 - ], - "declarations": [ - { - "constant": false, - "id": 7084, - "mutability": "mutable", - "name": "balanceBefore", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7122, - "src": "15050:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7083, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15050:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7096, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7094, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7053, - "src": "15111:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7086, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7051, - "src": "15078:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7091, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7087, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7051, - "src": "15083:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15083:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15097:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15083:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15078:21:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7085, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10843, - "src": "15071:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$10843_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 7092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15071:29:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$10843", - "typeString": "contract IERC20" - } - }, - "id": 7093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10804, - "src": "15071:39:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 7095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15071:43:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15050:64:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7098, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7051, - "src": "15159:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 7099, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7053, - "src": "15165:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7097, - "name": "_swapSupportingFeeOnTransferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7044, - "src": "15124:34:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (address[] memory,address)" - } - }, - "id": 7100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15124:44:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7101, - "nodeType": "ExpressionStatement", - "src": "15124:44:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7115, - "name": "balanceBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7084, - "src": "15247:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7112, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7053, - "src": "15239:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7104, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7051, - "src": "15206:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7109, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7105, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7051, - "src": "15211:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15211:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15225:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15211:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15206:21:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7103, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10843, - "src": "15199:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$10843_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 7110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15199:29:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$10843", - "typeString": "contract IERC20" - } - }, - "id": 7111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10804, - "src": "15199:39:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 7113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15199:43:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "15199:47:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15199:62:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 7117, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "15265:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15199:78:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 7119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15291:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 7102, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15178:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15178:165:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7121, - "nodeType": "ExpressionStatement", - "src": "15178:165:5" - } - ] - }, - "documentation": null, - "functionSelector": "5c11d795", - "id": 7123, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 7059, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7055, - "src": "14886:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7060, - "modifierName": { - "argumentTypes": null, - "id": 7058, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "14879:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14879:16:5" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7057, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "14870:8:5" - }, - "parameters": { - "id": 7056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7046, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7123, - "src": "14730:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7045, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14730:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7048, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7123, - "src": "14753:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7047, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14753:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7051, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7123, - "src": "14780:23:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7049, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14780:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7050, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14780:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7053, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7123, - "src": "14813:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14813:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7055, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7123, - "src": "14833:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7054, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14833:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14720:132:5" - }, - "returnParameters": { - "id": 7061, - "nodeType": "ParameterList", - "parameters": [], - "src": "14896:0:5" - }, - "scope": 7420, - "src": "14658:692:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10744 - ], - "body": { - "id": 7219, - "nodeType": "Block", - "src": "15619:555:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7140, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7128, - "src": "15637:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7142, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15642:1:5", - "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": "15637:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7143, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "15648:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15637:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 7145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15654:28:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 7139, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15629:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15629:54:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7147, - "nodeType": "ExpressionStatement", - "src": "15629:54:5" - }, - { - "assignments": [ - 7149 - ], - "declarations": [ - { - "constant": false, - "id": 7149, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7219, - "src": "15693:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7148, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15693:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7152, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7150, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "15709:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15709:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15693:25:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7154, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "15734:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7153, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "15728:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 7155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15728:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 7156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10848, - "src": "15728:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 7158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "id": 7157, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7149, - "src": "15755:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "15728:36:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 7159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15728:38:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7160, - "nodeType": "ExpressionStatement", - "src": "15728:38:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7168, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "15826:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7169, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7128, - "src": "15835:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7171, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15840:1:5", - "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": "15835:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7172, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7128, - "src": "15844:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7174, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15849:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15844:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 7166, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "15804:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "15804:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 7175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15804:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7176, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7149, - "src": "15854:8:5", - "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": 7163, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "15789:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7162, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "15783:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 7164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15783:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 7165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10857, - "src": "15783:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 7177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15783:80:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7161, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "15776:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 7178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15776:88:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7179, - "nodeType": "ExpressionStatement", - "src": "15776:88:5" - }, - { - "assignments": [ - 7181 - ], - "declarations": [ - { - "constant": false, - "id": 7181, - "mutability": "mutable", - "name": "balanceBefore", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7219, - "src": "15874:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7180, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15874:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7193, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7191, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7130, - "src": "15935:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7183, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7128, - "src": "15902:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7188, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7184, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7128, - "src": "15907:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15907:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15921:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15907:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15902:21:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7182, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10843, - "src": "15895:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$10843_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 7189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15895:29:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$10843", - "typeString": "contract IERC20" - } - }, - "id": 7190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10804, - "src": "15895:39:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 7192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15895:43:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15874:64:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7195, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7128, - "src": "15983:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 7196, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7130, - "src": "15989:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7194, - "name": "_swapSupportingFeeOnTransferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7044, - "src": "15948:34:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (address[] memory,address)" - } - }, - "id": 7197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15948:44:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7198, - "nodeType": "ExpressionStatement", - "src": "15948:44:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7212, - "name": "balanceBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7181, - "src": "16071:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7209, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7130, - "src": "16063:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7201, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7128, - "src": "16030:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7206, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7202, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7128, - "src": "16035:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16035:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16049:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "16035:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16030:21:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7200, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10843, - "src": "16023:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$10843_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 7207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16023:29:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$10843", - "typeString": "contract IERC20" - } - }, - "id": 7208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10804, - "src": "16023:39:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 7210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16023:43:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "16023:47:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16023:62:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 7214, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7125, - "src": "16089:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16023:78:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 7216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16115:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 7199, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "16002:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16002:165:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7218, - "nodeType": "ExpressionStatement", - "src": "16002:165:5" - } - ] - }, - "documentation": null, - "functionSelector": "b6f9de95", - "id": 7220, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 7136, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7132, - "src": "15605:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7137, - "modifierName": { - "argumentTypes": null, - "id": 7135, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "15598:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15598:16:5" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7134, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "15565:8:5" - }, - "parameters": { - "id": 7133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7125, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7220, - "src": "15424:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7124, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15424:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7128, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7220, - "src": "15451:23:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15451:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7127, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15451:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7130, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7220, - "src": "15484:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15484:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7132, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7220, - "src": "15504:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7131, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15504:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15414:109:5" - }, - "returnParameters": { - "id": 7138, - "nodeType": "ParameterList", - "parameters": [], - "src": "15619:0:5" - }, - "scope": 7420, - "src": "15355:819:5", - "stateMutability": "payable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10758 - ], - "body": { - "id": 7312, - "nodeType": "Block", - "src": "16450:542:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7239, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7227, - "src": "16468:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7244, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7240, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7227, - "src": "16473:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16473:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16487:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "16473:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16468:21:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7245, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "16493:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16468:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e56414c49445f50415448", - "id": 7247, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16499:28:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - }, - "value": "DXswapRouter: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_12229c2c2554d62aca2be4411e3acb3f490b7806bbe2f21c87bebafc31e2d90f", - "typeString": "literal_string \"DXswapRouter: INVALID_PATH\"" - } - ], - "id": 7238, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "16460:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16460:68:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7249, - "nodeType": "ExpressionStatement", - "src": "16460:68:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7253, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7227, - "src": "16583:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7255, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16588:1:5", - "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": "16583:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7256, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "16592:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16592:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7260, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "16626:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7261, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7227, - "src": "16635:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7263, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16640:1:5", - "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": "16635:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7264, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7227, - "src": "16644:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 7266, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7265, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16649:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16644:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 7258, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "16604:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "16604:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 7267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16604:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7268, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7222, - "src": "16654:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7250, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "16538:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 7252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "16538:31:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 7269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16538:134:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7270, - "nodeType": "ExpressionStatement", - "src": "16538:134:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7272, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7227, - "src": "16717:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7275, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "16731:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 7274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16723:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16723:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 7276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16723:13:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 7271, - "name": "_swapSupportingFeeOnTransferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7044, - "src": "16682:34:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (address[] memory,address)" - } - }, - "id": 7277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16682:55:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7278, - "nodeType": "ExpressionStatement", - "src": "16682:55:5" - }, - { - "assignments": [ - 7280 - ], - "declarations": [ - { - "constant": false, - "id": 7280, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7312, - "src": "16747:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7279, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16747:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7290, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7287, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "16795:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRouter_$7420", - "typeString": "contract DXswapRouter" - } - ], - "id": 7286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16787:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7285, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16787:7:5", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 7288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16787:13:5", - "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": 7282, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "16771:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7281, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10843, - "src": "16764:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$10843_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 7283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16764:12:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$10843", - "typeString": "contract IERC20" - } - }, - "id": 7284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10804, - "src": "16764:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 7289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16764:37:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16747:54:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7292, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7280, - "src": "16819:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 7293, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7224, - "src": "16832:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16819:25:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 7295, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16846:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2c080b6e658d6fb4b7f7336c0ed8e58135721521ef12d93f865a4699b2a3fe1", - "typeString": "literal_string \"DXswapRouter: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 7291, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "16811:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16811:78:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7297, - "nodeType": "ExpressionStatement", - "src": "16811:78:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7302, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7280, - "src": "16920:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7299, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5393, - "src": "16905:4:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7298, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "16899:5:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 7300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16899:11:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 7301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 10862, - "src": "16899:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 7303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16899:31:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7304, - "nodeType": "ExpressionStatement", - "src": "16899:31:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7308, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7229, - "src": "16971:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7309, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7280, - "src": "16975:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7305, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "16940:14:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 7307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "16940:30:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 7310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16940:45:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7311, - "nodeType": "ExpressionStatement", - "src": "16940:45:5" - } - ] - }, - "documentation": null, - "functionSelector": "791ac947", - "id": 7313, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 7235, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7231, - "src": "16436:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7236, - "modifierName": { - "argumentTypes": null, - "id": 7234, - "name": "ensure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "16429:6:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "16429:16:5" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7233, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "16412:8:5" - }, - "parameters": { - "id": 7232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7222, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7313, - "src": "16248:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7221, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16248:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7224, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7313, - "src": "16271:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7223, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16271:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7227, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7313, - "src": "16298:23:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16298:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7226, - "length": null, - "nodeType": "ArrayTypeName", - "src": "16298:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7229, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7313, - "src": "16331:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7228, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16331:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7231, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7313, - "src": "16351:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7230, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16351:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16238:132:5" - }, - "returnParameters": { - "id": 7237, - "nodeType": "ParameterList", - "parameters": [], - "src": "16450:0:5" - }, - "scope": 7420, - "src": "16179:813:5", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "baseFunctions": [ - 10628 - ], - "body": { - "id": 7332, - "nodeType": "Block", - "src": "17144:72:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7327, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7315, - "src": "17181:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7328, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7317, - "src": "17190:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7329, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7319, - "src": "17200:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7325, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "17161:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "quote", - "nodeType": "MemberAccess", - "referencedDeclaration": 11295, - "src": "17161:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 7330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17161:48:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7324, - "id": 7331, - "nodeType": "Return", - "src": "17154:55:5" - } - ] - }, - "documentation": null, - "functionSelector": "ad615dec", - "id": 7333, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "quote", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7321, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "17112:8:5" - }, - "parameters": { - "id": 7320, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7315, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7333, - "src": "17048:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7314, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17048:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7317, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7333, - "src": "17062:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7316, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17062:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7319, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7333, - "src": "17077:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7318, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17077:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17047:44:5" - }, - "returnParameters": { - "id": 7324, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7323, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7333, - "src": "17130:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7322, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17130:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17129:14:5" - }, - "scope": 7420, - "src": "17033:183:5", - "stateMutability": "pure", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 10641 - ], - "body": { - "id": 7355, - "nodeType": "Block", - "src": "17404:92:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7349, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7335, - "src": "17448:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7350, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7337, - "src": "17458:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7351, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7339, - "src": "17469:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7352, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7341, - "src": "17481:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7347, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "17421:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 11363, - "src": "17421:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 7353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17421:68:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7346, - "id": 7354, - "nodeType": "Return", - "src": "17414:75:5" - } - ] - }, - "documentation": null, - "functionSelector": "52707d8c", - "id": 7356, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountOut", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7343, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "17358:8:5" - }, - "parameters": { - "id": 7342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7335, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7356, - "src": "17244:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7334, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17244:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7337, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7356, - "src": "17259:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17259:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7339, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7356, - "src": "17275:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7338, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17275:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7341, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7356, - "src": "17292:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7340, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17292:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17243:62:5" - }, - "returnParameters": { - "id": 7346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7345, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7356, - "src": "17384:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7344, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17384:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17383:16:5" - }, - "scope": 7420, - "src": "17222:274:5", - "stateMutability": "pure", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 10654 - ], - "body": { - "id": 7378, - "nodeType": "Block", - "src": "17683:92:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7372, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7358, - "src": "17726:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7373, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7360, - "src": "17737:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7374, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7362, - "src": "17748:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7375, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7364, - "src": "17760:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7370, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "17700:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 11431, - "src": "17700:25:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 7376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17700:68:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7369, - "id": 7377, - "nodeType": "Return", - "src": "17693:75:5" - } - ] - }, - "documentation": null, - "functionSelector": "571fd012", - "id": 7379, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountIn", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7366, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "17638:8:5" - }, - "parameters": { - "id": 7365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7358, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7379, - "src": "17523:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7357, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17523:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7360, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7379, - "src": "17539:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7359, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17539:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7362, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7379, - "src": "17555:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7361, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17555:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7364, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7379, - "src": "17572:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7363, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17572:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17522:63:5" - }, - "returnParameters": { - "id": 7369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7368, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7379, - "src": "17664:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7367, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17664:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17663:15:5" - }, - "scope": 7420, - "src": "17502:273:5", - "stateMutability": "pure", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 10665 - ], - "body": { - "id": 7398, - "nodeType": "Block", - "src": "17947:76:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7393, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "17992:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7394, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7381, - "src": "18001:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7395, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7384, - "src": "18011:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 7391, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "17964:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 11523, - "src": "17964:27:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 7396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17964:52:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 7390, - "id": 7397, - "nodeType": "Return", - "src": "17957:59:5" - } - ] - }, - "documentation": null, - "functionSelector": "d06ca61f", - "id": 7399, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsOut", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7386, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "17894:8:5" - }, - "parameters": { - "id": 7385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7381, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7399, - "src": "17804:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7380, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17804:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7384, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7399, - "src": "17819:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7382, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17819:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7383, - "length": null, - "nodeType": "ArrayTypeName", - "src": "17819:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17803:38:5" - }, - "returnParameters": { - "id": 7390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7389, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7399, - "src": "17920:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 7387, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17920:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7388, - "length": null, - "nodeType": "ArrayTypeName", - "src": "17920:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17919:23:5" - }, - "scope": 7420, - "src": "17781:242:5", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "baseFunctions": [ - 10676 - ], - "body": { - "id": 7418, - "nodeType": "Block", - "src": "18195:76:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7413, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "18239:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7414, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7401, - "src": "18248:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7415, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7404, - "src": "18259:4:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 7411, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "18212:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAmountsIn", - "nodeType": "MemberAccess", - "referencedDeclaration": 11619, - "src": "18212:26:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" - } - }, - "id": 7416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18212:52:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 7410, - "id": 7417, - "nodeType": "Return", - "src": "18205:59:5" - } - ] - }, - "documentation": null, - "functionSelector": "1f00ca74", - "id": 7419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsIn", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 7406, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "18142:8:5" - }, - "parameters": { - "id": 7405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7401, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7419, - "src": "18051:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7400, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18051:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7404, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7419, - "src": "18067:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18067:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7403, - "length": null, - "nodeType": "ArrayTypeName", - "src": "18067:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18050:39:5" - }, - "returnParameters": { - "id": 7410, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7409, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7419, - "src": "18168:21:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 7407, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18168:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7408, - "length": null, - "nodeType": "ArrayTypeName", - "src": "18168:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18167:23:5" - }, - "scope": 7420, - "src": "18029:242:5", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - } - ], - "scope": 7421, - "src": "313:17960:5" - } - ], - "src": "0:18274:5" - } - }, - "contracts/examples/DXswapRelayer.sol": { - "id": 6, - "AST": { - "absolutePath": "contracts/examples/DXswapRelayer.sol", - "exportedSymbols": { - "DXswapRelayer": [ - 8819 - ] - }, - "id": 8820, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7422, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "id": 7423, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:6" - }, - { - "absolutePath": "contracts/examples/OracleCreator.sol", - "file": "./OracleCreator.sol", - "id": 7424, - "nodeType": "ImportDirective", - "scope": 8820, - "sourceUnit": 10029, - "src": "59:29:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IDXswapFactory.sol", - "file": "./../interfaces/IDXswapFactory.sol", - "id": 7425, - "nodeType": "ImportDirective", - "scope": 8820, - "sourceUnit": 10114, - "src": "89:44:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IDXswapRouter.sol", - "file": "./../interfaces/IDXswapRouter.sol", - "id": 7426, - "nodeType": "ImportDirective", - "scope": 8820, - "sourceUnit": 10760, - "src": "134:43:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/TransferHelper.sol", - "file": "./../libraries/TransferHelper.sol", - "id": 7427, - "nodeType": "ImportDirective", - "scope": 8820, - "sourceUnit": 12528, - "src": "178:43:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IERC20.sol", - "file": "./../interfaces/IERC20.sol", - "id": 7428, - "nodeType": "ImportDirective", - "scope": 8820, - "sourceUnit": 10844, - "src": "222:36:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IWETH.sol", - "file": "./../interfaces/IWETH.sol", - "id": 7429, - "nodeType": "ImportDirective", - "scope": 8820, - "sourceUnit": 10880, - "src": "259:35:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/SafeMath.sol", - "file": "./../libraries/SafeMath.sol", - "id": 7430, - "nodeType": "ImportDirective", - "scope": 8820, - "sourceUnit": 12368, - "src": "295:37:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/DXswapLibrary.sol", - "file": "./../libraries/DXswapLibrary.sol", - "id": 7431, - "nodeType": "ImportDirective", - "scope": 8820, - "sourceUnit": 11621, - "src": "333:42:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8819, - "linearizedBaseContracts": [ - 8819 - ], - "name": "DXswapRelayer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 7434, - "libraryName": { - "contractScope": null, - "id": 7432, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12367, - "src": "412:8:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$12367", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "406:27:6", - "typeName": { - "id": 7433, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "425:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "anonymous": false, - "documentation": null, - "id": 7440, - "name": "NewOrder", - "nodeType": "EventDefinition", - "parameters": { - "id": 7439, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7436, - "indexed": true, - "mutability": "mutable", - "name": "_orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7440, - "src": "463:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7435, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "463:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7438, - "indexed": true, - "mutability": "mutable", - "name": "_action", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7440, - "src": "500:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7437, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "500:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "453:74:6" - }, - "src": "439:89:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 7444, - "name": "ExecutedOrder", - "nodeType": "EventDefinition", - "parameters": { - "id": 7443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7442, - "indexed": true, - "mutability": "mutable", - "name": "_orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7444, - "src": "563:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7441, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "563:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "553:43:6" - }, - "src": "534:63:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 7448, - "name": "WithdrawnExpiredOrder", - "nodeType": "EventDefinition", - "parameters": { - "id": 7447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7446, - "indexed": true, - "mutability": "mutable", - "name": "_orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7448, - "src": "640:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7445, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "640:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "630:43:6" - }, - "src": "603:71:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 7454, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 7453, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7450, - "indexed": true, - "mutability": "mutable", - "name": "previousOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7454, - "src": "707:29:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7449, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "707:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7452, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7454, - "src": "738:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7451, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "738:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "706:57:6" - }, - "src": "680:84:6" - }, - { - "canonicalName": "DXswapRelayer.Order", - "id": 7485, - "members": [ - { - "constant": false, - "id": 7456, - "mutability": "mutable", - "name": "action", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "793:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7455, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "793:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7458, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "841:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7457, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "841:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7460, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "865:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "865:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7462, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "889:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7461, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "889:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7464, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "914:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7463, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "914:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7466, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "939:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7465, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "939:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7468, - "mutability": "mutable", - "name": "priceTolerance", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "966:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "966:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7470, - "mutability": "mutable", - "name": "minReserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "998:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7469, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "998:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7472, - "mutability": "mutable", - "name": "minReserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "1027:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7471, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1027:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7474, - "mutability": "mutable", - "name": "oraclePair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "1056:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7473, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1056:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7476, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "1084:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7475, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1084:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7478, - "mutability": "mutable", - "name": "maxWindowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "1110:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7477, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1110:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7480, - "mutability": "mutable", - "name": "oracleId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "1141:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7479, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1141:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7482, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "1167:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1167:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7484, - "mutability": "mutable", - "name": "executed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7485, - "src": "1192:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7483, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1192:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Order", - "nodeType": "StructDefinition", - "scope": 8819, - "src": "770:442:6", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "8c0a63bf", - "id": 7488, - "mutability": "immutable", - "name": "GAS_ORACLE_UPDATE", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1218:51:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7486, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1218:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "313638333634", - "id": 7487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1263:6:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_168364_by_1", - "typeString": "int_const 168364" - }, - "value": "168364" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "ec6ea812", - "id": 7491, - "mutability": "immutable", - "name": "PARTS_PER_MILLION", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1275:52:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7489, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1275:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 7490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1320:7:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "d081f2b8", - "id": 7494, - "mutability": "immutable", - "name": "BOUNTY", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1333:44:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7492, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1333:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e3031", - "id": 7493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1367:10:6", - "subdenomination": "ether", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "value": "0.01" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "b964930a", - "id": 7497, - "mutability": "immutable", - "name": "PROVISION", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1400:36:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7495, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1400:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 7496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1435:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "4860bfe5", - "id": 7500, - "mutability": "immutable", - "name": "REMOVAL", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1442:34:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7498, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1442:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 7499, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1475:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "659bd06f", - "id": 7502, - "mutability": "immutable", - "name": "dxSwapFactory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1483:38:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7501, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1483:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "9dd9b5f1", - "id": 7504, - "mutability": "immutable", - "name": "dxSwapRouter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1527:37:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7503, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1527:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "8bdb2afa", - "id": 7506, - "mutability": "immutable", - "name": "uniswapFactory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1570:39:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7505, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1570:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "735de9f7", - "id": 7508, - "mutability": "immutable", - "name": "uniswapRouter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1615:38:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1615:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "ad5c4648", - "id": 7510, - "mutability": "immutable", - "name": "WETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1659:29:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1659:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7512, - "mutability": "mutable", - "name": "oracleCreator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1695:27:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - }, - "typeName": { - "contractScope": null, - "id": 7511, - "name": "OracleCreator", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10028, - "src": "1695:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "functionSelector": "2453ffa8", - "id": 7514, - "mutability": "mutable", - "name": "orderCount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1728:25:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7513, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1728:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7518, - "mutability": "mutable", - "name": "orders", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1759:32:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order)" - }, - "typeName": { - "id": 7517, - "keyType": { - "id": 7515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1767:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "1759:25:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order)" - }, - "valueType": { - "contractScope": null, - "id": 7516, - "name": "Order", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7485, - "src": "1778:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 7520, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8819, - "src": "1797:28:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 7519, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1797:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 7565, - "nodeType": "Block", - "src": "2078:253:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7537, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "2088:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7538, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7522, - "src": "2096:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2088:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 7540, - "nodeType": "ExpressionStatement", - "src": "2088:14:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7541, - "name": "dxSwapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7502, - "src": "2112:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7542, - "name": "_dxSwapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7524, - "src": "2128:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2112:30:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7544, - "nodeType": "ExpressionStatement", - "src": "2112:30:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7545, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "2152:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7546, - "name": "_dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7526, - "src": "2167:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2152:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7548, - "nodeType": "ExpressionStatement", - "src": "2152:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7549, - "name": "uniswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7506, - "src": "2190:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7550, - "name": "_uniswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7528, - "src": "2207:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2190:32:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7552, - "nodeType": "ExpressionStatement", - "src": "2190:32:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7553, - "name": "uniswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7508, - "src": "2232:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7554, - "name": "_uniswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "2248:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2232:30:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7556, - "nodeType": "ExpressionStatement", - "src": "2232:30:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7557, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "2272:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7558, - "name": "_WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7532, - "src": "2279:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2272:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7560, - "nodeType": "ExpressionStatement", - "src": "2272:12:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7561, - "name": "oracleCreator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7512, - "src": "2294:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7562, - "name": "_oracleCreater", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7534, - "src": "2310:14:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "src": "2294:30:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "id": 7564, - "nodeType": "ExpressionStatement", - "src": "2294:30:6" - } - ] - }, - "documentation": null, - "id": 7566, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 7535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7522, - "mutability": "mutable", - "name": "_owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7566, - "src": "1853:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 7521, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1853:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7524, - "mutability": "mutable", - "name": "_dxSwapFactory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7566, - "src": "1885:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1885:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7526, - "mutability": "mutable", - "name": "_dxSwapRouter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7566, - "src": "1917:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1917:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7528, - "mutability": "mutable", - "name": "_uniswapFactory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7566, - "src": "1948:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1948:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7530, - "mutability": "mutable", - "name": "_uniswapRouter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7566, - "src": "1981:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7529, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1981:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7532, - "mutability": "mutable", - "name": "_WETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7566, - "src": "2013:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2013:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7534, - "mutability": "mutable", - "name": "_oracleCreater", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7566, - "src": "2036:28:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - }, - "typeName": { - "contractScope": null, - "id": 7533, - "name": "OracleCreator", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10028, - "src": "2036:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1843:227:6" - }, - "returnParameters": { - "id": 7536, - "nodeType": "ParameterList", - "parameters": [], - "src": "2078:0:6" - }, - "scope": 8819, - "src": "1832:499:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 7822, - "nodeType": "Block", - "src": "2692:2491:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7592, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7586, - "src": "2710:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7593, - "name": "dxSwapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7502, - "src": "2721:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2710:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7595, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7586, - "src": "2738:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7596, - "name": "uniswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7506, - "src": "2749:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2738:25:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2710:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f464143544f5259", - "id": 7599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2765:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a935c87b45fcf1f3d29e0231e4c16979ea61af239ab88c9c2733cade5d27baa", - "typeString": "literal_string \"DXswapRelayer: INVALID_FACTORY\"" - }, - "value": "DXswapRelayer: INVALID_FACTORY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a935c87b45fcf1f3d29e0231e4c16979ea61af239ab88c9c2733cade5d27baa", - "typeString": "literal_string \"DXswapRelayer: INVALID_FACTORY\"" - } - ], - "id": 7591, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2702:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2702:96:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7601, - "nodeType": "ExpressionStatement", - "src": "2702:96:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 7606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7603, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2816:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2816:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7605, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "2830:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2816:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e4552", - "id": 7607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2837:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - }, - "value": "DXswapRelayer: CALLER_NOT_OWNER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - } - ], - "id": 7602, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2808:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2808:63:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7609, - "nodeType": "ExpressionStatement", - "src": "2808:63:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7611, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7568, - "src": "2889:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 7612, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7570, - "src": "2899:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2889:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f50414952", - "id": 7614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2907:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4ce20f4853c4525827b3f21dbb564659bd499293c77c3b79b2fc7197ea8a8f87", - "typeString": "literal_string \"DXswapRelayer: INVALID_PAIR\"" - }, - "value": "DXswapRelayer: INVALID_PAIR" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4ce20f4853c4525827b3f21dbb564659bd499293c77c3b79b2fc7197ea8a8f87", - "typeString": "literal_string \"DXswapRelayer: INVALID_PAIR\"" - } - ], - "id": 7610, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2881:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2881:56:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7616, - "nodeType": "ExpressionStatement", - "src": "2881:56:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7618, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7568, - "src": "2955:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 7619, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7570, - "src": "2964:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2955:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f544f4b454e5f4f52444552", - "id": 7621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2972:36:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5a6a8c4ea3309cce2828bfd6f701e32fd43731ae962ad3534fb486440b8ac26a", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOKEN_ORDER\"" - }, - "value": "DXswapRelayer: INVALID_TOKEN_ORDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5a6a8c4ea3309cce2828bfd6f701e32fd43731ae962ad3534fb486440b8ac26a", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOKEN_ORDER\"" - } - ], - "id": 7617, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2947:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2947:62:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7623, - "nodeType": "ExpressionStatement", - "src": "2947:62:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7625, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7572, - "src": "3027:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3037:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3027:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7628, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7574, - "src": "3042:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3052:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3042:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3027:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f544f4b454e5f414d4f554e54", - "id": 7632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3055:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b97996e19c735ae1177b64ea1c0a18ec57e47a599260810ea90abfcf60592907", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOKEN_AMOUNT\"" - }, - "value": "DXswapRelayer: INVALID_TOKEN_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b97996e19c735ae1177b64ea1c0a18ec57e47a599260810ea90abfcf60592907", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOKEN_AMOUNT\"" - } - ], - "id": 7624, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3019:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3019:74:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7634, - "nodeType": "ExpressionStatement", - "src": "3019:74:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7636, - "name": "priceTolerance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7576, - "src": "3111:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7637, - "name": "PARTS_PER_MILLION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7491, - "src": "3129:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3111:35:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f544f4c4552414e4345", - "id": 7639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3148:34:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0ae2f56a092c011aab24841fa5a66807910fff53c228c1a144c4f028f72cc7b3", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOLERANCE\"" - }, - "value": "DXswapRelayer: INVALID_TOLERANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0ae2f56a092c011aab24841fa5a66807910fff53c228c1a144c4f028f72cc7b3", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOLERANCE\"" - } - ], - "id": 7635, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3103:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3103:80:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7641, - "nodeType": "ExpressionStatement", - "src": "3103:80:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7643, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "3201:5:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 7644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3201:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7645, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7584, - "src": "3220:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3201:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20444541444c494e455f52454143484544", - "id": 7647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3230:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c224c2141da650ea7918fac6d76a698143ebafed5e80cdcfd8ec26291a48ce4c", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_REACHED\"" - }, - "value": "DXswapRelayer: DEADLINE_REACHED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c224c2141da650ea7918fac6d76a698143ebafed5e80cdcfd8ec26291a48ce4c", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_REACHED\"" - } - ], - "id": 7642, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3193:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3193:71:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7649, - "nodeType": "ExpressionStatement", - "src": "3193:71:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7651, - "name": "maxWindowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7582, - "src": "3282:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3330", - "id": 7652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3298:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_30_by_1", - "typeString": "int_const 30" - }, - "value": "30" - }, - "src": "3282:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f57494e444f5754494d45", - "id": 7654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3302:35:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_371621ef35f043d2d73e18490a6d38cf5eee6550055e3d5d223304757034e7fe", - "typeString": "literal_string \"DXswapRelayer: INVALID_WINDOWTIME\"" - }, - "value": "DXswapRelayer: INVALID_WINDOWTIME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_371621ef35f043d2d73e18490a6d38cf5eee6550055e3d5d223304757034e7fe", - "typeString": "literal_string \"DXswapRelayer: INVALID_WINDOWTIME\"" - } - ], - "id": 7650, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3274:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3274:64:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7656, - "nodeType": "ExpressionStatement", - "src": "3274:64:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7657, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7568, - "src": "3361:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 7660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3379:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 7659, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3371:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7658, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3371:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 7661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3371:10:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3361:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 7690, - "nodeType": "Block", - "src": "3490:123:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7682, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3545:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - ], - "id": 7681, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3537:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3537:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 7683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3537:13:6", - "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": 7677, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7568, - "src": "3519:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7676, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10843, - "src": "3512:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$10843_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 7678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3512:14:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$10843", - "typeString": "contract IERC20" - } - }, - "id": 7679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10804, - "src": "3512:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 7684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3512:39:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 7685, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7572, - "src": "3555:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3512:50:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e53554646494349454e545f544f4b454e5f41", - "id": 7687, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3564:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba81c9344c261f117740ce4aa2b7bf339c4c5e7420a493ee1ceb8457d0db7b80", - "typeString": "literal_string \"DXswapRelayer: INSUFFICIENT_TOKEN_A\"" - }, - "value": "DXswapRelayer: INSUFFICIENT_TOKEN_A" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ba81c9344c261f117740ce4aa2b7bf339c4c5e7420a493ee1ceb8457d0db7b80", - "typeString": "literal_string \"DXswapRelayer: INSUFFICIENT_TOKEN_A\"" - } - ], - "id": 7675, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3504:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3504:98:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7689, - "nodeType": "ExpressionStatement", - "src": "3504:98:6" - } - ] - }, - "id": 7691, - "nodeType": "IfStatement", - "src": "3357:256:6", - "trueBody": { - "id": 7674, - "nodeType": "Block", - "src": "3383:101:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7666, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3413:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - ], - "id": 7665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3405:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7664, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3405:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 7667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3405:13:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 7668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3405:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 7669, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7572, - "src": "3430:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3405:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e53554646494349454e545f455448", - "id": 7671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3439:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5216fc77910855f89ca76e70dc15c33e405d9c131cfde48afec4a265dcbe2cda", - "typeString": "literal_string \"DXswapRelayer: INSUFFICIENT_ETH\"" - }, - "value": "DXswapRelayer: INSUFFICIENT_ETH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5216fc77910855f89ca76e70dc15c33e405d9c131cfde48afec4a265dcbe2cda", - "typeString": "literal_string \"DXswapRelayer: INSUFFICIENT_ETH\"" - } - ], - "id": 7663, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3397:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3397:76:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7673, - "nodeType": "ExpressionStatement", - "src": "3397:76:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7699, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3663:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - ], - "id": 7698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3655:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7697, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3655:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 7700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3655:13:6", - "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": 7694, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7570, - "src": "3637:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7693, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10843, - "src": "3630:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$10843_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 7695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3630:14:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$10843", - "typeString": "contract IERC20" - } - }, - "id": 7696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 10804, - "src": "3630:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 7701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3630:39:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 7702, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7574, - "src": "3673:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3630:50:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e53554646494349454e545f544f4b454e5f42", - "id": 7704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3682:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c6ba3fb0d83affa8bfafd659ef206ca2c5542cfe6d72c0b33d5c7728770a3c2b", - "typeString": "literal_string \"DXswapRelayer: INSUFFICIENT_TOKEN_B\"" - }, - "value": "DXswapRelayer: INSUFFICIENT_TOKEN_B" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c6ba3fb0d83affa8bfafd659ef206ca2c5542cfe6d72c0b33d5c7728770a3c2b", - "typeString": "literal_string \"DXswapRelayer: INSUFFICIENT_TOKEN_B\"" - } - ], - "id": 7692, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3622:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3622:98:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7706, - "nodeType": "ExpressionStatement", - "src": "3622:98:6" - }, - { - "assignments": [ - 7708 - ], - "declarations": [ - { - "constant": false, - "id": 7708, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7822, - "src": "3731:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3731:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7714, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7710, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7568, - "src": "3752:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7711, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7570, - "src": "3760:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7712, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7586, - "src": "3768:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7709, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8717, - "src": "3746:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) view returns (address)" - } - }, - "id": 7713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3746:30:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3731:45:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7715, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7589, - "src": "3786:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7716, - "name": "_OrderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8730, - "src": "3799:11:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 7717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3799:13:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3786:26:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7719, - "nodeType": "ExpressionStatement", - "src": "3786:26:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7720, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "3822:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 7722, - "indexExpression": { - "argumentTypes": null, - "id": 7721, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7589, - "src": "3829:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3822:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7724, - "name": "PROVISION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7497, - "src": "3871:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 7725, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7568, - "src": "3902:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7726, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7570, - "src": "3930:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7727, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7572, - "src": "3959:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7728, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7574, - "src": "3989:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 7729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4021:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 7730, - "name": "priceTolerance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7576, - "src": "4052:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7731, - "name": "minReserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "4093:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7732, - "name": "minReserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7580, - "src": "4131:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7733, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7708, - "src": "4168:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7734, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7584, - "src": "4196:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7735, - "name": "maxWindowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7582, - "src": "4233:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 7736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4270:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 7737, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7586, - "src": "4294:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4325:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7723, - "name": "Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7485, - "src": "3843:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Order_$7485_storage_ptr_$", - "typeString": "type(struct DXswapRelayer.Order storage pointer)" - } - }, - "id": 7739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "action", - "tokenA", - "tokenB", - "amountA", - "amountB", - "liquidity", - "priceTolerance", - "minReserveA", - "minReserveB", - "oraclePair", - "deadline", - "maxWindowTime", - "oracleId", - "factory", - "executed" - ], - "nodeType": "FunctionCall", - "src": "3843:498:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_memory_ptr", - "typeString": "struct DXswapRelayer.Order memory" - } - }, - "src": "3822:519:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "id": 7741, - "nodeType": "ExpressionStatement", - "src": "3822:519:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7743, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7589, - "src": "4365:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7744, - "name": "PROVISION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7497, - "src": "4377:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 7742, - "name": "NewOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7440, - "src": "4356:8:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint8_$returns$__$", - "typeString": "function (uint256,uint8)" - } - }, - "id": 7745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4356:31:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7746, - "nodeType": "EmitStatement", - "src": "4351:36:6" - }, - { - "assignments": [ - 7748, - 7750, - null - ], - "declarations": [ - { - "constant": false, - "id": 7748, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7822, - "src": "4399:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7747, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4399:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7750, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7822, - "src": "4414:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7749, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4414:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 7756, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7752, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7708, - "src": "4444:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7751, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "4432:11:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 7753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4432:17:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 7754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 268, - "src": "4432:29:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 7755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4432:31:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4398:65:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7757, - "name": "minReserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "4477:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4492:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4477:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7760, - "name": "minReserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7580, - "src": "4497:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4512:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4497:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4477:36:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7764, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7748, - "src": "4517:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7765, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4529:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4517:13:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4477:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7768, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7750, - "src": "4534:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4546:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4534:13:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4477:70:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 7820, - "nodeType": "Block", - "src": "4877:300:6", - "statements": [ - { - "assignments": [ - 7800 - ], - "declarations": [ - { - "constant": false, - "id": 7800, - "mutability": "mutable", - "name": "windowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7820, - "src": "4980:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4980:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7808, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7802, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7572, - "src": "5026:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7803, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7574, - "src": "5035:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7804, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7748, - "src": "5044:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7805, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7750, - "src": "5054:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7806, - "name": "maxWindowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7582, - "src": "5064:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7801, - "name": "_consultOracleParameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "5001:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256) view returns (uint256)" - } - }, - "id": 7807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5001:77:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4980:98:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7809, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "5092:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 7811, - "indexExpression": { - "argumentTypes": null, - "id": 7810, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7589, - "src": "5099:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5092:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "id": 7812, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "oracleId", - "nodeType": "MemberAccess", - "referencedDeclaration": 7480, - "src": "5092:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7815, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7800, - "src": "5149:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7816, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7708, - "src": "5161:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 7813, - "name": "oracleCreator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7512, - "src": "5122:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "id": 7814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 9820, - "src": "5122:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$", - "typeString": "function (uint256,address) external returns (uint256)" - } - }, - "id": 7817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5122:44:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5092:74:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7819, - "nodeType": "ExpressionStatement", - "src": "5092:74:6" - } - ] - }, - "id": 7821, - "nodeType": "IfStatement", - "src": "4473:704:6", - "trueBody": { - "id": 7798, - "nodeType": "Block", - "src": "4549:322:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7772, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "4673:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 7774, - "indexExpression": { - "argumentTypes": null, - "id": 7773, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7589, - "src": "4680:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4673:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "id": 7775, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "executed", - "nodeType": "MemberAccess", - "referencedDeclaration": 7484, - "src": "4673:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4703:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4673:34:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7778, - "nodeType": "ExpressionStatement", - "src": "4673:34:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7780, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7568, - "src": "4727:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7781, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7570, - "src": "4735:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7782, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7572, - "src": "4743:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7783, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7574, - "src": "4752:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7784, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "4761:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 7786, - "indexExpression": { - "argumentTypes": null, - "id": 7785, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7589, - "src": "4768:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4761:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "id": 7787, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountA", - "nodeType": "MemberAccess", - "referencedDeclaration": 7462, - "src": "4761:26:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7788, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "4789:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 7790, - "indexExpression": { - "argumentTypes": null, - "id": 7789, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7589, - "src": "4796:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4789:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "id": 7791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountA", - "nodeType": "MemberAccess", - "referencedDeclaration": 7462, - "src": "4789:26:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7779, - "name": "_pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8488, - "src": "4721:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256,uint256)" - } - }, - "id": 7792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4721:95:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7793, - "nodeType": "ExpressionStatement", - "src": "4721:95:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7795, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7589, - "src": "4849:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7794, - "name": "ExecutedOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7444, - "src": "4835:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 7796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4835:25:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7797, - "nodeType": "EmitStatement", - "src": "4830:30:6" - } - ] - } - } - ] - }, - "documentation": null, - "functionSelector": "b7345d2f", - "id": 7823, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "orderLiquidityProvision", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 7587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7568, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2379:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7567, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2379:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7570, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2403:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7569, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2403:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7572, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2427:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7571, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2427:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7574, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2452:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7573, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2452:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7576, - "mutability": "mutable", - "name": "priceTolerance", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2477:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7575, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2477:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7578, - "mutability": "mutable", - "name": "minReserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2509:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7577, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2509:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7580, - "mutability": "mutable", - "name": "minReserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2538:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7579, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2538:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7582, - "mutability": "mutable", - "name": "maxWindowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2567:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7581, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2567:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7584, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2598:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7583, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2598:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7586, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2624:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7585, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2624:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2369:276:6" - }, - "returnParameters": { - "id": 7590, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7589, - "mutability": "mutable", - "name": "orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 7823, - "src": "2672:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7588, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2672:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2671:20:6" - }, - "scope": 8819, - "src": "2337:2846:6", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8015, - "nodeType": "Block", - "src": "5561:1766:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7851, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7845, - "src": "5579:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7852, - "name": "dxSwapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7502, - "src": "5590:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5579:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7854, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7845, - "src": "5607:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7855, - "name": "uniswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7506, - "src": "5618:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5607:25:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5579:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f464143544f5259", - "id": 7858, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5634:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a935c87b45fcf1f3d29e0231e4c16979ea61af239ab88c9c2733cade5d27baa", - "typeString": "literal_string \"DXswapRelayer: INVALID_FACTORY\"" - }, - "value": "DXswapRelayer: INVALID_FACTORY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a935c87b45fcf1f3d29e0231e4c16979ea61af239ab88c9c2733cade5d27baa", - "typeString": "literal_string \"DXswapRelayer: INVALID_FACTORY\"" - } - ], - "id": 7850, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5571:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5571:96:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7860, - "nodeType": "ExpressionStatement", - "src": "5571:96:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 7865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7862, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5685:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5685:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7864, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "5699:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5685:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e4552", - "id": 7866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5706:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - }, - "value": "DXswapRelayer: CALLER_NOT_OWNER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - } - ], - "id": 7861, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5677:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5677:63:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7868, - "nodeType": "ExpressionStatement", - "src": "5677:63:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7870, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7825, - "src": "5758:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 7871, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7827, - "src": "5768:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5758:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f50414952", - "id": 7873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5776:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4ce20f4853c4525827b3f21dbb564659bd499293c77c3b79b2fc7197ea8a8f87", - "typeString": "literal_string \"DXswapRelayer: INVALID_PAIR\"" - }, - "value": "DXswapRelayer: INVALID_PAIR" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4ce20f4853c4525827b3f21dbb564659bd499293c77c3b79b2fc7197ea8a8f87", - "typeString": "literal_string \"DXswapRelayer: INVALID_PAIR\"" - } - ], - "id": 7869, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5750:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5750:56:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7875, - "nodeType": "ExpressionStatement", - "src": "5750:56:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7877, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7825, - "src": "5824:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 7878, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7827, - "src": "5833:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5824:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f544f4b454e5f4f52444552", - "id": 7880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5841:36:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5a6a8c4ea3309cce2828bfd6f701e32fd43731ae962ad3534fb486440b8ac26a", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOKEN_ORDER\"" - }, - "value": "DXswapRelayer: INVALID_TOKEN_ORDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5a6a8c4ea3309cce2828bfd6f701e32fd43731ae962ad3534fb486440b8ac26a", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOKEN_ORDER\"" - } - ], - "id": 7876, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5816:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5816:62:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7882, - "nodeType": "ExpressionStatement", - "src": "5816:62:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7884, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7831, - "src": "5896:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7885, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5906:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5896:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7887, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7833, - "src": "5911:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5921:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5911:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5896:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7891, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7829, - "src": "5926:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5938:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5926:13:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5896:43:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f4c49515549444954595f414d4f554e54", - "id": 7895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5941:41:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bd78ed5acd6a4dc49b6d6bf4afb262e0127305a7dd7f3b2504b64801bc68b819", - "typeString": "literal_string \"DXswapRelayer: INVALID_LIQUIDITY_AMOUNT\"" - }, - "value": "DXswapRelayer: INVALID_LIQUIDITY_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bd78ed5acd6a4dc49b6d6bf4afb262e0127305a7dd7f3b2504b64801bc68b819", - "typeString": "literal_string \"DXswapRelayer: INVALID_LIQUIDITY_AMOUNT\"" - } - ], - "id": 7883, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5888:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5888:95:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7897, - "nodeType": "ExpressionStatement", - "src": "5888:95:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7899, - "name": "priceTolerance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7835, - "src": "6001:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7900, - "name": "PARTS_PER_MILLION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7491, - "src": "6019:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6001:35:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f544f4c4552414e4345", - "id": 7902, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6038:34:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0ae2f56a092c011aab24841fa5a66807910fff53c228c1a144c4f028f72cc7b3", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOLERANCE\"" - }, - "value": "DXswapRelayer: INVALID_TOLERANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0ae2f56a092c011aab24841fa5a66807910fff53c228c1a144c4f028f72cc7b3", - "typeString": "literal_string \"DXswapRelayer: INVALID_TOLERANCE\"" - } - ], - "id": 7898, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5993:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5993:80:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7904, - "nodeType": "ExpressionStatement", - "src": "5993:80:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7906, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "6091:5:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 7907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6091:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7908, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7843, - "src": "6110:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6091:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20444541444c494e455f52454143484544", - "id": 7910, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6120:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c224c2141da650ea7918fac6d76a698143ebafed5e80cdcfd8ec26291a48ce4c", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_REACHED\"" - }, - "value": "DXswapRelayer: DEADLINE_REACHED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c224c2141da650ea7918fac6d76a698143ebafed5e80cdcfd8ec26291a48ce4c", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_REACHED\"" - } - ], - "id": 7905, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6083:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6083:71:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7912, - "nodeType": "ExpressionStatement", - "src": "6083:71:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7914, - "name": "maxWindowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7841, - "src": "6172:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3330", - "id": 7915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6188:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_30_by_1", - "typeString": "int_const 30" - }, - "value": "30" - }, - "src": "6172:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f57494e444f5754494d45", - "id": 7917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6192:35:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_371621ef35f043d2d73e18490a6d38cf5eee6550055e3d5d223304757034e7fe", - "typeString": "literal_string \"DXswapRelayer: INVALID_WINDOWTIME\"" - }, - "value": "DXswapRelayer: INVALID_WINDOWTIME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_371621ef35f043d2d73e18490a6d38cf5eee6550055e3d5d223304757034e7fe", - "typeString": "literal_string \"DXswapRelayer: INVALID_WINDOWTIME\"" - } - ], - "id": 7913, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6164:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6164:64:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7919, - "nodeType": "ExpressionStatement", - "src": "6164:64:6" - }, - { - "assignments": [ - 7921 - ], - "declarations": [ - { - "constant": false, - "id": 7921, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8015, - "src": "6239:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7920, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6239:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7927, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7923, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7825, - "src": "6260:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7924, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7827, - "src": "6268:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7925, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7845, - "src": "6276:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7922, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8717, - "src": "6254:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) view returns (address)" - } - }, - "id": 7926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6254:30:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6239:45:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7928, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7848, - "src": "6294:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7929, - "name": "_OrderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8730, - "src": "6307:11:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 7930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6307:13:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6294:26:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7932, - "nodeType": "ExpressionStatement", - "src": "6294:26:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7933, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "6330:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 7935, - "indexExpression": { - "argumentTypes": null, - "id": 7934, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7848, - "src": "6337:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6330:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7937, - "name": "REMOVAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7500, - "src": "6379:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 7938, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7825, - "src": "6408:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7939, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7827, - "src": "6436:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7940, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7831, - "src": "6465:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7941, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7833, - "src": "6495:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7942, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7829, - "src": "6527:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7943, - "name": "priceTolerance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7835, - "src": "6566:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7944, - "name": "minReserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7837, - "src": "6607:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7945, - "name": "minReserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7839, - "src": "6645:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7946, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7921, - "src": "6682:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7947, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7843, - "src": "6710:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7948, - "name": "maxWindowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7841, - "src": "6747:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 7949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6784:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 7950, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7845, - "src": "6808:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6839:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7936, - "name": "Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7485, - "src": "6351:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Order_$7485_storage_ptr_$", - "typeString": "type(struct DXswapRelayer.Order storage pointer)" - } - }, - "id": 7952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "action", - "tokenA", - "tokenB", - "amountA", - "amountB", - "liquidity", - "priceTolerance", - "minReserveA", - "minReserveB", - "oraclePair", - "deadline", - "maxWindowTime", - "oracleId", - "factory", - "executed" - ], - "nodeType": "FunctionCall", - "src": "6351:504:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_memory_ptr", - "typeString": "struct DXswapRelayer.Order memory" - } - }, - "src": "6330:525:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "id": 7954, - "nodeType": "ExpressionStatement", - "src": "6330:525:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 7965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7955, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7825, - "src": "6866:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7956, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7825, - "src": "6875:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 7959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6893:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 7958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6885:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6885:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 7960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6885:10:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6875:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 7963, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7825, - "src": "6905:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6875:36:6", - "trueExpression": { - "argumentTypes": null, - "id": 7962, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "6898:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6866:45:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7966, - "nodeType": "ExpressionStatement", - "src": "6866:45:6" - }, - { - "assignments": [ - 7968 - ], - "declarations": [ - { - "constant": false, - "id": 7968, - "mutability": "mutable", - "name": "dxSwapPair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8015, - "src": "6921:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7967, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6921:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7978, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7973, - "name": "dxSwapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7502, - "src": "6972:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6964:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 7971, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6964:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 7974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6964:22:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7975, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7825, - "src": "6988:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7976, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7827, - "src": "6996:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 7969, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "6942:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 7970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "6942:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 7977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6942:61:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6921:82:6" - }, - { - "assignments": [ - 7980, - 7982, - null - ], - "declarations": [ - { - "constant": false, - "id": 7980, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8015, - "src": "7014:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7979, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7014:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7982, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8015, - "src": "7029:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7981, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7029:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 7988, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7984, - "name": "dxSwapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7968, - "src": "7059:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7983, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "7047:11:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 7985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7047:23:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 7986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 268, - "src": "7047:35:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 7987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7047:37:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7013:71:6" - }, - { - "assignments": [ - 7990 - ], - "declarations": [ - { - "constant": false, - "id": 7990, - "mutability": "mutable", - "name": "windowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8015, - "src": "7094:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7094:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7998, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7992, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7831, - "src": "7140:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7993, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7833, - "src": "7149:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7994, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7980, - "src": "7158:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7995, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7982, - "src": "7168:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7996, - "name": "maxWindowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7841, - "src": "7178:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7991, - "name": "_consultOracleParameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "7115:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256) view returns (uint256)" - } - }, - "id": 7997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7115:77:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7094:98:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 8008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7999, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "7202:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 8001, - "indexExpression": { - "argumentTypes": null, - "id": 8000, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7848, - "src": "7209:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7202:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "id": 8002, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "oracleId", - "nodeType": "MemberAccess", - "referencedDeclaration": 7480, - "src": "7202:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8005, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7990, - "src": "7259:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8006, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7921, - "src": "7271:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 8003, - "name": "oracleCreator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7512, - "src": "7232:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "id": 8004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 9820, - "src": "7232:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$", - "typeString": "function (uint256,address) external returns (uint256)" - } - }, - "id": 8007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7232:44:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7202:74:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8009, - "nodeType": "ExpressionStatement", - "src": "7202:74:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8011, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7848, - "src": "7300:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8012, - "name": "REMOVAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7500, - "src": "7312:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 8010, - "name": "NewOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7440, - "src": "7291:8:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint8_$returns$__$", - "typeString": "function (uint256,uint8)" - } - }, - "id": 8013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7291:29:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8014, - "nodeType": "EmitStatement", - "src": "7286:34:6" - } - ] - }, - "documentation": null, - "functionSelector": "8d091c34", - "id": 8016, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "orderLiquidityRemoval", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 7846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7825, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5229:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5229:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7827, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5253:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5253:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7829, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5277:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7828, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5277:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7831, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5304:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7830, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5304:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7833, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5329:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7832, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5329:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7835, - "mutability": "mutable", - "name": "priceTolerance", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5354:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7834, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5354:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7837, - "mutability": "mutable", - "name": "minReserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5386:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5386:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7839, - "mutability": "mutable", - "name": "minReserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5415:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7838, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5415:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7841, - "mutability": "mutable", - "name": "maxWindowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5444:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7840, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7843, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5475:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7842, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5475:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7845, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5501:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7844, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5501:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5219:303:6" - }, - "returnParameters": { - "id": 7849, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7848, - "mutability": "mutable", - "name": "orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8016, - "src": "5541:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7847, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5541:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5540:20:6" - }, - "scope": 8819, - "src": "5189:2138:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8198, - "nodeType": "Block", - "src": "7384:1599:6", - "statements": [ - { - "assignments": [ - 8022 - ], - "declarations": [ - { - "constant": false, - "id": 8022, - "mutability": "mutable", - "name": "order", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8198, - "src": "7394:19:6", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order" - }, - "typeName": { - "contractScope": null, - "id": 8021, - "name": "Order", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7485, - "src": "7394:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8026, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8023, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "7416:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 8025, - "indexExpression": { - "argumentTypes": null, - "id": 8024, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8018, - "src": "7423:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7416:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7394:40:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8028, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8018, - "src": "7452:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8029, - "name": "orderCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7514, - "src": "7465:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7452:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f4f52444552", - "id": 8031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7477:30:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8de2604cb8d87008a231a6ebbeab5537a9b0ec89e6ddefdc3e75adf1f2265991", - "typeString": "literal_string \"DXswapRelayer: INVALID_ORDER\"" - }, - "value": "DXswapRelayer: INVALID_ORDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8de2604cb8d87008a231a6ebbeab5537a9b0ec89e6ddefdc3e75adf1f2265991", - "typeString": "literal_string \"DXswapRelayer: INVALID_ORDER\"" - } - ], - "id": 8027, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7444:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7444:64:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8033, - "nodeType": "ExpressionStatement", - "src": "7444:64:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7526:15:6", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8035, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "7527:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8036, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "executed", - "nodeType": "MemberAccess", - "referencedDeclaration": 7484, - "src": "7527:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a204f524445525f4558454355544544", - "id": 8038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7543:31:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_83e2e318cc92f9feb162aa3c933f1a36e4bed6c4f460bce364c794e787324589", - "typeString": "literal_string \"DXswapRelayer: ORDER_EXECUTED\"" - }, - "value": "DXswapRelayer: ORDER_EXECUTED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_83e2e318cc92f9feb162aa3c933f1a36e4bed6c4f460bce364c794e787324589", - "typeString": "literal_string \"DXswapRelayer: ORDER_EXECUTED\"" - } - ], - "id": 8034, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7518:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7518:57:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8040, - "nodeType": "ExpressionStatement", - "src": "7518:57:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8044, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "7625:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8045, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "oracleId", - "nodeType": "MemberAccess", - "referencedDeclaration": 7480, - "src": "7625:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8042, - "name": "oracleCreator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7512, - "src": "7593:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "id": 8043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOracleFinalized", - "nodeType": "MemberAccess", - "referencedDeclaration": 10015, - "src": "7593:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view external returns (bool)" - } - }, - "id": 8046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7593:47:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a204f42534552564154494f4e5f52554e4e494e47", - "id": 8047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7643:36:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2dffc10633b439475fbb6b646778204fda79efe605e87ad62edf88b34fa0725", - "typeString": "literal_string \"DXswapRelayer: OBSERVATION_RUNNING\"" - }, - "value": "DXswapRelayer: OBSERVATION_RUNNING" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2dffc10633b439475fbb6b646778204fda79efe605e87ad62edf88b34fa0725", - "typeString": "literal_string \"DXswapRelayer: OBSERVATION_RUNNING\"" - } - ], - "id": 8041, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7585:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7585:95:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8049, - "nodeType": "ExpressionStatement", - "src": "7585:95:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8051, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "7698:5:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7698:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8053, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "7717:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8054, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 7476, - "src": "7717:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7698:33:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20444541444c494e455f52454143484544", - "id": 8056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7733:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c224c2141da650ea7918fac6d76a698143ebafed5e80cdcfd8ec26291a48ce4c", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_REACHED\"" - }, - "value": "DXswapRelayer: DEADLINE_REACHED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c224c2141da650ea7918fac6d76a698143ebafed5e80cdcfd8ec26291a48ce4c", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_REACHED\"" - } - ], - "id": 8050, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7690:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7690:77:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8058, - "nodeType": "ExpressionStatement", - "src": "7690:77:6" - }, - { - "assignments": [ - 8060 - ], - "declarations": [ - { - "constant": false, - "id": 8060, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8198, - "src": "7778:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8059, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7778:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8063, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8061, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "7795:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8062, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenA", - "nodeType": "MemberAccess", - "referencedDeclaration": 7458, - "src": "7795:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7778:29:6" - }, - { - "assignments": [ - 8065 - ], - "declarations": [ - { - "constant": false, - "id": 8065, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8198, - "src": "7817:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8064, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7817:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8068, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8066, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "7834:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8067, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenB", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "7834:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7817:29:6" - }, - { - "assignments": [ - 8070 - ], - "declarations": [ - { - "constant": false, - "id": 8070, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8198, - "src": "7856:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8069, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7856:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8071, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7856:15:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 8093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8072, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8070, - "src": "7881:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8075, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "7924:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8076, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "oracleId", - "nodeType": "MemberAccess", - "referencedDeclaration": 7480, - "src": "7924:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8077, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8060, - "src": "7950:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8080, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7968:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8079, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7960:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8078, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7960:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7960:10:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7950:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 8088, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8060, - "src": "8010:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7950:66:6", - "trueExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8084, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "7987:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8083, - "name": "IDXswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10759, - "src": "7973:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapRouter_$10759_$", - "typeString": "type(contract IDXswapRouter)" - } - }, - "id": 8085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7973:27:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 8086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "WETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 10377, - "src": "7973:32:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_pure$__$returns$_t_address_$", - "typeString": "function () pure external returns (address)" - } - }, - "id": 8087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7973:34:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8090, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8028:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8091, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountA", - "nodeType": "MemberAccess", - "referencedDeclaration": 7462, - "src": "8028:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8073, - "name": "oracleCreator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7512, - "src": "7891:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "id": 8074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "consult", - "nodeType": "MemberAccess", - "referencedDeclaration": 10000, - "src": "7891:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,address,uint256) view external returns (uint256)" - } - }, - "id": 8092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7891:161:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7881:171:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8094, - "nodeType": "ExpressionStatement", - "src": "7881:171:6" - }, - { - "assignments": [ - 8096 - ], - "declarations": [ - { - "constant": false, - "id": 8096, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8198, - "src": "8062:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8062:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8099, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8102:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8100, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "oracleId", - "nodeType": "MemberAccess", - "referencedDeclaration": 7480, - "src": "8102:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8101, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8065, - "src": "8118:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8102, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8126:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8103, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountB", - "nodeType": "MemberAccess", - "referencedDeclaration": 7464, - "src": "8126:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8097, - "name": "oracleCreator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7512, - "src": "8080:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "id": 8098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "consult", - "nodeType": "MemberAccess", - "referencedDeclaration": 10000, - "src": "8080:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,address,uint256) view external returns (uint256)" - } - }, - "id": 8104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8080:60:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8062:78:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8106, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8096, - "src": "8199:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8107, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8210:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8108, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountA", - "nodeType": "MemberAccess", - "referencedDeclaration": 7462, - "src": "8210:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8199:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8121, - "nodeType": "Block", - "src": "8278:48:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8116, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8096, - "src": "8292:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8117, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8302:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8118, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountA", - "nodeType": "MemberAccess", - "referencedDeclaration": 7462, - "src": "8302:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8292:23:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8120, - "nodeType": "ExpressionStatement", - "src": "8292:23:6" - } - ] - }, - "id": 8122, - "nodeType": "IfStatement", - "src": "8196:130:6", - "trueBody": { - "id": 8115, - "nodeType": "Block", - "src": "8224:48:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8110, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8070, - "src": "8238:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8111, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8248:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8112, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountB", - "nodeType": "MemberAccess", - "referencedDeclaration": 7464, - "src": "8248:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8238:23:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8114, - "nodeType": "ExpressionStatement", - "src": "8238:23:6" - } - ] - } - }, - { - "assignments": [ - 8124 - ], - "declarations": [ - { - "constant": false, - "id": 8124, - "mutability": "mutable", - "name": "minA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8198, - "src": "8335:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8123, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8335:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8135, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8129, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8374:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8130, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "priceTolerance", - "nodeType": "MemberAccess", - "referencedDeclaration": 7468, - "src": "8374:20:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8127, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8096, - "src": "8362:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "8362:11:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8362:33:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8132, - "name": "PARTS_PER_MILLION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7491, - "src": "8398:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8362:53:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8125, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8096, - "src": "8350:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "8350:11:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8350:66:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8335:81:6" - }, - { - "assignments": [ - 8137 - ], - "declarations": [ - { - "constant": false, - "id": 8137, - "mutability": "mutable", - "name": "minB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8198, - "src": "8426:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8136, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8426:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8148, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8142, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8465:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8143, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "priceTolerance", - "nodeType": "MemberAccess", - "referencedDeclaration": 7468, - "src": "8465:20:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8140, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8070, - "src": "8453:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "8453:11:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8453:33:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8145, - "name": "PARTS_PER_MILLION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7491, - "src": "8489:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8453:53:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8138, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8070, - "src": "8441:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "8441:11:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8441:66:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8426:81:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 8153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8149, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8518:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8151, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "executed", - "nodeType": "MemberAccess", - "referencedDeclaration": 7484, - "src": "8518:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8535:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "8518:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8154, - "nodeType": "ExpressionStatement", - "src": "8518:21:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8155, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8552:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8156, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "action", - "nodeType": "MemberAccess", - "referencedDeclaration": 7456, - "src": "8552:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8157, - "name": "PROVISION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7497, - "src": "8568:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "8552:25:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8169, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8664:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8170, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "action", - "nodeType": "MemberAccess", - "referencedDeclaration": 7456, - "src": "8664:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8171, - "name": "REMOVAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7500, - "src": "8680:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "8664:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8192, - "nodeType": "IfStatement", - "src": "8660:277:6", - "trueBody": { - "id": 8191, - "nodeType": "Block", - "src": "8688:249:6", - "statements": [ - { - "assignments": [ - 8174 - ], - "declarations": [ - { - "constant": false, - "id": 8174, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8191, - "src": "8702:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8173, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8702:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8180, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8176, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8060, - "src": "8723:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8177, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8065, - "src": "8731:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8178, - "name": "dxSwapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7502, - "src": "8739:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8175, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8717, - "src": "8717:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) view returns (address)" - } - }, - "id": 8179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8717:36:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8702:51:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8182, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8060, - "src": "8790:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8183, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8065, - "src": "8813:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8184, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8174, - "src": "8836:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8185, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8022, - "src": "8857:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8186, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "liquidity", - "nodeType": "MemberAccess", - "referencedDeclaration": 7466, - "src": "8857:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8187, - "name": "minA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8124, - "src": "8888:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8188, - "name": "minB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8137, - "src": "8908:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "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" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8181, - "name": "_unpool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8577, - "src": "8767:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256,uint256)" - } - }, - "id": 8189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8767:159:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8190, - "nodeType": "ExpressionStatement", - "src": "8767:159:6" - } - ] - } - }, - "id": 8193, - "nodeType": "IfStatement", - "src": "8549:388:6", - "trueBody": { - "id": 8168, - "nodeType": "Block", - "src": "8578:76:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8160, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8060, - "src": "8598:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8161, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8065, - "src": "8606:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8162, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8096, - "src": "8614:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8163, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8070, - "src": "8623:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8164, - "name": "minA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8124, - "src": "8632:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8165, - "name": "minB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8137, - "src": "8638:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8159, - "name": "_pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8488, - "src": "8592:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256,uint256)" - } - }, - "id": 8166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8592:51:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8167, - "nodeType": "ExpressionStatement", - "src": "8592:51:6" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8195, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8018, - "src": "8965:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8194, - "name": "ExecutedOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7444, - "src": "8951:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 8196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8951:25:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8197, - "nodeType": "EmitStatement", - "src": "8946:30:6" - } - ] - }, - "documentation": null, - "functionSelector": "94f61134", - "id": 8199, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeOrder", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8018, - "mutability": "mutable", - "name": "orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8199, - "src": "7355:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8017, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7355:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7354:20:6" - }, - "returnParameters": { - "id": 8020, - "nodeType": "ParameterList", - "parameters": [], - "src": "7384:0:6" - }, - "scope": 8819, - "src": "7333:1650:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8288, - "nodeType": "Block", - "src": "9103:748:6", - "statements": [ - { - "assignments": [ - 8205 - ], - "declarations": [ - { - "constant": false, - "id": 8205, - "mutability": "mutable", - "name": "order", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8288, - "src": "9113:19:6", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order" - }, - "typeName": { - "contractScope": null, - "id": 8204, - "name": "Order", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7485, - "src": "9113:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8209, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8206, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "9135:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 8208, - "indexExpression": { - "argumentTypes": null, - "id": 8207, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8201, - "src": "9142:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9135:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9113:40:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8211, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "9171:5:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9171:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8213, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8205, - "src": "9190:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8214, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 7476, - "src": "9190:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9171:33:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20444541444c494e455f52454143484544", - "id": 8216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9206:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c224c2141da650ea7918fac6d76a698143ebafed5e80cdcfd8ec26291a48ce4c", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_REACHED\"" - }, - "value": "DXswapRelayer: DEADLINE_REACHED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c224c2141da650ea7918fac6d76a698143ebafed5e80cdcfd8ec26291a48ce4c", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_REACHED\"" - } - ], - "id": 8210, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9163:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9163:77:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8218, - "nodeType": "ExpressionStatement", - "src": "9163:77:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "9258:48:6", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8222, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8205, - "src": "9291:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "oracleId", - "nodeType": "MemberAccess", - "referencedDeclaration": 7480, - "src": "9291:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8220, - "name": "oracleCreator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7512, - "src": "9259:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "id": 8221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOracleFinalized", - "nodeType": "MemberAccess", - "referencedDeclaration": 10015, - "src": "9259:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view external returns (bool)" - } - }, - "id": 8224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9259:47:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a204f42534552564154494f4e5f454e444544", - "id": 8226, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9309:34:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6c3c780346689cb796638b22e370bbbc6e481d9268abfeef04518901f7e1a2b2", - "typeString": "literal_string \"DXswapRelayer: OBSERVATION_ENDED\"" - }, - "value": "DXswapRelayer: OBSERVATION_ENDED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6c3c780346689cb796638b22e370bbbc6e481d9268abfeef04518901f7e1a2b2", - "typeString": "literal_string \"DXswapRelayer: OBSERVATION_ENDED\"" - } - ], - "id": 8219, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9250:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9250:94:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8228, - "nodeType": "ExpressionStatement", - "src": "9250:94:6" - }, - { - "assignments": [ - 8230 - ], - "declarations": [ - { - "constant": false, - "id": 8230, - "mutability": "mutable", - "name": "amountBounty", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8288, - "src": "9354:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8229, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9354:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8239, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8237, - "name": "BOUNTY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7494, - "src": "9416:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8233, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -26, - "src": "9399:2:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 8234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "gasprice", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9399:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8231, - "name": "GAS_ORACLE_UPDATE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7488, - "src": "9377:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "9377:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9377:34:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "9377:38:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9377:46:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9354:69:6" - }, - { - "assignments": [ - 8241, - 8243, - null - ], - "declarations": [ - { - "constant": false, - "id": 8241, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8288, - "src": "9443:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8240, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9443:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8243, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8288, - "src": "9458:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8242, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9458:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 8250, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8245, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8205, - "src": "9488:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8246, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "oraclePair", - "nodeType": "MemberAccess", - "referencedDeclaration": 7474, - "src": "9488:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8244, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "9476:11:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 8247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9476:29:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 8248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 268, - "src": "9476:41:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 8249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9476:43:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9442:77:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8252, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "9550:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8253, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8205, - "src": "9562:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8254, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "minReserveA", - "nodeType": "MemberAccess", - "referencedDeclaration": 7470, - "src": "9562:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9550:29:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8256, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8243, - "src": "9583:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8257, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8205, - "src": "9595:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8258, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "minReserveB", - "nodeType": "MemberAccess", - "referencedDeclaration": 7472, - "src": "9595:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9583:29:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9550:62:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20524553455256455f544f5f4c4f57", - "id": 8261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9626:31:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f1a9a9fe9152457543d99aa9bcf7c5839dd3a651da765973f09a66fb51bcd213", - "typeString": "literal_string \"DXswapRelayer: RESERVE_TO_LOW\"" - }, - "value": "DXswapRelayer: RESERVE_TO_LOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f1a9a9fe9152457543d99aa9bcf7c5839dd3a651da765973f09a66fb51bcd213", - "typeString": "literal_string \"DXswapRelayer: RESERVE_TO_LOW\"" - } - ], - "id": 8251, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9529:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9529:138:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8263, - "nodeType": "ExpressionStatement", - "src": "9529:138:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8267, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8205, - "src": "9698:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8268, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "oracleId", - "nodeType": "MemberAccess", - "referencedDeclaration": 7480, - "src": "9698:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8264, - "name": "oracleCreator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7512, - "src": "9677:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OracleCreator_$10028", - "typeString": "contract OracleCreator" - } - }, - "id": 8266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "update", - "nodeType": "MemberAccess", - "referencedDeclaration": 9943, - "src": "9677:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 8269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9677:36:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8270, - "nodeType": "ExpressionStatement", - "src": "9677:36:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8273, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "9734:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - ], - "id": 8272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9726:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8271, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9726:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9726:13:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 8275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9726:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8276, - "name": "amountBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8230, - "src": "9751:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9726:37:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8287, - "nodeType": "IfStatement", - "src": "9723:122:6", - "trueBody": { - "id": 8286, - "nodeType": "Block", - "src": "9764:81:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8281, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9809:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9809:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8283, - "name": "amountBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8230, - "src": "9821:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8278, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "9778:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "9778:30:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 8284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9778:56:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8285, - "nodeType": "ExpressionStatement", - "src": "9778:56:6" - } - ] - } - } - ] - }, - "documentation": null, - "functionSelector": "c23c1c9f", - "id": 8289, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateOracle", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8201, - "mutability": "mutable", - "name": "orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8289, - "src": "9074:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9074:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9073:20:6" - }, - "returnParameters": { - "id": 8203, - "nodeType": "ParameterList", - "parameters": [], - "src": "9103:0:6" - }, - "scope": 8819, - "src": "9052:799:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8387, - "nodeType": "Block", - "src": "9916:784:6", - "statements": [ - { - "assignments": [ - 8295 - ], - "declarations": [ - { - "constant": false, - "id": 8295, - "mutability": "mutable", - "name": "order", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8387, - "src": "9926:19:6", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order" - }, - "typeName": { - "contractScope": null, - "id": 8294, - "name": "Order", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7485, - "src": "9926:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8296, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "9948:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 8298, - "indexExpression": { - "argumentTypes": null, - "id": 8297, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8291, - "src": "9955:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9948:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9926:40:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 8304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8301, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9984:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9984:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8303, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "9998:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9984:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e4552", - "id": 8305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10005:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - }, - "value": "DXswapRelayer: CALLER_NOT_OWNER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - } - ], - "id": 8300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9976:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9976:63:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8307, - "nodeType": "ExpressionStatement", - "src": "9976:63:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8309, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "10057:5:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10057:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8311, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8295, - "src": "10075:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8312, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 7476, - "src": "10075:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10057:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20444541444c494e455f4e4f545f52454143484544", - "id": 8314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10091:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bff6179a86696e1abf8d0d79c1ab84a4cbfa6cfed757c8da83ba4b97ca4d69dc", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_NOT_REACHED\"" - }, - "value": "DXswapRelayer: DEADLINE_NOT_REACHED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bff6179a86696e1abf8d0d79c1ab84a4cbfa6cfed757c8da83ba4b97ca4d69dc", - "typeString": "literal_string \"DXswapRelayer: DEADLINE_NOT_REACHED\"" - } - ], - "id": 8308, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10049:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10049:80:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8316, - "nodeType": "ExpressionStatement", - "src": "10049:80:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8318, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8295, - "src": "10147:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8319, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "executed", - "nodeType": "MemberAccess", - "referencedDeclaration": 7484, - "src": "10147:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10165:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "10147:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a204f524445525f4558454355544544", - "id": 8322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10172:31:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_83e2e318cc92f9feb162aa3c933f1a36e4bed6c4f460bce364c794e787324589", - "typeString": "literal_string \"DXswapRelayer: ORDER_EXECUTED\"" - }, - "value": "DXswapRelayer: ORDER_EXECUTED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_83e2e318cc92f9feb162aa3c933f1a36e4bed6c4f460bce364c794e787324589", - "typeString": "literal_string \"DXswapRelayer: ORDER_EXECUTED\"" - } - ], - "id": 8317, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10139:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10139:65:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8324, - "nodeType": "ExpressionStatement", - "src": "10139:65:6" - }, - { - "assignments": [ - 8326 - ], - "declarations": [ - { - "constant": false, - "id": 8326, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8387, - "src": "10214:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8325, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10214:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8329, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8327, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8295, - "src": "10231:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenA", - "nodeType": "MemberAccess", - "referencedDeclaration": 7458, - "src": "10231:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10214:29:6" - }, - { - "assignments": [ - 8331 - ], - "declarations": [ - { - "constant": false, - "id": 8331, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8387, - "src": "10253:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10253:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8334, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8332, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8295, - "src": "10270:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8333, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenB", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "10270:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10253:29:6" - }, - { - "assignments": [ - 8336 - ], - "declarations": [ - { - "constant": false, - "id": 8336, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8387, - "src": "10292:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10292:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8339, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8337, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8295, - "src": "10310:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8338, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountA", - "nodeType": "MemberAccess", - "referencedDeclaration": 7462, - "src": "10310:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10292:31:6" - }, - { - "assignments": [ - 8341 - ], - "declarations": [ - { - "constant": false, - "id": 8341, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8387, - "src": "10333:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8340, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10333:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8344, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8342, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8295, - "src": "10351:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8343, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountB", - "nodeType": "MemberAccess", - "referencedDeclaration": 7464, - "src": "10351:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10333:31:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 8349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8345, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8295, - "src": "10374:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order storage pointer" - } - }, - "id": 8347, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "executed", - "nodeType": "MemberAccess", - "referencedDeclaration": 7484, - "src": "10374:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10391:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "10374:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8350, - "nodeType": "ExpressionStatement", - "src": "10374:21:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8351, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "10410:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10428:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10420:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10420:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8355, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10420:10:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10410:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8373, - "nodeType": "Block", - "src": "10509:76:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8368, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "10551:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8369, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "10559:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8370, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10566:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8365, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "10523:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 12455, - "src": "10523:27:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10523:51:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8372, - "nodeType": "ExpressionStatement", - "src": "10523:51:6" - } - ] - }, - "id": 8374, - "nodeType": "IfStatement", - "src": "10406:179:6", - "trueBody": { - "id": 8364, - "nodeType": "Block", - "src": "10432:71:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8360, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "10477:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8361, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10484:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8357, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "10446:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "10446:30:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 8362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10446:46:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8363, - "nodeType": "ExpressionStatement", - "src": "10446:46:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8378, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8331, - "src": "10622:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8379, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "10630:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8380, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8341, - "src": "10637:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8375, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "10594:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 12455, - "src": "10594:27:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10594:51:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8382, - "nodeType": "ExpressionStatement", - "src": "10594:51:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8384, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8291, - "src": "10682:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8383, - "name": "WithdrawnExpiredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7448, - "src": "10660:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 8385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10660:33:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8386, - "nodeType": "EmitStatement", - "src": "10655:38:6" - } - ] - }, - "documentation": null, - "functionSelector": "2cb2db61", - "id": 8388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawExpiredOrder", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8292, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8291, - "mutability": "mutable", - "name": "orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8388, - "src": "9887:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8290, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9887:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9886:20:6" - }, - "returnParameters": { - "id": 8293, - "nodeType": "ParameterList", - "parameters": [], - "src": "9916:0:6" - }, - "scope": 8819, - "src": "9857:843:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8487, - "nodeType": "Block", - "src": "10888:739:6", - "statements": [ - { - "assignments": [ - 8404 - ], - "declarations": [ - { - "constant": false, - "id": 8404, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8487, - "src": "10898:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10898:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8405, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10898:15:6" - }, - { - "assignments": [ - 8407 - ], - "declarations": [ - { - "constant": false, - "id": 8407, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8487, - "src": "10923:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10923:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8408, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10923:15:6" - }, - { - "assignments": [ - 8410 - ], - "declarations": [ - { - "constant": false, - "id": 8410, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8487, - "src": "10948:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8409, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10948:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8411, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10948:17:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8412, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8390, - "src": "10978:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10997:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10989:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8413, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10989:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10989:10:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10978:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8431, - "nodeType": "IfStatement", - "src": "10975:112:6", - "trueBody": { - "id": 8430, - "nodeType": "Block", - "src": "11000:87:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8419, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "11018:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8418, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "11012:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 8420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11012:11:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 8421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10848, - "src": "11012:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 8423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "id": 8422, - "name": "_amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8394, - "src": "11039:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "11012:36:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 8424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11012:38:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8425, - "nodeType": "ExpressionStatement", - "src": "11012:38:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 8428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8426, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8390, - "src": "11062:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8427, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "11072:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11062:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8429, - "nodeType": "ExpressionStatement", - "src": "11062:14:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8435, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8390, - "src": "11123:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8436, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "11132:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8437, - "name": "_amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8394, - "src": "11146:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8432, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "11096:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeApprove", - "nodeType": "MemberAccess", - "referencedDeclaration": 12412, - "src": "11096:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11096:59:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8439, - "nodeType": "ExpressionStatement", - "src": "11096:59:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8443, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8392, - "src": "11192:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8444, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "11201:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8445, - "name": "_amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8396, - "src": "11215:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8440, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "11165:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeApprove", - "nodeType": "MemberAccess", - "referencedDeclaration": 12412, - "src": "11165:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11165:59:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8447, - "nodeType": "ExpressionStatement", - "src": "11165:59:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 8469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8448, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8404, - "src": "11235:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8449, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8407, - "src": "11244:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8450, - "name": "liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8410, - "src": "11253:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8451, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "11234:29:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8456, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8390, - "src": "11320:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8457, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8392, - "src": "11341:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8458, - "name": "_amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8394, - "src": "11362:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8459, - "name": "_amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8396, - "src": "11384:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8460, - "name": "_minA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8398, - "src": "11406:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8461, - "name": "_minB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8400, - "src": "11425:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8464, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "11452:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - ], - "id": 8463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11444:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11444:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11444:13:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8466, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "11471:5:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11471:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8453, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "11280:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8452, - "name": "IDXswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10759, - "src": "11266:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapRouter_$10759_$", - "typeString": "type(contract IDXswapRouter)" - } - }, - "id": 8454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11266:27:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 8455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addLiquidity", - "nodeType": "MemberAccess", - "referencedDeclaration": 10402, - "src": "11266:40:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,uint256,address,uint256) external returns (uint256,uint256,uint256)" - } - }, - "id": 8468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11266:230:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" - } - }, - "src": "11234:262:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8470, - "nodeType": "ExpressionStatement", - "src": "11234:262:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8474, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8390, - "src": "11533:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8475, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "11542:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11556:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 8471, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "11506:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeApprove", - "nodeType": "MemberAccess", - "referencedDeclaration": 12412, - "src": "11506:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11506:52:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8478, - "nodeType": "ExpressionStatement", - "src": "11506:52:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8482, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8392, - "src": "11595:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8483, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "11604:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11618:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 8479, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "11568:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeApprove", - "nodeType": "MemberAccess", - "referencedDeclaration": 12412, - "src": "11568:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11568:52:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8486, - "nodeType": "ExpressionStatement", - "src": "11568:52:6" - } - ] - }, - "documentation": null, - "id": 8488, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_pool", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8390, - "mutability": "mutable", - "name": "_tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8488, - "src": "10734:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10734:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8392, - "mutability": "mutable", - "name": "_tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8488, - "src": "10759:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8391, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10759:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8394, - "mutability": "mutable", - "name": "_amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8488, - "src": "10784:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10784:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8396, - "mutability": "mutable", - "name": "_amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8488, - "src": "10810:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8395, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10810:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8398, - "mutability": "mutable", - "name": "_minA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8488, - "src": "10836:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10836:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8400, - "mutability": "mutable", - "name": "_minB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8488, - "src": "10859:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8399, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10859:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10724:154:6" - }, - "returnParameters": { - "id": 8402, - "nodeType": "ParameterList", - "parameters": [], - "src": "10888:0:6" - }, - "scope": 8819, - "src": "10710:917:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 8576, - "nodeType": "Block", - "src": "11812:606:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8503, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8490, - "src": "11822:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8504, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8490, - "src": "11832:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11851:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11843:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8505, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11843:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11843:10:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11832:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 8511, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8490, - "src": "11863:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "11832:38:6", - "trueExpression": { - "argumentTypes": null, - "id": 8510, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "11856:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11822:48:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8514, - "nodeType": "ExpressionStatement", - "src": "11822:48:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8518, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8494, - "src": "11907:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8519, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "11914:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8520, - "name": "_liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8496, - "src": "11928:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8515, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "11880:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeApprove", - "nodeType": "MemberAccess", - "referencedDeclaration": 12412, - "src": "11880:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11880:59:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8522, - "nodeType": "ExpressionStatement", - "src": "11880:59:6" - }, - { - "assignments": [ - 8524, - 8526 - ], - "declarations": [ - { - "constant": false, - "id": 8524, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8576, - "src": "11950:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8523, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11950:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8526, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8576, - "src": "11964:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8525, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11964:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8543, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8531, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8490, - "src": "12037:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8532, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8492, - "src": "12058:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8533, - "name": "_liquidity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8496, - "src": "12079:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8534, - "name": "_minA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8498, - "src": "12103:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8535, - "name": "_minB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8500, - "src": "12122:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8538, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "12149:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DXswapRelayer_$8819", - "typeString": "contract DXswapRelayer" - } - ], - "id": 8537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12141:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12141:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12141:13:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8540, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "12168:5:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12168:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8528, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "11994:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8527, - "name": "IDXswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10759, - "src": "11980:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapRouter_$10759_$", - "typeString": "type(contract IDXswapRouter)" - } - }, - "id": 8529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11980:27:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 8530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeLiquidity", - "nodeType": "MemberAccess", - "referencedDeclaration": 10444, - "src": "11980:43:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,uint256,uint256,uint256,address,uint256) external returns (uint256,uint256)" - } - }, - "id": 8542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11980:213:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11949:244:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8547, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8494, - "src": "12230:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8548, - "name": "dxSwapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7504, - "src": "12237:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12251:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 8544, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "12203:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeApprove", - "nodeType": "MemberAccess", - "referencedDeclaration": 12412, - "src": "12203:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12203:50:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8551, - "nodeType": "ExpressionStatement", - "src": "12203:50:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8552, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8490, - "src": "12266:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8553, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "12277:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12266:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8563, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8492, - "src": "12344:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8564, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "12355:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12344:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8574, - "nodeType": "IfStatement", - "src": "12340:72:6", - "trueBody": { - "id": 8573, - "nodeType": "Block", - "src": "12360:52:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8570, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "12393:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8567, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "12378:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8566, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "12372:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 8568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12372:11:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 8569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 10862, - "src": "12372:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 8571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12372:29:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8572, - "nodeType": "ExpressionStatement", - "src": "12372:29:6" - } - ] - } - }, - "id": 8575, - "nodeType": "IfStatement", - "src": "12263:149:6", - "trueBody": { - "id": 8562, - "nodeType": "Block", - "src": "12282:52:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8559, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8524, - "src": "12315:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8556, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "12300:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8555, - "name": "IWETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "12294:5:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWETH_$10879_$", - "typeString": "type(contract IWETH)" - } - }, - "id": 8557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12294:11:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWETH_$10879", - "typeString": "contract IWETH" - } - }, - "id": 8558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 10862, - "src": "12294:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 8560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12294:29:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8561, - "nodeType": "ExpressionStatement", - "src": "12294:29:6" - } - ] - } - } - ] - }, - "documentation": null, - "id": 8577, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_unpool", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8490, - "mutability": "mutable", - "name": "_tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8577, - "src": "11659:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11659:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8492, - "mutability": "mutable", - "name": "_tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8577, - "src": "11684:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8491, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11684:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8494, - "mutability": "mutable", - "name": "_pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8577, - "src": "11709:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11709:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8496, - "mutability": "mutable", - "name": "_liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8577, - "src": "11732:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8495, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11732:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8498, - "mutability": "mutable", - "name": "_minA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8577, - "src": "11760:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8497, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11760:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8500, - "mutability": "mutable", - "name": "_minB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8577, - "src": "11783:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11783:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11649:153:6" - }, - "returnParameters": { - "id": 8502, - "nodeType": "ParameterList", - "parameters": [], - "src": "11812:0:6" - }, - "scope": 8819, - "src": "11633:785:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 8672, - "nodeType": "Block", - "src": "12724:719:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8592, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8583, - "src": "12737:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12748:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12737:12:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8595, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8585, - "src": "12753:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12764:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12753:12:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12737:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8670, - "nodeType": "Block", - "src": "13386:51:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8666, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8590, - "src": "13400:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8667, - "name": "maxWindowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8587, - "src": "13413:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13400:26:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8669, - "nodeType": "ExpressionStatement", - "src": "13400:26:6" - } - ] - }, - "id": 8671, - "nodeType": "IfStatement", - "src": "12734:703:6", - "trueBody": { - "id": 8665, - "nodeType": "Block", - "src": "12766:614:6", - "statements": [ - { - "assignments": [ - 8600 - ], - "declarations": [ - { - "constant": false, - "id": 8600, - "mutability": "mutable", - "name": "poolStake", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8665, - "src": "12780:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12780:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8614, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8607, - "name": "PARTS_PER_MILLION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7491, - "src": "12827:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8603, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8581, - "src": "12813:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8601, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8579, - "src": "12801:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "12801:11:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12801:20:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8605, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12800:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "12800:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12800:45:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8611, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8585, - "src": "12861:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8609, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8583, - "src": "12848:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "12848:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12848:22:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12800:70:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12780:90:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8615, - "name": "poolStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8600, - "src": "12949:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31303030", - "id": 8616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12961:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000_by_1", - "typeString": "int_const 1000" - }, - "value": "1000" - }, - "src": "12949:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8623, - "name": "poolStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8600, - "src": "13023:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32353030", - "id": 8624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13035:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2500_by_1", - "typeString": "int_const 2500" - }, - "value": "2500" - }, - "src": "13023:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8631, - "name": "poolStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8600, - "src": "13096:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "35303030", - "id": 8632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13108:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5000_by_1", - "typeString": "int_const 5000" - }, - "value": "5000" - }, - "src": "13096:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8639, - "name": "poolStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8600, - "src": "13169:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 8640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13181:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "13169:17:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8651, - "nodeType": "Block", - "src": "13240:47:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8647, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8590, - "src": "13256:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "313530", - "id": 8648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13269:3:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_150_by_1", - "typeString": "int_const 150" - }, - "value": "150" - }, - "src": "13256:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8650, - "nodeType": "ExpressionStatement", - "src": "13256:16:6" - } - ] - }, - "id": 8652, - "nodeType": "IfStatement", - "src": "13165:122:6", - "trueBody": { - "id": 8646, - "nodeType": "Block", - "src": "13187:47:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8642, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8590, - "src": "13203:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "313230", - "id": 8643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13216:3:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - "value": "120" - }, - "src": "13203:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8645, - "nodeType": "ExpressionStatement", - "src": "13203:16:6" - } - ] - } - }, - "id": 8653, - "nodeType": "IfStatement", - "src": "13092:195:6", - "trueBody": { - "id": 8638, - "nodeType": "Block", - "src": "13113:46:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8634, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8590, - "src": "13129:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3930", - "id": 8635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13142:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_90_by_1", - "typeString": "int_const 90" - }, - "value": "90" - }, - "src": "13129:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8637, - "nodeType": "ExpressionStatement", - "src": "13129:15:6" - } - ] - } - }, - "id": 8654, - "nodeType": "IfStatement", - "src": "13019:268:6", - "trueBody": { - "id": 8630, - "nodeType": "Block", - "src": "13040:46:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8626, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8590, - "src": "13056:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3630", - "id": 8627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13069:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_60_by_1", - "typeString": "int_const 60" - }, - "value": "60" - }, - "src": "13056:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8629, - "nodeType": "ExpressionStatement", - "src": "13056:15:6" - } - ] - } - }, - "id": 8655, - "nodeType": "IfStatement", - "src": "12946:341:6", - "trueBody": { - "id": 8622, - "nodeType": "Block", - "src": "12967:46:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8618, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8590, - "src": "12983:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3330", - "id": 8619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12996:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_30_by_1", - "typeString": "int_const 30" - }, - "value": "30" - }, - "src": "12983:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8621, - "nodeType": "ExpressionStatement", - "src": "12983:15:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8656, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8590, - "src": "13300:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8657, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8590, - "src": "13313:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 8658, - "name": "maxWindowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8587, - "src": "13327:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13313:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 8661, - "name": "maxWindowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8587, - "src": "13356:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "13313:56:6", - "trueExpression": { - "argumentTypes": null, - "id": 8660, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8590, - "src": "13343:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13300:69:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8664, - "nodeType": "ExpressionStatement", - "src": "13300:69:6" - } - ] - } - } - ] - }, - "documentation": null, - "id": 8673, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_consultOracleParameters", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8579, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8673, - "src": "12551:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8578, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12551:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8581, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8673, - "src": "12576:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8580, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12576:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8583, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8673, - "src": "12601:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12601:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8585, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8673, - "src": "12627:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8584, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12627:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8587, - "mutability": "mutable", - "name": "maxWindowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8673, - "src": "12653:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8586, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12653:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12541:139:6" - }, - "returnParameters": { - "id": 8591, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8590, - "mutability": "mutable", - "name": "windowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8673, - "src": "12704:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8589, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12704:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12703:20:6" - }, - "scope": 8819, - "src": "12508:935:6", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 8716, - "nodeType": "Block", - "src": "13638:220:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8685, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8679, - "src": "13654:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8686, - "name": "dxSwapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7502, - "src": "13665:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13654:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8688, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8679, - "src": "13682:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8689, - "name": "uniswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7506, - "src": "13693:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13682:25:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13654:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a20494e56414c49445f464143544f5259", - "id": 8692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13709:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a935c87b45fcf1f3d29e0231e4c16979ea61af239ab88c9c2733cade5d27baa", - "typeString": "literal_string \"DXswapRelayer: INVALID_FACTORY\"" - }, - "value": "DXswapRelayer: INVALID_FACTORY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a935c87b45fcf1f3d29e0231e4c16979ea61af239ab88c9c2733cade5d27baa", - "typeString": "literal_string \"DXswapRelayer: INVALID_FACTORY\"" - } - ], - "id": 8684, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13646:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13646:96:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8694, - "nodeType": "ExpressionStatement", - "src": "13646:96:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8695, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "13754:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13772:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13764:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8696, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13764:7:6", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13764:10:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13754:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8705, - "nodeType": "IfStatement", - "src": "13750:39:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 8703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8701, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "13776:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8702, - "name": "WETH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7510, - "src": "13785:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13776:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8704, - "nodeType": "ExpressionStatement", - "src": "13776:13:6" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8706, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8682, - "src": "13797:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8711, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "13836:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8712, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8677, - "src": "13844:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8708, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8679, - "src": "13819:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8707, - "name": "IDXswapFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "13804:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapFactory_$10113_$", - "typeString": "type(contract IDXswapFactory)" - } - }, - "id": 8709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13804:23:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapFactory_$10113", - "typeString": "contract IDXswapFactory" - } - }, - "id": 8710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getPair", - "nodeType": "MemberAccess", - "referencedDeclaration": 10069, - "src": "13804:31:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address) view external returns (address)" - } - }, - "id": 8713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13804:47:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13797:54:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8715, - "nodeType": "ExpressionStatement", - "src": "13797:54:6" - } - ] - }, - "documentation": null, - "id": 8717, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_pair", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8675, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8717, - "src": "13552:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13552:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8677, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8717, - "src": "13568:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13568:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8679, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8717, - "src": "13584:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8678, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13584:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13551:49:6" - }, - "returnParameters": { - "id": 8683, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8682, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8717, - "src": "13624:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13624:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13623:14:6" - }, - "scope": 8819, - "src": "13537:321:6", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 8729, - "nodeType": "Block", - "src": "13995:62:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8722, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8720, - "src": "14005:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8723, - "name": "orderCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7514, - "src": "14018:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14005:23:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8725, - "nodeType": "ExpressionStatement", - "src": "14005:23:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 8727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14038:12:6", - "subExpression": { - "argumentTypes": null, - "id": 8726, - "name": "orderCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7514, - "src": "14038:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8728, - "nodeType": "ExpressionStatement", - "src": "14038:12:6" - } - ] - }, - "documentation": null, - "id": 8730, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_OrderIndex", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8718, - "nodeType": "ParameterList", - "parameters": [], - "src": "13956:2:6" - }, - "returnParameters": { - "id": 8721, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8720, - "mutability": "mutable", - "name": "orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8730, - "src": "13976:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8719, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13976:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13975:20:6" - }, - "scope": 8819, - "src": "13936:121:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 8753, - "nodeType": "Block", - "src": "14193:139:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 8741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8738, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14211:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14211:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8740, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "14225:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14211:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e4552", - "id": 8742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14232:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - }, - "value": "DXswapRelayer: CALLER_NOT_OWNER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - } - ], - "id": 8737, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14203:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14203:63:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8744, - "nodeType": "ExpressionStatement", - "src": "14203:63:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8748, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8732, - "src": "14304:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8749, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "14311:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8750, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8734, - "src": "14318:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8745, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "14276:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 12455, - "src": "14276:27:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 8751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14276:49:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8752, - "nodeType": "ExpressionStatement", - "src": "14276:49:6" - } - ] - }, - "documentation": null, - "functionSelector": "d530f4e7", - "id": 8754, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ERC20Withdraw", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8735, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8732, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8754, - "src": "14153:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14153:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8734, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8754, - "src": "14168:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8733, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14168:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14152:31:6" - }, - "returnParameters": { - "id": 8736, - "nodeType": "ParameterList", - "parameters": [], - "src": "14193:0:6" - }, - "scope": 8819, - "src": "14130:202:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8774, - "nodeType": "Block", - "src": "14452:135:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 8763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8760, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14470:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14470:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8762, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "14484:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14470:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "44587377617052656c617965723a2043414c4c45525f4e4f545f4f574e4552", - "id": 8764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14491:33:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - }, - "value": "DXswapRelayer: CALLER_NOT_OWNER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6be31bc3b9c47e93d1f6f3b894365b0606551661b1146e2fb9cd89d2e1ab5230", - "typeString": "literal_string \"DXswapRelayer: CALLER_NOT_OWNER\"" - } - ], - "id": 8759, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14462:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14462:63:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8766, - "nodeType": "ExpressionStatement", - "src": "14462:63:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8770, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "14566:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8771, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8756, - "src": "14573:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8767, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "14535:14:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 8769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 12526, - "src": "14535:30:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 8772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14535:45:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8773, - "nodeType": "ExpressionStatement", - "src": "14535:45:6" - } - ] - }, - "documentation": null, - "functionSelector": "c58125bc", - "id": 8775, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ETHWithdraw", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8756, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8775, - "src": "14427:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8755, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14427:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14426:16:6" - }, - "returnParameters": { - "id": 8758, - "nodeType": "ParameterList", - "parameters": [], - "src": "14452:0:6" - }, - "scope": 8819, - "src": "14406:181:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8786, - "nodeType": "Block", - "src": "14721:40:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8782, - "name": "orders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7518, - "src": "14736:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Order_$7485_storage_$", - "typeString": "mapping(uint256 => struct DXswapRelayer.Order storage ref)" - } - }, - "id": 8784, - "indexExpression": { - "argumentTypes": null, - "id": 8783, - "name": "orderIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8777, - "src": "14743:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14736:18:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage", - "typeString": "struct DXswapRelayer.Order storage ref" - } - }, - "functionReturnParameters": 8781, - "id": 8785, - "nodeType": "Return", - "src": "14729:25:6" - } - ] - }, - "documentation": null, - "functionSelector": "ffc5ea0d", - "id": 8787, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "GetOrderDetails", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8778, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8777, - "mutability": "mutable", - "name": "orderIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8787, - "src": "14664:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8776, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14664:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14663:20:6" - }, - "returnParameters": { - "id": 8781, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8780, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8787, - "src": "14707:12:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_memory_ptr", - "typeString": "struct DXswapRelayer.Order" - }, - "typeName": { - "contractScope": null, - "id": 8779, - "name": "Order", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7485, - "src": "14707:5:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Order_$7485_storage_ptr", - "typeString": "struct DXswapRelayer.Order" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14706:14:6" - }, - "scope": 8819, - "src": "14639:122:6", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8813, - "nodeType": "Block", - "src": "14834:200:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 8796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8793, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14852:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14852:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8795, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "14866:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14852:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 8797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14873:34:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", - "typeString": "literal_string \"Ownable: caller is not the owner\"" - }, - "value": "Ownable: caller is not the owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", - "typeString": "literal_string \"Ownable: caller is not the owner\"" - } - ], - "id": 8792, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14844:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14844:64:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8799, - "nodeType": "ExpressionStatement", - "src": "14844:64:6" - }, - { - "assignments": [ - 8801 - ], - "declarations": [ - { - "constant": false, - "id": 8801, - "mutability": "mutable", - "name": "_oldOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8813, - "src": "14918:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14918:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8803, - "initialValue": { - "argumentTypes": null, - "id": 8802, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "14938:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14918:25:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 8806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8804, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "14953:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8805, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8789, - "src": "14961:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14953:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 8807, - "nodeType": "ExpressionStatement", - "src": "14953:17:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8809, - "name": "_oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "15006:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8810, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8789, - "src": "15017:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 8808, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7454, - "src": "14985:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 8811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14985:42:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8812, - "nodeType": "EmitStatement", - "src": "14980:47:6" - } - ] - }, - "documentation": null, - "functionSelector": "f2fde38b", - "id": 8814, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8790, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8789, - "mutability": "mutable", - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8814, - "src": "14798:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 8788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14798:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14797:27:6" - }, - "returnParameters": { - "id": 8791, - "nodeType": "ParameterList", - "parameters": [], - "src": "14834:0:6" - }, - "scope": 8819, - "src": "14771:263:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 8817, - "nodeType": "Block", - "src": "15067:2:6", - "statements": [] - }, - "documentation": null, - "id": 8818, - "implemented": true, - "kind": "receive", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8815, - "nodeType": "ParameterList", - "parameters": [], - "src": "15047:2:6" - }, - "returnParameters": { - "id": 8816, - "nodeType": "ParameterList", - "parameters": [], - "src": "15067:0:6" - }, - "scope": 8819, - "src": "15040:29:6", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 8820, - "src": "377:14694:6" - } - ], - "src": "0:15071:6" - } - }, - "contracts/examples/ExampleOracleSimple.sol": { - "id": 7, - "AST": { - "absolutePath": "contracts/examples/ExampleOracleSimple.sol", - "exportedSymbols": { - "ExampleOracleSimple": [ - 9037 - ] - }, - "id": 9038, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8821, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapFactory.sol", - "file": "@swapr/core/contracts/interfaces/IDXswapFactory.sol", - "id": 8822, - "nodeType": "ImportDirective", - "scope": 9038, - "sourceUnit": 85, - "src": "25:61:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "file": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "id": 8823, - "nodeType": "ImportDirective", - "scope": 9038, - "sourceUnit": 337, - "src": "87:58:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/FixedPoint.sol", - "file": "../libraries/FixedPoint.sol", - "id": 8824, - "nodeType": "ImportDirective", - "scope": 9038, - "sourceUnit": 11905, - "src": "147:37:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/DXswapOracleLibrary.sol", - "file": "../libraries/DXswapOracleLibrary.sol", - "id": 8825, - "nodeType": "ImportDirective", - "scope": 9038, - "sourceUnit": 11728, - "src": "185:46:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/DXswapLibrary.sol", - "file": "../libraries/DXswapLibrary.sol", - "id": 8826, - "nodeType": "ImportDirective", - "scope": 9038, - "sourceUnit": 11621, - "src": "232:40:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9037, - "linearizedBaseContracts": [ - 9037 - ], - "name": "ExampleOracleSimple", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 8828, - "libraryName": { - "contractScope": null, - "id": 8827, - "name": "FixedPoint", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11904, - "src": "524:10:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FixedPoint_$11904", - "typeString": "library FixedPoint" - } - }, - "nodeType": "UsingForDirective", - "src": "518:23:7", - "typeName": null - }, - { - "constant": true, - "functionSelector": "b4d1d795", - "id": 8831, - "mutability": "constant", - "name": "PERIOD", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9037, - "src": "547:38:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8829, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "547:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3234", - "id": 8830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "577:8:7", - "subdenomination": "hours", - "typeDescriptions": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - }, - "value": "24" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 8833, - "mutability": "immutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9037, - "src": "592:26:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - }, - "typeName": { - "contractScope": null, - "id": 8832, - "name": "IDXswapPair", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "592:11:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "functionSelector": "0dfe1681", - "id": 8835, - "mutability": "immutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9037, - "src": "624:31:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "624:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "d21220a7", - "id": 8837, - "mutability": "immutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9037, - "src": "661:31:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8836, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "661:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "5909c0d5", - "id": 8839, - "mutability": "mutable", - "name": "price0CumulativeLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9037, - "src": "699:35:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8838, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "699:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "5a3d5493", - "id": 8841, - "mutability": "mutable", - "name": "price1CumulativeLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9037, - "src": "740:35:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8840, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "740:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "c5700a02", - "id": 8843, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9037, - "src": "781:33:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8842, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "781:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "a6bb4539", - "id": 8845, - "mutability": "mutable", - "name": "price0Average", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9037, - "src": "820:41:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 8844, - "name": "FixedPoint.uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "820:20:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "5e6aaf2c", - "id": 8847, - "mutability": "mutable", - "name": "price1Average", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9037, - "src": "867:41:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 8846, - "name": "FixedPoint.uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "867:20:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 8921, - "nodeType": "Block", - "src": "983:666:7", - "statements": [ - { - "assignments": [ - 8857 - ], - "declarations": [ - { - "constant": false, - "id": 8857, - "mutability": "mutable", - "name": "_pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8921, - "src": "993:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - }, - "typeName": { - "contractScope": null, - "id": 8856, - "name": "IDXswapPair", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "993:11:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8866, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8861, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8849, - "src": "1047:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8862, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8851, - "src": "1056:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8863, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8853, - "src": "1064:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 8859, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "1025:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 8860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "1025:21:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 8864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1025:46:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8858, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "1013:11:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 8865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1013:59:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "993:79:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8867, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8833, - "src": "1082:4:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8868, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8857, - "src": "1089:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "src": "1082:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 8870, - "nodeType": "ExpressionStatement", - "src": "1082:12:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8871, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8835, - "src": "1104:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8872, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8857, - "src": "1113:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 8873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token0", - "nodeType": "MemberAccess", - "referencedDeclaration": 254, - "src": "1113:12:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 8874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1113:14:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1104:23:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8876, - "nodeType": "ExpressionStatement", - "src": "1104:23:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8877, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8837, - "src": "1137:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8878, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8857, - "src": "1146:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 8879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token1", - "nodeType": "MemberAccess", - "referencedDeclaration": 259, - "src": "1146:12:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 8880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1146:14:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1137:23:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8882, - "nodeType": "ExpressionStatement", - "src": "1137:23:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8883, - "name": "price0CumulativeLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8839, - "src": "1170:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8884, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8857, - "src": "1193:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 8885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "price0CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 273, - "src": "1193:26:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 8886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1193:28:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1170:51:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8888, - "nodeType": "ExpressionStatement", - "src": "1170:51:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8889, - "name": "price1CumulativeLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8841, - "src": "1284:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8890, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8857, - "src": "1307:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 8891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "price1CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 278, - "src": "1307:26:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 8892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1307:28:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1284:51:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8894, - "nodeType": "ExpressionStatement", - "src": "1284:51:7" - }, - { - "assignments": [ - 8896 - ], - "declarations": [ - { - "constant": false, - "id": 8896, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8921, - "src": "1398:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 8895, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1398:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8897, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1398:16:7" - }, - { - "assignments": [ - 8899 - ], - "declarations": [ - { - "constant": false, - "id": 8899, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8921, - "src": "1424:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 8898, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1424:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8900, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1424:16:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8901, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8896, - "src": "1451:8:7", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - { - "argumentTypes": null, - "id": 8902, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8899, - "src": "1461:8:7", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - { - "argumentTypes": null, - "id": 8903, - "name": "blockTimestampLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "1471:18:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 8904, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "1450:40:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8905, - "name": "_pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8857, - "src": "1493:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 8906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 268, - "src": "1493:17:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 8907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1493:19:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "src": "1450:62:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8909, - "nodeType": "ExpressionStatement", - "src": "1450:62:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "id": 8913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8911, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8896, - "src": "1530:8:7", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1542:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1530:13:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "id": 8916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8914, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8899, - "src": "1547:8:7", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1559:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1547:13:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1530:30:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4578616d706c654f7261636c6553696d706c653a204e4f5f5245534552564553", - "id": 8918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1562:34:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5720adcb94cda19986281480d9844baedfdd42c24b3723a822a393a0fc529ea4", - "typeString": "literal_string \"ExampleOracleSimple: NO_RESERVES\"" - }, - "value": "ExampleOracleSimple: NO_RESERVES" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5720adcb94cda19986281480d9844baedfdd42c24b3723a822a393a0fc529ea4", - "typeString": "literal_string \"ExampleOracleSimple: NO_RESERVES\"" - } - ], - "id": 8910, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1522:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1522:75:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8920, - "nodeType": "ExpressionStatement", - "src": "1522:75:7" - } - ] - }, - "documentation": null, - "id": 8922, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8854, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8849, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8922, - "src": "927:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8848, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "927:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8851, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8922, - "src": "944:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "944:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8853, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8922, - "src": "960:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8852, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "960:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "926:49:7" - }, - "returnParameters": { - "id": 8855, - "nodeType": "ParameterList", - "parameters": [], - "src": "983:0:7" - }, - "scope": 9037, - "src": "915:734:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 8994, - "nodeType": "Block", - "src": "1682:958:7", - "statements": [ - { - "assignments": [ - 8926, - 8928, - 8930 - ], - "declarations": [ - { - "constant": false, - "id": 8926, - "mutability": "mutable", - "name": "price0Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8994, - "src": "1693:21:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1693:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8928, - "mutability": "mutable", - "name": "price1Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8994, - "src": "1716:21:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8927, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1716:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8930, - "mutability": "mutable", - "name": "blockTimestamp", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8994, - "src": "1739:21:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8929, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1739:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8938, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8935, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8833, - "src": "1828:4:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - ], - "id": 8934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1820:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8933, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1820:7:7", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1820:13:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 8931, - "name": "DXswapOracleLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11727, - "src": "1776:19:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapOracleLibrary_$11727_$", - "typeString": "type(library DXswapOracleLibrary)" - } - }, - "id": 8932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "currentCumulativePrices", - "nodeType": "MemberAccess", - "referencedDeclaration": 11726, - "src": "1776:43:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$_t_uint256_$_t_uint32_$", - "typeString": "function (address) view returns (uint256,uint256,uint32)" - } - }, - "id": 8937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1776:58:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint32_$", - "typeString": "tuple(uint256,uint256,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1692:142:7" - }, - { - "assignments": [ - 8940 - ], - "declarations": [ - { - "constant": false, - "id": 8940, - "mutability": "mutable", - "name": "timeElapsed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 8994, - "src": "1844:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8939, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1844:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8944, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 8943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8941, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8930, - "src": "1865:14:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8942, - "name": "blockTimestampLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "1882:18:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1865:35:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1844:56:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8946, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8940, - "src": "2023:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8947, - "name": "PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8831, - "src": "2038:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2023:21:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c4150534544", - "id": 8949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2046:41:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a1aff5acc9ffd9e80f19a58282d38e76d2d603685c69fc94919da1d1b8a042bb", - "typeString": "literal_string \"ExampleOracleSimple: PERIOD_NOT_ELAPSED\"" - }, - "value": "ExampleOracleSimple: PERIOD_NOT_ELAPSED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a1aff5acc9ffd9e80f19a58282d38e76d2d603685c69fc94919da1d1b8a042bb", - "typeString": "literal_string \"ExampleOracleSimple: PERIOD_NOT_ELAPSED\"" - } - ], - "id": 8945, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2015:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2015:73:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8951, - "nodeType": "ExpressionStatement", - "src": "2015:73:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8952, - "name": "price0Average", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8845, - "src": "2275:13:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8957, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8926, - "src": "2321:16:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8958, - "name": "price0CumulativeLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8839, - "src": "2340:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2321:39:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8960, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2320:41:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8961, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8940, - "src": "2364:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2320:55:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2312:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 8955, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "2312:7:7", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2312:64:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "expression": { - "argumentTypes": null, - "id": 8953, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11904, - "src": "2291:10:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$11904_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 8954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "uq112x112", - "nodeType": "MemberAccess", - "referencedDeclaration": 11732, - "src": "2291:20:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 8964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2291:86:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "src": "2275:102:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "id": 8966, - "nodeType": "ExpressionStatement", - "src": "2275:102:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8967, - "name": "price1Average", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8847, - "src": "2387:13:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8972, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8928, - "src": "2433:16:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8973, - "name": "price1CumulativeLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8841, - "src": "2452:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2433:39:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8975, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2432:41:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8976, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8940, - "src": "2476:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2432:55:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2424:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 8970, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "2424:7:7", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 8978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2424:64:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "expression": { - "argumentTypes": null, - "id": 8968, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11904, - "src": "2403:10:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$11904_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 8969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "uq112x112", - "nodeType": "MemberAccess", - "referencedDeclaration": 11732, - "src": "2403:20:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 8979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2403:86:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "src": "2387:102:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "id": 8981, - "nodeType": "ExpressionStatement", - "src": "2387:102:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8982, - "name": "price0CumulativeLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8839, - "src": "2500:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8983, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8926, - "src": "2523:16:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2500:39:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8985, - "nodeType": "ExpressionStatement", - "src": "2500:39:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8986, - "name": "price1CumulativeLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8841, - "src": "2549:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8987, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8928, - "src": "2572:16:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2549:39:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8989, - "nodeType": "ExpressionStatement", - "src": "2549:39:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 8992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8990, - "name": "blockTimestampLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "2598:18:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8991, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8930, - "src": "2619:14:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2598:35:7", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 8993, - "nodeType": "ExpressionStatement", - "src": "2598:35:7" - } - ] - }, - "documentation": null, - "functionSelector": "a2e62045", - "id": 8995, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "update", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8923, - "nodeType": "ParameterList", - "parameters": [], - "src": "1670:2:7" - }, - "returnParameters": { - "id": 8924, - "nodeType": "ParameterList", - "parameters": [], - "src": "1682:0:7" - }, - "scope": 9037, - "src": "1655:985:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 9035, - "nodeType": "Block", - "src": "2833:271:7", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9004, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8997, - "src": "2847:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 9005, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8835, - "src": "2856:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2847:15:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 9033, - "nodeType": "Block", - "src": "2946:152:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9018, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8997, - "src": "2968:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 9019, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8837, - "src": "2977:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2968:15:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e", - "id": 9021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2985:36:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7eac5a25019cfa58bee0665216bcc5877b01e182a14f1df6cf76155e4b2d9900", - "typeString": "literal_string \"ExampleOracleSimple: INVALID_TOKEN\"" - }, - "value": "ExampleOracleSimple: INVALID_TOKEN" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7eac5a25019cfa58bee0665216bcc5877b01e182a14f1df6cf76155e4b2d9900", - "typeString": "literal_string \"ExampleOracleSimple: INVALID_TOKEN\"" - } - ], - "id": 9017, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2960:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2960:62:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9023, - "nodeType": "ExpressionStatement", - "src": "2960:62:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 9031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9024, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9002, - "src": "3036:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9027, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8999, - "src": "3066:8:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9025, - "name": "price1Average", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8847, - "src": "3048:13:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "id": 9026, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 11842, - "src": "3048:17:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_uq112x112_$11732_memory_ptr_$_t_uint256_$returns$_t_struct$_uq144x112_$11735_memory_ptr_$bound_to$_t_struct$_uq112x112_$11732_memory_ptr_$", - "typeString": "function (struct FixedPoint.uq112x112 memory,uint256) pure returns (struct FixedPoint.uq144x112 memory)" - } - }, - "id": 9028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3048:27:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "id": 9029, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decode144", - "nodeType": "MemberAccess", - "referencedDeclaration": 11903, - "src": "3048:37:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_uq144x112_$11735_memory_ptr_$returns$_t_uint144_$bound_to$_t_struct$_uq144x112_$11735_memory_ptr_$", - "typeString": "function (struct FixedPoint.uq144x112 memory) pure returns (uint144)" - } - }, - "id": 9030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3048:39:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "src": "3036:51:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9032, - "nodeType": "ExpressionStatement", - "src": "3036:51:7" - } - ] - }, - "id": 9034, - "nodeType": "IfStatement", - "src": "2843:255:7", - "trueBody": { - "id": 9016, - "nodeType": "Block", - "src": "2864:76:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9007, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9002, - "src": "2878:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9010, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8999, - "src": "2908:8:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9008, - "name": "price0Average", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8845, - "src": "2890:13:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "id": 9009, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 11842, - "src": "2890:17:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_uq112x112_$11732_memory_ptr_$_t_uint256_$returns$_t_struct$_uq144x112_$11735_memory_ptr_$bound_to$_t_struct$_uq112x112_$11732_memory_ptr_$", - "typeString": "function (struct FixedPoint.uq112x112 memory,uint256) pure returns (struct FixedPoint.uq144x112 memory)" - } - }, - "id": 9011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2890:27:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "id": 9012, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decode144", - "nodeType": "MemberAccess", - "referencedDeclaration": 11903, - "src": "2890:37:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_uq144x112_$11735_memory_ptr_$returns$_t_uint144_$bound_to$_t_struct$_uq144x112_$11735_memory_ptr_$", - "typeString": "function (struct FixedPoint.uq144x112 memory) pure returns (uint144)" - } - }, - "id": 9013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2890:39:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "src": "2878:51:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9015, - "nodeType": "ExpressionStatement", - "src": "2878:51:7" - } - ] - } - } - ] - }, - "documentation": null, - "functionSelector": "3ddac953", - "id": 9036, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "consult", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8997, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9036, - "src": "2764:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2764:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8999, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9036, - "src": "2779:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8998, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2779:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2763:30:7" - }, - "returnParameters": { - "id": 9003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9002, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9036, - "src": "2817:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9001, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2817:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2816:16:7" - }, - "scope": 9037, - "src": "2747:357:7", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 9038, - "src": "483:2623:7" - } - ], - "src": "0:3107:7" - } - }, - "contracts/examples/ExampleSlidingWindowOracle.sol": { - "id": 8, - "AST": { - "absolutePath": "contracts/examples/ExampleSlidingWindowOracle.sol", - "exportedSymbols": { - "ExampleSlidingWindowOracle": [ - 9393 - ] - }, - "id": 9394, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9039, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:8" - }, - { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapFactory.sol", - "file": "@swapr/core/contracts/interfaces/IDXswapFactory.sol", - "id": 9040, - "nodeType": "ImportDirective", - "scope": 9394, - "sourceUnit": 85, - "src": "25:61:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "file": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "id": 9041, - "nodeType": "ImportDirective", - "scope": 9394, - "sourceUnit": 337, - "src": "87:58:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/FixedPoint.sol", - "file": "../libraries/FixedPoint.sol", - "id": 9042, - "nodeType": "ImportDirective", - "scope": 9394, - "sourceUnit": 11905, - "src": "147:37:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/SafeMath.sol", - "file": "../libraries/SafeMath.sol", - "id": 9043, - "nodeType": "ImportDirective", - "scope": 9394, - "sourceUnit": 12368, - "src": "185:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/DXswapLibrary.sol", - "file": "../libraries/DXswapLibrary.sol", - "id": 9044, - "nodeType": "ImportDirective", - "scope": 9394, - "sourceUnit": 11621, - "src": "221:40:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/DXswapOracleLibrary.sol", - "file": "../libraries/DXswapOracleLibrary.sol", - "id": 9045, - "nodeType": "ImportDirective", - "scope": 9394, - "sourceUnit": 11728, - "src": "262:46:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9393, - "linearizedBaseContracts": [ - 9393 - ], - "name": "ExampleSlidingWindowOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 9047, - "libraryName": { - "contractScope": null, - "id": 9046, - "name": "FixedPoint", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11904, - "src": "710:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FixedPoint_$11904", - "typeString": "library FixedPoint" - } - }, - "nodeType": "UsingForDirective", - "src": "704:23:8", - "typeName": null - }, - { - "id": 9050, - "libraryName": { - "contractScope": null, - "id": 9048, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12367, - "src": "738:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$12367", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "732:24:8", - "typeName": { - "id": 9049, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "751:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "ExampleSlidingWindowOracle.Observation", - "id": 9057, - "members": [ - { - "constant": false, - "id": 9052, - "mutability": "mutable", - "name": "timestamp", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9057, - "src": "791:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9051, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "791:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9054, - "mutability": "mutable", - "name": "price0Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9057, - "src": "815:21:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9053, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "815:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9056, - "mutability": "mutable", - "name": "price1Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9057, - "src": "846:21:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9055, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "846:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Observation", - "nodeType": "StructDefinition", - "scope": 9393, - "src": "762:112:8", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "c45a0155", - "id": 9059, - "mutability": "immutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9393, - "src": "880:32:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "880:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "8a14117a", - "id": 9061, - "mutability": "immutable", - "name": "windowSize", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9393, - "src": "1016:32:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9060, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1016:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "556f0dc7", - "id": 9063, - "mutability": "immutable", - "name": "granularity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9393, - "src": "1601:34:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9062, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1601:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "e4463eb2", - "id": 9065, - "mutability": "immutable", - "name": "periodSize", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9393, - "src": "1752:32:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9064, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1752:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "bfcc8e42", - "id": 9070, - "mutability": "mutable", - "name": "pairObservations", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9393, - "src": "1869:57:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Observation_$9057_storage_$dyn_storage_$", - "typeString": "mapping(address => struct ExampleSlidingWindowOracle.Observation[])" - }, - "typeName": { - "id": 9069, - "keyType": { - "id": 9066, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1877:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1869:33:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Observation_$9057_storage_$dyn_storage_$", - "typeString": "mapping(address => struct ExampleSlidingWindowOracle.Observation[])" - }, - "valueType": { - "baseType": { - "contractScope": null, - "id": 9067, - "name": "Observation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9057, - "src": "1888:11:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation" - } - }, - "id": 9068, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1888:13:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Observation_$9057_storage_$dyn_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation[]" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 9112, - "nodeType": "Block", - "src": "2008:352:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 9082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9080, - "name": "granularity_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9076, - "src": "2026:12:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 9081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2026:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536c6964696e6757696e646f774f7261636c653a204752414e554c4152495459", - "id": 9083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2044:34:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4475cb61de8f40ee5fa28e004a27a375037aa82af6dab1e7a7b1e55ef8e63c7f", - "typeString": "literal_string \"SlidingWindowOracle: GRANULARITY\"" - }, - "value": "SlidingWindowOracle: GRANULARITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4475cb61de8f40ee5fa28e004a27a375037aa82af6dab1e7a7b1e55ef8e63c7f", - "typeString": "literal_string \"SlidingWindowOracle: GRANULARITY\"" - } - ], - "id": 9079, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2018:61:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9085, - "nodeType": "ExpressionStatement", - "src": "2018:61:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 9091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9087, - "name": "periodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9065, - "src": "2111:10:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9088, - "name": "windowSize_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9074, - "src": "2124:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9089, - "name": "granularity_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9076, - "src": "2138:12:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2124:26:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2111:39:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9092, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2110:41:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9093, - "name": "granularity_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9076, - "src": "2154:12:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2110:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 9095, - "name": "windowSize_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9074, - "src": "2170:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2110:71:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536c6964696e6757696e646f774f7261636c653a2057494e444f575f4e4f545f4556454e4c595f444956495349424c45", - "id": 9097, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2195:50:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_02fab66c5c104e9faa12a43c836254d05ef50c6df22c7a6bbf78f99052bb8397", - "typeString": "literal_string \"SlidingWindowOracle: WINDOW_NOT_EVENLY_DIVISIBLE\"" - }, - "value": "SlidingWindowOracle: WINDOW_NOT_EVENLY_DIVISIBLE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_02fab66c5c104e9faa12a43c836254d05ef50c6df22c7a6bbf78f99052bb8397", - "typeString": "literal_string \"SlidingWindowOracle: WINDOW_NOT_EVENLY_DIVISIBLE\"" - } - ], - "id": 9086, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2089:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2089:166:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9099, - "nodeType": "ExpressionStatement", - "src": "2089:166:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 9102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9100, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9059, - "src": "2265:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9101, - "name": "factory_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9072, - "src": "2275:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2265:18:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9103, - "nodeType": "ExpressionStatement", - "src": "2265:18:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 9106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9104, - "name": "windowSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9061, - "src": "2293:10:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9105, - "name": "windowSize_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9074, - "src": "2306:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2293:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9107, - "nodeType": "ExpressionStatement", - "src": "2293:24:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 9110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9108, - "name": "granularity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9063, - "src": "2327:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9109, - "name": "granularity_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9076, - "src": "2341:12:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2327:26:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 9111, - "nodeType": "ExpressionStatement", - "src": "2327:26:8" - } - ] - }, - "documentation": null, - "id": 9113, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9077, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9072, - "mutability": "mutable", - "name": "factory_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9113, - "src": "1945:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9071, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1945:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9074, - "mutability": "mutable", - "name": "windowSize_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9113, - "src": "1963:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9073, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1963:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9076, - "mutability": "mutable", - "name": "granularity_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9113, - "src": "1981:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9075, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1981:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1944:56:8" - }, - "returnParameters": { - "id": 9078, - "nodeType": "ParameterList", - "parameters": [], - "src": "2008:0:8" - }, - "scope": 9393, - "src": "1933:427:8", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 9133, - "nodeType": "Block", - "src": "2525:107:8", - "statements": [ - { - "assignments": [ - 9121 - ], - "declarations": [ - { - "constant": false, - "id": 9121, - "mutability": "mutable", - "name": "epochPeriod", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9133, - "src": "2535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9120, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2535:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9125, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9122, - "name": "timestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9115, - "src": "2554:9:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9123, - "name": "periodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9065, - "src": "2566:10:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2554:22:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2535:41:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9128, - "name": "epochPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9121, - "src": "2599:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 9129, - "name": "granularity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9063, - "src": "2613:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2599:25:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2593:5:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 9126, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2593:5:8", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2593:32:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 9119, - "id": 9132, - "nodeType": "Return", - "src": "2586:39:8" - } - ] - }, - "documentation": null, - "functionSelector": "dbaad32f", - "id": 9134, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "observationIndexOf", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9115, - "mutability": "mutable", - "name": "timestamp", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9134, - "src": "2475:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9114, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2475:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2474:16:8" - }, - "returnParameters": { - "id": 9119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9118, - "mutability": "mutable", - "name": "index", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9134, - "src": "2512:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9117, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2512:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2511:13:8" - }, - "scope": 9393, - "src": "2447:185:8", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 9165, - "nodeType": "Block", - "src": "2864:314:8", - "statements": [ - { - "assignments": [ - 9142 - ], - "declarations": [ - { - "constant": false, - "id": 9142, - "mutability": "mutable", - "name": "observationIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9165, - "src": "2874:22:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9141, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2874:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9147, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9144, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "2918:5:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 9145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2918:15:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9143, - "name": "observationIndexOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9134, - "src": "2899:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint8_$", - "typeString": "function (uint256) view returns (uint8)" - } - }, - "id": 9146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2899:35:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2874:60:8" - }, - { - "assignments": [ - 9149 - ], - "declarations": [ - { - "constant": false, - "id": 9149, - "mutability": "mutable", - "name": "firstObservationIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9165, - "src": "3031:27:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9148, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3031:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9156, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 9155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 9152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9150, - "name": "observationIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9142, - "src": "3062:16:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 9151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3081:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3062:20:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 9153, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3061:22:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 9154, - "name": "granularity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9063, - "src": "3086:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3061:36:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3031:66:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 9163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9157, - "name": "firstObservation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9139, - "src": "3107:16:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9158, - "name": "pairObservations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9070, - "src": "3126:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Observation_$9057_storage_$dyn_storage_$", - "typeString": "mapping(address => struct ExampleSlidingWindowOracle.Observation storage ref[] storage ref)" - } - }, - "id": 9160, - "indexExpression": { - "argumentTypes": null, - "id": 9159, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9136, - "src": "3143:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3126:22:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Observation_$9057_storage_$dyn_storage", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage ref[] storage ref" - } - }, - "id": 9162, - "indexExpression": { - "argumentTypes": null, - "id": 9161, - "name": "firstObservationIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9149, - "src": "3149:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3126:45:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage ref" - } - }, - "src": "3107:64:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "id": 9164, - "nodeType": "ExpressionStatement", - "src": "3107:64:8" - } - ] - }, - "documentation": null, - "id": 9166, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getFirstObservationInWindow", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9136, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9166, - "src": "2790:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2789:14:8" - }, - "returnParameters": { - "id": 9140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9139, - "mutability": "mutable", - "name": "firstObservation", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9166, - "src": "2826:36:8", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation" - }, - "typeName": { - "contractScope": null, - "id": 9138, - "name": "Observation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9057, - "src": "2826:11:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2825:38:8" - }, - "scope": 9393, - "src": "2753:425:8", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9259, - "nodeType": "Block", - "src": "3388:987:8", - "statements": [ - { - "assignments": [ - 9174 - ], - "declarations": [ - { - "constant": false, - "id": 9174, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9259, - "src": "3398:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9173, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3398:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9181, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9177, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9059, - "src": "3435:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9178, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9168, - "src": "3444:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9179, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9170, - "src": "3452:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9175, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "3413:13:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 9176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "3413:21:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 9180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3413:46:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3398:61:8" - }, - { - "body": { - "id": 9201, - "nodeType": "Block", - "src": "3609:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9195, - "name": "pairObservations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9070, - "src": "3623:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Observation_$9057_storage_$dyn_storage_$", - "typeString": "mapping(address => struct ExampleSlidingWindowOracle.Observation storage ref[] storage ref)" - } - }, - "id": 9197, - "indexExpression": { - "argumentTypes": null, - "id": 9196, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9174, - "src": "3640:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3623:22:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Observation_$9057_storage_$dyn_storage", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage ref[] storage ref" - } - }, - "id": 9198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3623:27:8", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$__$returns$_t_struct$_Observation_$9057_storage_$", - "typeString": "function () returns (struct ExampleSlidingWindowOracle.Observation storage ref)" - } - }, - "id": 9199, - "isConstant": false, - "isLValue": true, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3623:29:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage ref" - } - }, - "id": 9200, - "nodeType": "ExpressionStatement", - "src": "3623:29:8" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9189, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9183, - "src": "3587:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 9190, - "name": "granularity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9063, - "src": "3591:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3587:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9202, - "initializationExpression": { - "assignments": [ - 9183 - ], - "declarations": [ - { - "constant": false, - "id": 9183, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9202, - "src": "3547:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9182, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3547:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9188, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9184, - "name": "pairObservations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9070, - "src": "3556:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Observation_$9057_storage_$dyn_storage_$", - "typeString": "mapping(address => struct ExampleSlidingWindowOracle.Observation storage ref[] storage ref)" - } - }, - "id": 9186, - "indexExpression": { - "argumentTypes": null, - "id": 9185, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9174, - "src": "3573:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3556:22:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Observation_$9057_storage_$dyn_storage", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage ref[] storage ref" - } - }, - "id": 9187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3556:29:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3547:38:8" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 9193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3604:3:8", - "subExpression": { - "argumentTypes": null, - "id": 9192, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9183, - "src": "3604:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9194, - "nodeType": "ExpressionStatement", - "src": "3604:3:8" - }, - "nodeType": "ForStatement", - "src": "3542:121:8" - }, - { - "assignments": [ - 9204 - ], - "declarations": [ - { - "constant": false, - "id": 9204, - "mutability": "mutable", - "name": "observationIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9259, - "src": "3727:22:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9203, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3727:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9206, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "3771:5:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 9207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3771:15:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9205, - "name": "observationIndexOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9134, - "src": "3752:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint8_$", - "typeString": "function (uint256) view returns (uint8)" - } - }, - "id": 9208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3752:35:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3727:60:8" - }, - { - "assignments": [ - 9211 - ], - "declarations": [ - { - "constant": false, - "id": 9211, - "mutability": "mutable", - "name": "observation", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9259, - "src": "3797:31:8", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation" - }, - "typeName": { - "contractScope": null, - "id": 9210, - "name": "Observation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9057, - "src": "3797:11:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9212, - "name": "pairObservations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9070, - "src": "3831:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_Observation_$9057_storage_$dyn_storage_$", - "typeString": "mapping(address => struct ExampleSlidingWindowOracle.Observation storage ref[] storage ref)" - } - }, - "id": 9214, - "indexExpression": { - "argumentTypes": null, - "id": 9213, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9174, - "src": "3848:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3831:22:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Observation_$9057_storage_$dyn_storage", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage ref[] storage ref" - } - }, - "id": 9216, - "indexExpression": { - "argumentTypes": null, - "id": 9215, - "name": "observationIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9204, - "src": "3854:16:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3831:40:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3797:74:8" - }, - { - "assignments": [ - 9219 - ], - "declarations": [ - { - "constant": false, - "id": 9219, - "mutability": "mutable", - "name": "timeElapsed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9259, - "src": "3972:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9218, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3972:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9225, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9220, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "3991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 9221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3991:15:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9222, - "name": "observation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9211, - "src": "4009:11:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "id": 9223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 9052, - "src": "4009:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3991:39:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3972:58:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9226, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9219, - "src": "4044:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 9227, - "name": "periodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9065, - "src": "4058:10:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4044:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9258, - "nodeType": "IfStatement", - "src": "4040:329:8", - "trueBody": { - "id": 9257, - "nodeType": "Block", - "src": "4070:299:8", - "statements": [ - { - "assignments": [ - 9230, - 9232, - null - ], - "declarations": [ - { - "constant": false, - "id": 9230, - "mutability": "mutable", - "name": "price0Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9257, - "src": "4085:21:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9229, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4085:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9232, - "mutability": "mutable", - "name": "price1Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9257, - "src": "4108:21:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9231, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4108:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 9237, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9235, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9174, - "src": "4178:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9233, - "name": "DXswapOracleLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11727, - "src": "4134:19:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapOracleLibrary_$11727_$", - "typeString": "type(library DXswapOracleLibrary)" - } - }, - "id": 9234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "currentCumulativePrices", - "nodeType": "MemberAccess", - "referencedDeclaration": 11726, - "src": "4134:43:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$_t_uint256_$_t_uint32_$", - "typeString": "function (address) view returns (uint256,uint256,uint32)" - } - }, - "id": 9236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4134:49:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint32_$", - "typeString": "tuple(uint256,uint256,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4084:99:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 9243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9238, - "name": "observation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9211, - "src": "4197:11:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "id": 9240, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 9052, - "src": "4197:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9241, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "4221:5:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 9242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4221:15:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4197:39:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9244, - "nodeType": "ExpressionStatement", - "src": "4197:39:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 9249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9245, - "name": "observation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9211, - "src": "4250:11:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "id": 9247, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "price0Cumulative", - "nodeType": "MemberAccess", - "referencedDeclaration": 9054, - "src": "4250:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9248, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9230, - "src": "4281:16:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4250:47:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9250, - "nodeType": "ExpressionStatement", - "src": "4250:47:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 9255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9251, - "name": "observation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9211, - "src": "4311:11:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "id": 9253, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "price1Cumulative", - "nodeType": "MemberAccess", - "referencedDeclaration": 9056, - "src": "4311:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9254, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9232, - "src": "4342:16:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4311:47:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9256, - "nodeType": "ExpressionStatement", - "src": "4311:47:8" - } - ] - } - } - ] - }, - "documentation": null, - "functionSelector": "c640752d", - "id": 9260, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "update", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9168, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9260, - "src": "3347:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3347:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9170, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9260, - "src": "3363:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3363:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3346:32:8" - }, - "returnParameters": { - "id": 9172, - "nodeType": "ParameterList", - "parameters": [], - "src": "3388:0:8" - }, - "scope": 9393, - "src": "3331:1044:8", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 9299, - "nodeType": "Block", - "src": "4746:262:8", - "statements": [ - { - "assignments": [ - 9276 - ], - "declarations": [ - { - "constant": false, - "id": 9276, - "mutability": "mutable", - "name": "priceAverage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9299, - "src": "4788:40:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 9275, - "name": "FixedPoint.uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "4788:20:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9289, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9281, - "name": "priceCumulativeEnd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9264, - "src": "4874:18:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9282, - "name": "priceCumulativeStart", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9262, - "src": "4895:20:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4874:41:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9284, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4873:43:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9285, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9266, - "src": "4919:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4873:57:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9280, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4865:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 9279, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "4865:7:8", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4865:66:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "expression": { - "argumentTypes": null, - "id": 9277, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11904, - "src": "4831:10:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$11904_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 9278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "uq112x112", - "nodeType": "MemberAccess", - "referencedDeclaration": 11732, - "src": "4831:20:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 9288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4831:110:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4788:153:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 9297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9290, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9271, - "src": "4951:9:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9293, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9268, - "src": "4980:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9291, - "name": "priceAverage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9276, - "src": "4963:12:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 9292, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 11842, - "src": "4963:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_uq112x112_$11732_memory_ptr_$_t_uint256_$returns$_t_struct$_uq144x112_$11735_memory_ptr_$bound_to$_t_struct$_uq112x112_$11732_memory_ptr_$", - "typeString": "function (struct FixedPoint.uq112x112 memory,uint256) pure returns (struct FixedPoint.uq144x112 memory)" - } - }, - "id": 9294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4963:26:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "id": 9295, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decode144", - "nodeType": "MemberAccess", - "referencedDeclaration": 11903, - "src": "4963:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_uq144x112_$11735_memory_ptr_$returns$_t_uint144_$bound_to$_t_struct$_uq144x112_$11735_memory_ptr_$", - "typeString": "function (struct FixedPoint.uq144x112 memory) pure returns (uint144)" - } - }, - "id": 9296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4963:38:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "src": "4951:50:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9298, - "nodeType": "ExpressionStatement", - "src": "4951:50:8" - } - ] - }, - "documentation": null, - "id": 9300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "computeAmountOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9269, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9262, - "mutability": "mutable", - "name": "priceCumulativeStart", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9300, - "src": "4610:25:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9261, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4610:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9264, - "mutability": "mutable", - "name": "priceCumulativeEnd", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9300, - "src": "4637:23:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9263, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4637:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9266, - "mutability": "mutable", - "name": "timeElapsed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9300, - "src": "4670:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9265, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4670:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9268, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9300, - "src": "4688:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9267, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4688:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4600:107:8" - }, - "returnParameters": { - "id": 9272, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9271, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9300, - "src": "4730:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9270, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4730:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4729:16:8" - }, - "scope": 9393, - "src": "4575:433:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9391, - "nodeType": "Block", - "src": "5403:947:8", - "statements": [ - { - "assignments": [ - 9312 - ], - "declarations": [ - { - "constant": false, - "id": 9312, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9391, - "src": "5413:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9319, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9315, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9059, - "src": "5450:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9316, - "name": "tokenIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9302, - "src": "5459:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9317, - "name": "tokenOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9306, - "src": "5468:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9313, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "5428:13:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 9314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11175, - "src": "5428:21:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 9318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5428:49:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5413:64:8" - }, - { - "assignments": [ - 9321 - ], - "declarations": [ - { - "constant": false, - "id": 9321, - "mutability": "mutable", - "name": "firstObservation", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9391, - "src": "5487:36:8", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation" - }, - "typeName": { - "contractScope": null, - "id": 9320, - "name": "Observation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9057, - "src": "5487:11:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9325, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9323, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9312, - "src": "5554:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9322, - "name": "getFirstObservationInWindow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9166, - "src": "5526:27:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_Observation_$9057_storage_ptr_$", - "typeString": "function (address) view returns (struct ExampleSlidingWindowOracle.Observation storage pointer)" - } - }, - "id": 9324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5526:33:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5487:72:8" - }, - { - "assignments": [ - 9327 - ], - "declarations": [ - { - "constant": false, - "id": 9327, - "mutability": "mutable", - "name": "timeElapsed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9391, - "src": "5570:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9326, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5570:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9333, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9328, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "5589:5:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 9329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5589:15:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9330, - "name": "firstObservation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9321, - "src": "5607:16:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "id": 9331, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 9052, - "src": "5607:26:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5589:44:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5570:63:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9335, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9327, - "src": "5651:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 9336, - "name": "windowSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9061, - "src": "5666:10:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5651:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e", - "id": 9338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5678:53:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_20805c472e37d0165585052b64649efe4bb492e8fcaeaa3a202cc46e8a639643", - "typeString": "literal_string \"SlidingWindowOracle: MISSING_HISTORICAL_OBSERVATION\"" - }, - "value": "SlidingWindowOracle: MISSING_HISTORICAL_OBSERVATION" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_20805c472e37d0165585052b64649efe4bb492e8fcaeaa3a202cc46e8a639643", - "typeString": "literal_string \"SlidingWindowOracle: MISSING_HISTORICAL_OBSERVATION\"" - } - ], - "id": 9334, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5643:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5643:89:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9340, - "nodeType": "ExpressionStatement", - "src": "5643:89:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9342, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9327, - "src": "5782:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9343, - "name": "windowSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9061, - "src": "5797:10:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9344, - "name": "periodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9065, - "src": "5810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 9345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5823:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "5810:14:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5797:27:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5782:42:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c4150534544", - "id": 9349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5826:46:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_408716186f121814b7dbc817d4e1fcdf168ff1958e9c797fca8eb4670c61ba79", - "typeString": "literal_string \"SlidingWindowOracle: UNEXPECTED_TIME_ELAPSED\"" - }, - "value": "SlidingWindowOracle: UNEXPECTED_TIME_ELAPSED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_408716186f121814b7dbc817d4e1fcdf168ff1958e9c797fca8eb4670c61ba79", - "typeString": "literal_string \"SlidingWindowOracle: UNEXPECTED_TIME_ELAPSED\"" - } - ], - "id": 9341, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5774:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5774:99:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9351, - "nodeType": "ExpressionStatement", - "src": "5774:99:8" - }, - { - "assignments": [ - 9353, - 9355, - null - ], - "declarations": [ - { - "constant": false, - "id": 9353, - "mutability": "mutable", - "name": "price0Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9391, - "src": "5885:21:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9352, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5885:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9355, - "mutability": "mutable", - "name": "price1Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9391, - "src": "5908:21:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9354, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5908:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 9360, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9358, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9312, - "src": "5978:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9356, - "name": "DXswapOracleLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11727, - "src": "5934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapOracleLibrary_$11727_$", - "typeString": "type(library DXswapOracleLibrary)" - } - }, - "id": 9357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "currentCumulativePrices", - "nodeType": "MemberAccess", - "referencedDeclaration": 11726, - "src": "5934:43:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$_t_uint256_$_t_uint32_$", - "typeString": "function (address) view returns (uint256,uint256,uint32)" - } - }, - "id": 9359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5934:49:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint32_$", - "typeString": "tuple(uint256,uint256,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5884:99:8" - }, - { - "assignments": [ - 9362, - null - ], - "declarations": [ - { - "constant": false, - "id": 9362, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9391, - "src": "5994:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5994:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 9368, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9365, - "name": "tokenIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9302, - "src": "6038:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9366, - "name": "tokenOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9306, - "src": "6047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9363, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "6013:13:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 9364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sortTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11130, - "src": "6013:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 9367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6013:43:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5993:63:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9369, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9362, - "src": "6071:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 9370, - "name": "tokenIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9302, - "src": "6081:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6071:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 9389, - "nodeType": "Block", - "src": "6220:124:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9382, - "name": "firstObservation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9321, - "src": "6258:16:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "id": 9383, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "price1Cumulative", - "nodeType": "MemberAccess", - "referencedDeclaration": 9056, - "src": "6258:33:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9384, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9355, - "src": "6293:16:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9385, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9327, - "src": "6311:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9386, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9304, - "src": "6324:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9381, - "name": "computeAmountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9300, - "src": "6241:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 9387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6241:92:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9310, - "id": 9388, - "nodeType": "Return", - "src": "6234:99:8" - } - ] - }, - "id": 9390, - "nodeType": "IfStatement", - "src": "6067:277:8", - "trueBody": { - "id": 9380, - "nodeType": "Block", - "src": "6090:124:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9373, - "name": "firstObservation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9321, - "src": "6128:16:8", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Observation_$9057_storage_ptr", - "typeString": "struct ExampleSlidingWindowOracle.Observation storage pointer" - } - }, - "id": 9374, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "price0Cumulative", - "nodeType": "MemberAccess", - "referencedDeclaration": 9054, - "src": "6128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9375, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9353, - "src": "6163:16:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9376, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9327, - "src": "6181:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9377, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9304, - "src": "6194:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9372, - "name": "computeAmountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9300, - "src": "6111:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 9378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6111:92:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9310, - "id": 9379, - "nodeType": "Return", - "src": "6104:99:8" - } - ] - } - } - ] - }, - "documentation": null, - "functionSelector": "8c86f1e4", - "id": 9392, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "consult", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9302, - "mutability": "mutable", - "name": "tokenIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9392, - "src": "5314:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5314:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9304, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9392, - "src": "5331:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9303, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5331:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9306, - "mutability": "mutable", - "name": "tokenOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9392, - "src": "5346:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5346:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5313:50:8" - }, - "returnParameters": { - "id": 9310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9309, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9392, - "src": "5387:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9308, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5387:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5386:16:8" - }, - "scope": 9393, - "src": "5297:1053:8", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 9394, - "src": "662:5690:8" - } - ], - "src": "0:6353:8" - } - }, - "contracts/examples/ExampleSwapToPrice.sol": { - "id": 9, - "AST": { - "absolutePath": "contracts/examples/ExampleSwapToPrice.sol", - "exportedSymbols": { - "ExampleSwapToPrice": [ - 9692 - ] - }, - "id": 9693, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9395, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "file": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "id": 9396, - "nodeType": "ImportDirective", - "scope": 9693, - "sourceUnit": 337, - "src": "25:58:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/Babylonian.sol", - "file": "../libraries/Babylonian.sol", - "id": 9397, - "nodeType": "ImportDirective", - "scope": 9693, - "sourceUnit": 11080, - "src": "85:37:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/TransferHelper.sol", - "file": "../libraries/TransferHelper.sol", - "id": 9398, - "nodeType": "ImportDirective", - "scope": 9693, - "sourceUnit": 12528, - "src": "123:41:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IERC20.sol", - "file": "../interfaces/IERC20.sol", - "id": 9399, - "nodeType": "ImportDirective", - "scope": 9693, - "sourceUnit": 10844, - "src": "165:34:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IDXswapRouter.sol", - "file": "../interfaces/IDXswapRouter.sol", - "id": 9400, - "nodeType": "ImportDirective", - "scope": 9693, - "sourceUnit": 10760, - "src": "200:41:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/SafeMath.sol", - "file": "../libraries/SafeMath.sol", - "id": 9401, - "nodeType": "ImportDirective", - "scope": 9693, - "sourceUnit": 12368, - "src": "242:35:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/DXswapLibrary.sol", - "file": "../libraries/DXswapLibrary.sol", - "id": 9402, - "nodeType": "ImportDirective", - "scope": 9693, - "sourceUnit": 11621, - "src": "278:40:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9692, - "linearizedBaseContracts": [ - 9692 - ], - "name": "ExampleSwapToPrice", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 9405, - "libraryName": { - "contractScope": null, - "id": 9403, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12367, - "src": "360:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$12367", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "354:27:9", - "typeName": { - "id": 9404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "373:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "functionSelector": "f887ea40", - "id": 9407, - "mutability": "immutable", - "name": "router", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9692, - "src": "387:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - }, - "typeName": { - "contractScope": null, - "id": 9406, - "name": "IDXswapRouter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10759, - "src": "387:13:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "c45a0155", - "id": 9409, - "mutability": "immutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9692, - "src": "430:32:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9408, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "430:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 9424, - "nodeType": "Block", - "src": "529:61:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9416, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9409, - "src": "539:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9417, - "name": "factory_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9411, - "src": "549:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "539:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9419, - "nodeType": "ExpressionStatement", - "src": "539:18:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 9422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9420, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9407, - "src": "567:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9421, - "name": "router_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9413, - "src": "576:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "src": "567:16:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 9423, - "nodeType": "ExpressionStatement", - "src": "567:16:9" - } - ] - }, - "documentation": null, - "id": 9425, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9411, - "mutability": "mutable", - "name": "factory_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9425, - "src": "481:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9410, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "481:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9413, - "mutability": "mutable", - "name": "router_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9425, - "src": "499:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - }, - "typeName": { - "contractScope": null, - "id": 9412, - "name": "IDXswapRouter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10759, - "src": "499:13:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "480:41:9" - }, - "returnParameters": { - "id": 9415, - "nodeType": "ParameterList", - "parameters": [], - "src": "529:0:9" - }, - "scope": 9692, - "src": "469:121:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 9522, - "nodeType": "Block", - "src": "908:613:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9442, - "name": "aToB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9438, - "src": "918:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9445, - "name": "truePriceTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9429, - "src": "938:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9443, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9431, - "src": "925:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "925:12:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "925:29:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9447, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "957:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "925:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 9449, - "name": "truePriceTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9427, - "src": "968:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "925:58:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "918:65:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9452, - "nodeType": "ExpressionStatement", - "src": "918:65:9" - }, - { - "assignments": [ - 9454 - ], - "declarations": [ - { - "constant": false, - "id": 9454, - "mutability": "mutable", - "name": "invariant", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9522, - "src": "994:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9453, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "994:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9459, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9457, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "1027:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9455, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9431, - "src": "1014:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "1014:12:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1014:22:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "994:42:9" - }, - { - "assignments": [ - 9461 - ], - "declarations": [ - { - "constant": false, - "id": 9461, - "mutability": "mutable", - "name": "leftSide", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9522, - "src": "1047:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9460, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1047:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 9472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1155:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 9466, - "name": "aToB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9438, - "src": "1109:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 9468, - "name": "truePriceTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9429, - "src": "1134:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "1109:40:9", - "trueExpression": { - "argumentTypes": null, - "id": 9467, - "name": "truePriceTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9427, - "src": "1116:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9464, - "name": "invariant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9454, - "src": "1095:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "1095:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1095:55:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "1095:59:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1095:66:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9487, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "1246:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 9484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1235:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "id": 9483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1230:4:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 9482, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1230:4:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1230:11:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "1230:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1230:24:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 9476, - "name": "aToB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9438, - "src": "1184:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 9478, - "name": "truePriceTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9427, - "src": "1209:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "1184:40:9", - "trueExpression": { - "argumentTypes": null, - "id": 9477, - "name": "truePriceTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9429, - "src": "1191:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1176:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 9474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1176:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1176:49:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "1176:53:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1176:79:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1095:160:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9462, - "name": "Babylonian", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11079, - "src": "1066:10:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Babylonian_$11079_$", - "typeString": "type(library Babylonian)" - } - }, - "id": 9463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sqrt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11078, - "src": "1066:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 9491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1066:199:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1047:218:9" - }, - { - "assignments": [ - 9494 - ], - "declarations": [ - { - "constant": false, - "id": 9494, - "mutability": "mutable", - "name": "rightSide", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9522, - "src": "1275:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9493, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1275:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9514, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 9495, - "name": "aToB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9438, - "src": "1296:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 9502, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1338:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "argumentTypes": null, - "id": 9500, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9433, - "src": "1325:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "1325:12:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1325:19:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "1296:48:9", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 9498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1316:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "argumentTypes": null, - "id": 9496, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9431, - "src": "1303:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "1303:12:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1303:19:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9505, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1295:50:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9511, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9435, - "src": "1364:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 9508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1353:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "id": 9507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1348:4:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 9506, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1348:4:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1348:11:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "1348:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1348:24:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1295:77:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1275:97:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 9520, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9515, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9440, - "src": "1480:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9518, - "name": "rightSide", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9494, - "src": "1504:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9516, - "name": "leftSide", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9461, - "src": "1491:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "1491:12:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1491:23:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1480:34:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9521, - "nodeType": "ExpressionStatement", - "src": "1480:34:9" - } - ] - }, - "documentation": null, - "functionSelector": "98f1254a", - "id": 9523, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "computeProfitMaximizingTrade", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9427, - "mutability": "mutable", - "name": "truePriceTokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9523, - "src": "718:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9426, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "718:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9429, - "mutability": "mutable", - "name": "truePriceTokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9523, - "src": "751:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9428, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "751:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9431, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9523, - "src": "784:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9430, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "784:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9433, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9523, - "src": "810:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9432, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "810:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9435, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9523, - "src": "836:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9434, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "836:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "708:149:9" - }, - "returnParameters": { - "id": 9441, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9438, - "mutability": "mutable", - "name": "aToB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9523, - "src": "879:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9437, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "879:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9440, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9523, - "src": "890:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9439, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "890:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "878:29:9" - }, - "scope": 9692, - "src": "671:850:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 9690, - "nodeType": "Block", - "src": "2053:1587:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 9549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9543, - "name": "truePriceTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9529, - "src": "2150:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9544, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2169:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2150:20:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9546, - "name": "truePriceTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "2174:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2193:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2174:20:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2150:44:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4578616d706c6553776170546f50726963653a205a45524f5f5052494345", - "id": 9550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2196:32:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_28884a31faca5d65acd285d3e7facdbc4f9dbd1892b1de1088d8d4416762107c", - "typeString": "literal_string \"ExampleSwapToPrice: ZERO_PRICE\"" - }, - "value": "ExampleSwapToPrice: ZERO_PRICE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_28884a31faca5d65acd285d3e7facdbc4f9dbd1892b1de1088d8d4416762107c", - "typeString": "literal_string \"ExampleSwapToPrice: ZERO_PRICE\"" - } - ], - "id": 9542, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2142:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2142:87:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9552, - "nodeType": "ExpressionStatement", - "src": "2142:87:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 9560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9554, - "name": "maxSpendTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9533, - "src": "2347:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9555, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2365:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2347:19:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9557, - "name": "maxSpendTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "2370:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2388:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2370:19:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2347:42:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4578616d706c6553776170546f50726963653a205a45524f5f5350454e44", - "id": 9561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2391:32:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0e350328e0fc66ff97196802ff2d70f334d01d23a12a3b201cf85446302b610f", - "typeString": "literal_string \"ExampleSwapToPrice: ZERO_SPEND\"" - }, - "value": "ExampleSwapToPrice: ZERO_SPEND" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0e350328e0fc66ff97196802ff2d70f334d01d23a12a3b201cf85446302b610f", - "typeString": "literal_string \"ExampleSwapToPrice: ZERO_SPEND\"" - } - ], - "id": 9553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2339:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2339:85:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9563, - "nodeType": "ExpressionStatement", - "src": "2339:85:9" - }, - { - "assignments": [ - 9565 - ], - "declarations": [ - { - "constant": false, - "id": 9565, - "mutability": "mutable", - "name": "aToB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9690, - "src": "2435:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9564, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2435:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9566, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2435:9:9" - }, - { - "assignments": [ - 9568 - ], - "declarations": [ - { - "constant": false, - "id": 9568, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9690, - "src": "2454:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9567, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2454:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9569, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2454:16:9" - }, - { - "id": 9602, - "nodeType": "Block", - "src": "2480:365:9", - "statements": [ - { - "assignments": [ - 9571, - 9573 - ], - "declarations": [ - { - "constant": false, - "id": 9571, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9602, - "src": "2495:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2495:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9573, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9602, - "src": "2513:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9572, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2513:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9580, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9576, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9409, - "src": "2559:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9577, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "2568:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9578, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9527, - "src": "2576:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9574, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "2533:13:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 9575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 11225, - "src": "2533:25:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256,uint256)" - } - }, - "id": 9579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2533:50:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2494:89:9" - }, - { - "assignments": [ - 9582 - ], - "declarations": [ - { - "constant": false, - "id": 9582, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9602, - "src": "2597:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9581, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2597:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9589, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9585, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9409, - "src": "2640:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9586, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "2649:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9587, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9527, - "src": "2657:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9583, - "name": "DXswapLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11620, - "src": "2615:13:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapLibrary_$11620_$", - "typeString": "type(library DXswapLibrary)" - } - }, - "id": 9584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getSwapFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 11256, - "src": "2615:24:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256)" - } - }, - "id": 9588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2615:49:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2597:67:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 9600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 9590, - "name": "aToB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9565, - "src": "2679:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 9591, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9568, - "src": "2685:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9592, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "2678:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9594, - "name": "truePriceTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9529, - "src": "2743:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9595, - "name": "truePriceTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "2760:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9596, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9571, - "src": "2793:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9597, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9573, - "src": "2803:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9598, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9582, - "src": "2813:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9593, - "name": "computeProfitMaximizingTrade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9523, - "src": "2697:28:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256) pure returns (bool,uint256)" - } - }, - "id": 9599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2697:137:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "src": "2678:156:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9601, - "nodeType": "ExpressionStatement", - "src": "2678:156:9" - } - ] - }, - { - "assignments": [ - 9604 - ], - "declarations": [ - { - "constant": false, - "id": 9604, - "mutability": "mutable", - "name": "maxSpend", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9690, - "src": "2908:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9603, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2908:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9609, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 9605, - "name": "aToB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9565, - "src": "2927:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 9607, - "name": "maxSpendTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "2951:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "2927:38:9", - "trueExpression": { - "argumentTypes": null, - "id": 9606, - "name": "maxSpendTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9533, - "src": "2934:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2908:57:9" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9610, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9568, - "src": "2979:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 9611, - "name": "maxSpend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9604, - "src": "2990:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2979:19:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9618, - "nodeType": "IfStatement", - "src": "2975:69:9", - "trueBody": { - "id": 9617, - "nodeType": "Block", - "src": "3000:44:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9613, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9568, - "src": "3014:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9614, - "name": "maxSpend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9604, - "src": "3025:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3014:19:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9616, - "nodeType": "ExpressionStatement", - "src": "3014:19:9" - } - ] - } - }, - { - "assignments": [ - 9620 - ], - "declarations": [ - { - "constant": false, - "id": 9620, - "mutability": "mutable", - "name": "tokenIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9690, - "src": "3054:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9619, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3054:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9625, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 9621, - "name": "aToB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9565, - "src": "3072:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 9623, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9527, - "src": "3088:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "3072:22:9", - "trueExpression": { - "argumentTypes": null, - "id": 9622, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "3079:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3054:40:9" - }, - { - "assignments": [ - 9627 - ], - "declarations": [ - { - "constant": false, - "id": 9627, - "mutability": "mutable", - "name": "tokenOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9690, - "src": "3104:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9626, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3104:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9632, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 9628, - "name": "aToB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9565, - "src": "3123:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 9630, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "3139:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "3123:22:9", - "trueExpression": { - "argumentTypes": null, - "id": 9629, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9527, - "src": "3130:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3104:41:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9636, - "name": "tokenIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9620, - "src": "3187:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3196:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3196:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9641, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3216:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ExampleSwapToPrice_$9692", - "typeString": "contract ExampleSwapToPrice" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ExampleSwapToPrice_$9692", - "typeString": "contract ExampleSwapToPrice" - } - ], - "id": 9640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3208:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3208:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3208:13:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9643, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9568, - "src": "3223:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9633, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "3155:14:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 9635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 12501, - "src": "3155:31:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256)" - } - }, - "id": 9644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:77:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9645, - "nodeType": "ExpressionStatement", - "src": "3155:77:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9649, - "name": "tokenIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9620, - "src": "3269:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9652, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9407, - "src": "3286:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - ], - "id": 9651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3278:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9650, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3278:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3278:15:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9654, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9568, - "src": "3295:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9646, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "3242:14:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$12527_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 9648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeApprove", - "nodeType": "MemberAccess", - "referencedDeclaration": 12412, - "src": "3242:26:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3242:62:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9656, - "nodeType": "ExpressionStatement", - "src": "3242:62:9" - }, - { - "assignments": [ - 9661 - ], - "declarations": [ - { - "constant": false, - "id": 9661, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9690, - "src": "3315:21:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 9659, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3315:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9660, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3315:9:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9667, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "32", - "id": 9665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3353:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "id": 9664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3339:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 9662, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3343:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9663, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3343:9:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 9666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3339:16:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3315:40:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 9672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9668, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9661, - "src": "3365:4:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 9670, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3370:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3365:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9671, - "name": "tokenIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9620, - "src": "3375:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3365:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9673, - "nodeType": "ExpressionStatement", - "src": "3365:17:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 9678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9674, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9661, - "src": "3392:4:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 9676, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 9675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3397:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3392:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9677, - "name": "tokenOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9627, - "src": "3402:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3392:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9679, - "nodeType": "ExpressionStatement", - "src": "3392:18:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9683, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9568, - "src": "3466:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 9684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3488:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 9685, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9661, - "src": "3581:4:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 9686, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9537, - "src": "3599:2:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9687, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "3615:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9680, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9407, - "src": "3421:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 9682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapExactTokensForTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 10536, - "src": "3421:31:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)" - } - }, - "id": 9688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3421:212:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 9689, - "nodeType": "ExpressionStatement", - "src": "3421:212:9" - } - ] - }, - "documentation": null, - "functionSelector": "bef90fd3", - "id": 9691, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "swapToPrice", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9525, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9691, - "src": "1825:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9524, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1825:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9527, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9691, - "src": "1849:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9526, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1849:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9529, - "mutability": "mutable", - "name": "truePriceTokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9691, - "src": "1873:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1873:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9531, - "mutability": "mutable", - "name": "truePriceTokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9691, - "src": "1906:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1906:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9533, - "mutability": "mutable", - "name": "maxSpendTokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9691, - "src": "1939:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1939:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9535, - "mutability": "mutable", - "name": "maxSpendTokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9691, - "src": "1971:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9534, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1971:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9537, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9691, - "src": "2003:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2003:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9539, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9691, - "src": "2023:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2023:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1815:230:9" - }, - "returnParameters": { - "id": 9541, - "nodeType": "ParameterList", - "parameters": [], - "src": "2053:0:9" - }, - "scope": 9692, - "src": "1795:1845:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 9693, - "src": "320:3322:9" - } - ], - "src": "0:3643:9" - } - }, - "contracts/examples/OracleCreator.sol": { - "id": 10, - "AST": { - "absolutePath": "contracts/examples/OracleCreator.sol", - "exportedSymbols": { - "OracleCreator": [ - 10028 - ] - }, - "id": 10029, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9694, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "id": 9695, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:10" - }, - { - "absolutePath": "contracts/libraries/TransferHelper.sol", - "file": "./../libraries/TransferHelper.sol", - "id": 9696, - "nodeType": "ImportDirective", - "scope": 10029, - "sourceUnit": 12528, - "src": "59:43:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/DXswapOracleLibrary.sol", - "file": "./../libraries/DXswapOracleLibrary.sol", - "id": 9697, - "nodeType": "ImportDirective", - "scope": 10029, - "sourceUnit": 11728, - "src": "103:48:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/DXswapLibrary.sol", - "file": "./../libraries/DXswapLibrary.sol", - "id": 9698, - "nodeType": "ImportDirective", - "scope": 10029, - "sourceUnit": 11621, - "src": "152:42:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/SafeMath.sol", - "file": "./../libraries/SafeMath.sol", - "id": 9699, - "nodeType": "ImportDirective", - "scope": 10029, - "sourceUnit": 12368, - "src": "195:37:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10028, - "linearizedBaseContracts": [ - 10028 - ], - "name": "OracleCreator", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 9701, - "libraryName": { - "contractScope": null, - "id": 9700, - "name": "FixedPoint", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11904, - "src": "269:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FixedPoint_$11904", - "typeString": "library FixedPoint" - } - }, - "nodeType": "UsingForDirective", - "src": "263:23:10", - "typeName": null - }, - { - "id": 9704, - "libraryName": { - "contractScope": null, - "id": 9702, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12367, - "src": "297:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$12367", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "291:27:10", - "typeName": { - "id": 9703, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "310:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "anonymous": false, - "documentation": null, - "id": 9712, - "name": "OracleCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 9711, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9706, - "indexed": true, - "mutability": "mutable", - "name": "_oracleIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9712, - "src": "353:28:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9705, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "353:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9708, - "indexed": true, - "mutability": "mutable", - "name": "_pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9712, - "src": "391:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "391:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9710, - "indexed": false, - "mutability": "mutable", - "name": "_windowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9712, - "src": "422:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9709, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "422:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "343:104:10" - }, - "src": "324:124:10" - }, - { - "canonicalName": "OracleCreator.Oracle", - "id": 9735, - "members": [ - { - "constant": false, - "id": 9714, - "mutability": "mutable", - "name": "windowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "477:18:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9713, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "477:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9716, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "505:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9715, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "505:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9718, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "529:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9717, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "529:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9720, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "553:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - }, - "typeName": { - "contractScope": null, - "id": 9719, - "name": "IDXswapPair", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "553:11:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9722, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "579:25:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9721, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "579:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9724, - "mutability": "mutable", - "name": "price0CumulativeLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "614:28:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9723, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "614:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9726, - "mutability": "mutable", - "name": "price1CumulativeLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "652:28:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9725, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "652:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9728, - "mutability": "mutable", - "name": "price0Average", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "690:34:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 9727, - "name": "FixedPoint.uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "690:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9730, - "mutability": "mutable", - "name": "price1Average", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "734:34:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 9729, - "name": "FixedPoint.uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "734:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9732, - "mutability": "mutable", - "name": "observationsCount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "778:25:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9731, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "778:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9734, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9735, - "src": "813:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9733, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "813:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Oracle", - "nodeType": "StructDefinition", - "scope": 10028, - "src": "454:379:10", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "5b69a7d8", - "id": 9739, - "mutability": "mutable", - "name": "oracles", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10028, - "src": "839:41:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Oracle_$9735_storage_$", - "typeString": "mapping(uint256 => struct OracleCreator.Oracle)" - }, - "typeName": { - "id": 9738, - "keyType": { - "id": 9736, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "847:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "839:26:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Oracle_$9735_storage_$", - "typeString": "mapping(uint256 => struct OracleCreator.Oracle)" - }, - "valueType": { - "contractScope": null, - "id": 9737, - "name": "Oracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9735, - "src": "858:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "0eb5295f", - "id": 9741, - "mutability": "mutable", - "name": "oraclesIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10028, - "src": "886:27:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "886:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 9819, - "nodeType": "Block", - "src": "1032:881:10", - "statements": [ - { - "assignments": [ - 9751 - ], - "declarations": [ - { - "constant": false, - "id": 9751, - "mutability": "mutable", - "name": "sourcePair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9819, - "src": "1042:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - }, - "typeName": { - "contractScope": null, - "id": 9750, - "name": "IDXswapPair", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "1042:11:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9755, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9753, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9745, - "src": "1079:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9752, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "1067:11:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 9754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1067:17:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1042:42:10" - }, - { - "assignments": [ - 9757 - ], - "declarations": [ - { - "constant": false, - "id": 9757, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9819, - "src": "1094:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9756, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1094:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9761, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 9758, - "name": "sourcePair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9751, - "src": "1111:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 9759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token0", - "nodeType": "MemberAccess", - "referencedDeclaration": 254, - "src": "1111:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 9760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1111:19:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1094:36:10" - }, - { - "assignments": [ - 9763 - ], - "declarations": [ - { - "constant": false, - "id": 9763, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9819, - "src": "1140:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9762, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1140:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9767, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 9764, - "name": "sourcePair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9751, - "src": "1157:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 9765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token1", - "nodeType": "MemberAccess", - "referencedDeclaration": 259, - "src": "1157:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 9766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1157:19:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1140:36:10" - }, - { - "assignments": [ - null, - null, - 9769 - ], - "declarations": [ - null, - null, - { - "constant": false, - "id": 9769, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9819, - "src": "1190:25:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9768, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1190:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9773, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 9770, - "name": "sourcePair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9751, - "src": "1220:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 9771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 268, - "src": "1220:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 9772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1220:24:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1186:58:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9774, - "name": "oracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9739, - "src": "1255:7:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Oracle_$9735_storage_$", - "typeString": "mapping(uint256 => struct OracleCreator.Oracle storage ref)" - } - }, - "id": 9776, - "indexExpression": { - "argumentTypes": null, - "id": 9775, - "name": "oraclesIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9741, - "src": "1263:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1255:21:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage", - "typeString": "struct OracleCreator.Oracle storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9778, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9743, - "src": "1312:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9779, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9757, - "src": "1344:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9780, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9763, - "src": "1372:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9781, - "name": "sourcePair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9751, - "src": "1398:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - { - "argumentTypes": null, - "id": 9782, - "name": "blockTimestampLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9769, - "src": "1442:18:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 9783, - "name": "sourcePair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9751, - "src": "1496:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 9784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "price0CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 273, - "src": "1496:31:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 9785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1496:33:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 9786, - "name": "sourcePair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9751, - "src": "1565:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 9787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "price1CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 278, - "src": "1565:31:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 9788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1565:33:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1648:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 9789, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11904, - "src": "1627:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$11904_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 9790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "uq112x112", - "nodeType": "MemberAccess", - "referencedDeclaration": 11732, - "src": "1627:20:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 9792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1627:23:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9795, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1700:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 9793, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11904, - "src": "1679:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$11904_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 9794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "uq112x112", - "nodeType": "MemberAccess", - "referencedDeclaration": 11732, - "src": "1679:20:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 9796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1679:23:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 9797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1735:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9798, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1757:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1757:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - }, - { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 9777, - "name": "Oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9735, - "src": "1279:6:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Oracle_$9735_storage_ptr_$", - "typeString": "type(struct OracleCreator.Oracle storage pointer)" - } - }, - "id": 9800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "windowTime", - "token0", - "token1", - "pair", - "blockTimestampLast", - "price0CumulativeLast", - "price1CumulativeLast", - "price0Average", - "price1Average", - "observationsCount", - "owner" - ], - "nodeType": "FunctionCall", - "src": "1279:499:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_memory_ptr", - "typeString": "struct OracleCreator.Oracle memory" - } - }, - "src": "1255:523:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage", - "typeString": "struct OracleCreator.Oracle storage ref" - } - }, - "id": 9802, - "nodeType": "ExpressionStatement", - "src": "1255:523:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9803, - "name": "oracleId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "1788:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9804, - "name": "oraclesIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9741, - "src": "1799:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1788:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9806, - "nodeType": "ExpressionStatement", - "src": "1788:23:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1821:14:10", - "subExpression": { - "argumentTypes": null, - "id": 9807, - "name": "oraclesIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9741, - "src": "1821:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9809, - "nodeType": "ExpressionStatement", - "src": "1821:14:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9811, - "name": "oracleId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "1864:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9814, - "name": "sourcePair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9751, - "src": "1882:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - ], - "id": 9813, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1874:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1874:7:10", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1874:19:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9816, - "name": "windowTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9743, - "src": "1895:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9810, - "name": "OracleCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9712, - "src": "1850:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address,uint256)" - } - }, - "id": 9817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1850:56:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9818, - "nodeType": "EmitStatement", - "src": "1845:61:10" - } - ] - }, - "documentation": null, - "functionSelector": "06649d67", - "id": 9820, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createOracle", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9743, - "mutability": "mutable", - "name": "windowTime", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9820, - "src": "951:18:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9742, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "951:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9745, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9820, - "src": "979:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9744, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "979:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "941:56:10" - }, - "returnParameters": { - "id": 9749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9748, - "mutability": "mutable", - "name": "oracleId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9820, - "src": "1014:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9747, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1014:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1013:18:10" - }, - "scope": 10028, - "src": "920:993:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 9942, - "nodeType": "Block", - "src": "1963:1432:10", - "statements": [ - { - "assignments": [ - 9826 - ], - "declarations": [ - { - "constant": false, - "id": 9826, - "mutability": "mutable", - "name": "oracle", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9942, - "src": "1973:21:10", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle" - }, - "typeName": { - "contractScope": null, - "id": 9825, - "name": "Oracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9735, - "src": "1973:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9830, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9827, - "name": "oracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9739, - "src": "1997:7:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Oracle_$9735_storage_$", - "typeString": "mapping(uint256 => struct OracleCreator.Oracle storage ref)" - } - }, - "id": 9829, - "indexExpression": { - "argumentTypes": null, - "id": 9828, - "name": "oracleIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9822, - "src": "2005:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1997:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage", - "typeString": "struct OracleCreator.Oracle storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1973:44:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9832, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2035:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2035:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9834, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "2049:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9835, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 9734, - "src": "2049:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2035:26:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f7261636c6543726561746f723a2043414c4c45525f4e4f545f4f574e4552", - "id": 9837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2063:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0f947ed539b05024f4581adebcba3c006c2545806b440c7e41daf9eefa5d880b", - "typeString": "literal_string \"OracleCreator: CALLER_NOT_OWNER\"" - }, - "value": "OracleCreator: CALLER_NOT_OWNER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0f947ed539b05024f4581adebcba3c006c2545806b440c7e41daf9eefa5d880b", - "typeString": "literal_string \"OracleCreator: CALLER_NOT_OWNER\"" - } - ], - "id": 9831, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2027:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2027:70:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9839, - "nodeType": "ExpressionStatement", - "src": "2027:70:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9841, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "2115:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9842, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "observationsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 9732, - "src": "2115:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 9843, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2142:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "2115:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f7261636c6543726561746f723a2046494e49534845445f4f424552534552564154494f4e", - "id": 9845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2145:39:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fbeb299089cff467526d682b8279c362c03bda98b36cb2ba37a08b5a7626d01c", - "typeString": "literal_string \"OracleCreator: FINISHED_OBERSERVATION\"" - }, - "value": "OracleCreator: FINISHED_OBERSERVATION" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fbeb299089cff467526d682b8279c362c03bda98b36cb2ba37a08b5a7626d01c", - "typeString": "literal_string \"OracleCreator: FINISHED_OBERSERVATION\"" - } - ], - "id": 9840, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2107:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2107:78:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9847, - "nodeType": "ExpressionStatement", - "src": "2107:78:10" - }, - { - "assignments": [ - 9849, - 9851, - 9853 - ], - "declarations": [ - { - "constant": false, - "id": 9849, - "mutability": "mutable", - "name": "price0Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9942, - "src": "2196:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9848, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2196:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9851, - "mutability": "mutable", - "name": "price1Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9942, - "src": "2219:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9850, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2219:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9853, - "mutability": "mutable", - "name": "blockTimestamp", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9942, - "src": "2242:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9852, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2242:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9862, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9858, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "2331:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9859, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "pair", - "nodeType": "MemberAccess", - "referencedDeclaration": 9720, - "src": "2331:11:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - ], - "id": 9857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2323:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9856, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2323:7:10", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2323:20:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9854, - "name": "DXswapOracleLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11727, - "src": "2279:19:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DXswapOracleLibrary_$11727_$", - "typeString": "type(library DXswapOracleLibrary)" - } - }, - "id": 9855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "currentCumulativePrices", - "nodeType": "MemberAccess", - "referencedDeclaration": 11726, - "src": "2279:43:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$_t_uint256_$_t_uint32_$", - "typeString": "function (address) view returns (uint256,uint256,uint32)" - } - }, - "id": 9861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2279:65:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint32_$", - "typeString": "tuple(uint256,uint256,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2195:149:10" - }, - { - "assignments": [ - 9864 - ], - "declarations": [ - { - "constant": false, - "id": 9864, - "mutability": "mutable", - "name": "timeElapsed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9942, - "src": "2354:18:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9863, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2354:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9869, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 9868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9865, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9853, - "src": "2375:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9866, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "2392:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9867, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blockTimestampLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 9722, - "src": "2392:25:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2375:42:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2354:63:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 9879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9871, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "2595:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9872, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "observationsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 9732, - "src": "2595:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2623:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2595:29:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9875, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9864, - "src": "2628:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9876, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "2643:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9877, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "windowTime", - "nodeType": "MemberAccess", - "referencedDeclaration": 9714, - "src": "2643:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2628:32:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2595:65:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f7261636c6543726561746f723a20504552494f445f4e4f545f454c4150534544", - "id": 9880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2673:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cc203e1d398b02d0341a3f90491900adc02ada3f93b021d154b2282e5d6bd61e", - "typeString": "literal_string \"OracleCreator: PERIOD_NOT_ELAPSED\"" - }, - "value": "OracleCreator: PERIOD_NOT_ELAPSED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cc203e1d398b02d0341a3f90491900adc02ada3f93b021d154b2282e5d6bd61e", - "typeString": "literal_string \"OracleCreator: PERIOD_NOT_ELAPSED\"" - } - ], - "id": 9870, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2576:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2576:142:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9882, - "nodeType": "ExpressionStatement", - "src": "2576:142:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9883, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "2905:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9885, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "price0Average", - "nodeType": "MemberAccess", - "referencedDeclaration": 9728, - "src": "2905:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9890, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9849, - "src": "2969:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9891, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "2988:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9892, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "price0CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 9724, - "src": "2988:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2969:46:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9894, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2968:48:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9895, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9864, - "src": "3019:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2968:62:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2960:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 9888, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "2960:7:10", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2960:71:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "expression": { - "argumentTypes": null, - "id": 9886, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11904, - "src": "2928:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$11904_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 9887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "uq112x112", - "nodeType": "MemberAccess", - "referencedDeclaration": 11732, - "src": "2928:20:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 9898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2928:113:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "src": "2905:136:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "id": 9900, - "nodeType": "ExpressionStatement", - "src": "2905:136:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9901, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "3051:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9903, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "price1Average", - "nodeType": "MemberAccess", - "referencedDeclaration": 9730, - "src": "3051:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9908, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9851, - "src": "3115:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9909, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "3134:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9910, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "price1CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 9726, - "src": "3134:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3115:46:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9912, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3114:48:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9913, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9864, - "src": "3165:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3114:62:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3106:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 9906, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "3106:7:10", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 9915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3106:71:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "expression": { - "argumentTypes": null, - "id": 9904, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11904, - "src": "3074:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$11904_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 9905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "uq112x112", - "nodeType": "MemberAccess", - "referencedDeclaration": 11732, - "src": "3074:20:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 9916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3074:113:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "src": "3051:136:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "id": 9918, - "nodeType": "ExpressionStatement", - "src": "3051:136:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9919, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "3198:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9921, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "price0CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 9724, - "src": "3198:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9922, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9849, - "src": "3228:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3198:46:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9924, - "nodeType": "ExpressionStatement", - "src": "3198:46:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9925, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "3254:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9927, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "price1CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 9726, - "src": "3254:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9928, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9851, - "src": "3284:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3254:46:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9930, - "nodeType": "ExpressionStatement", - "src": "3254:46:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9931, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "3310:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9933, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "blockTimestampLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 9722, - "src": "3310:25:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9934, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9853, - "src": "3338:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3310:42:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 9936, - "nodeType": "ExpressionStatement", - "src": "3310:42:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3362:26:10", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9937, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9826, - "src": "3362:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9939, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "observationsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 9732, - "src": "3362:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9941, - "nodeType": "ExpressionStatement", - "src": "3362:26:10" - } - ] - }, - "documentation": null, - "functionSelector": "82ab890a", - "id": 9943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "update", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9823, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9822, - "mutability": "mutable", - "name": "oracleIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9943, - "src": "1935:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9821, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1935:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1934:21:10" - }, - "returnParameters": { - "id": 9824, - "nodeType": "ParameterList", - "parameters": [], - "src": "1963:0:10" - }, - "scope": 10028, - "src": "1919:1476:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 9999, - "nodeType": "Block", - "src": "3615:371:10", - "statements": [ - { - "assignments": [ - 9955 - ], - "declarations": [ - { - "constant": false, - "id": 9955, - "mutability": "mutable", - "name": "oracle", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9999, - "src": "3625:21:10", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle" - }, - "typeName": { - "contractScope": null, - "id": 9954, - "name": "Oracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9735, - "src": "3625:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9959, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9956, - "name": "oracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9739, - "src": "3649:7:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Oracle_$9735_storage_$", - "typeString": "mapping(uint256 => struct OracleCreator.Oracle storage ref)" - } - }, - "id": 9958, - "indexExpression": { - "argumentTypes": null, - "id": 9957, - "name": "oracleIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9945, - "src": "3657:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3649:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage", - "typeString": "struct OracleCreator.Oracle storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3625:44:10" - }, - { - "assignments": [ - 9963 - ], - "declarations": [ - { - "constant": false, - "id": 9963, - "mutability": "mutable", - "name": "avg", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 9999, - "src": "3679:31:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 9962, - "name": "FixedPoint.uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "3679:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9964, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "3679:31:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9965, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9947, - "src": "3724:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9966, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9955, - "src": "3733:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9967, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token0", - "nodeType": "MemberAccess", - "referencedDeclaration": 9716, - "src": "3733:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3724:22:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 9988, - "nodeType": "Block", - "src": "3804:125:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9976, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9947, - "src": "3824:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9977, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9955, - "src": "3833:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9978, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token1", - "nodeType": "MemberAccess", - "referencedDeclaration": 9718, - "src": "3833:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3824:22:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f7261636c6543726561746f723a20494e56414c49445f544f4b454e", - "id": 9980, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3848:30:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9b09eb32fb8bf0045aa97de16a8c888abda1cb8453bc86c977f1124690677144", - "typeString": "literal_string \"OracleCreator: INVALID_TOKEN\"" - }, - "value": "OracleCreator: INVALID_TOKEN" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9b09eb32fb8bf0045aa97de16a8c888abda1cb8453bc86c977f1124690677144", - "typeString": "literal_string \"OracleCreator: INVALID_TOKEN\"" - } - ], - "id": 9975, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3816:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3816:63:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9982, - "nodeType": "ExpressionStatement", - "src": "3816:63:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9983, - "name": "avg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9963, - "src": "3892:3:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9984, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9955, - "src": "3898:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9985, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "price1Average", - "nodeType": "MemberAccess", - "referencedDeclaration": 9730, - "src": "3898:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "src": "3892:26:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 9987, - "nodeType": "ExpressionStatement", - "src": "3892:26:10" - } - ] - }, - "id": 9989, - "nodeType": "IfStatement", - "src": "3720:209:10", - "trueBody": { - "id": 9974, - "nodeType": "Block", - "src": "3748:50:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9969, - "name": "avg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9963, - "src": "3761:3:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9970, - "name": "oracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9955, - "src": "3767:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle storage pointer" - } - }, - "id": 9971, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "price0Average", - "nodeType": "MemberAccess", - "referencedDeclaration": 9728, - "src": "3767:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage", - "typeString": "struct FixedPoint.uq112x112 storage ref" - } - }, - "src": "3761:26:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 9973, - "nodeType": "ExpressionStatement", - "src": "3761:26:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 9997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9990, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9952, - "src": "3938:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9993, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9949, - "src": "3958:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9991, - "name": "avg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9963, - "src": "3950:3:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 9992, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 11842, - "src": "3950:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_uq112x112_$11732_memory_ptr_$_t_uint256_$returns$_t_struct$_uq144x112_$11735_memory_ptr_$bound_to$_t_struct$_uq112x112_$11732_memory_ptr_$", - "typeString": "function (struct FixedPoint.uq112x112 memory,uint256) pure returns (struct FixedPoint.uq144x112 memory)" - } - }, - "id": 9994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3950:17:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "id": 9995, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decode144", - "nodeType": "MemberAccess", - "referencedDeclaration": 11903, - "src": "3950:27:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_uq144x112_$11735_memory_ptr_$returns$_t_uint144_$bound_to$_t_struct$_uq144x112_$11735_memory_ptr_$", - "typeString": "function (struct FixedPoint.uq144x112 memory) pure returns (uint144)" - } - }, - "id": 9996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3950:29:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "src": "3938:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9998, - "nodeType": "ExpressionStatement", - "src": "3938:41:10" - } - ] - }, - "documentation": null, - "functionSelector": "4023282b", - "id": 10000, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "consult", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 9950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9945, - "mutability": "mutable", - "name": "oracleIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10000, - "src": "3519:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9944, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3519:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9947, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10000, - "src": "3540:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9946, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3540:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9949, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10000, - "src": "3555:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9948, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3555:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3518:54:10" - }, - "returnParameters": { - "id": 9953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9952, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10000, - "src": "3596:17:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9951, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3596:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3595:19:10" - }, - "scope": 10028, - "src": "3502:484:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 10014, - "nodeType": "Block", - "src": "4068:67:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10007, - "name": "oracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9739, - "src": "4085:7:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Oracle_$9735_storage_$", - "typeString": "mapping(uint256 => struct OracleCreator.Oracle storage ref)" - } - }, - "id": 10009, - "indexExpression": { - "argumentTypes": null, - "id": 10008, - "name": "oracleIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10002, - "src": "4093:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4085:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage", - "typeString": "struct OracleCreator.Oracle storage ref" - } - }, - "id": 10010, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "observationsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 9732, - "src": "4085:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 10011, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4127:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "4085:43:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10006, - "id": 10013, - "nodeType": "Return", - "src": "4078:50:10" - } - ] - }, - "documentation": null, - "functionSelector": "25fa7003", - "id": 10015, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isOracleFinalized", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10002, - "mutability": "mutable", - "name": "oracleIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10015, - "src": "4019:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4019:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4018:21:10" - }, - "returnParameters": { - "id": 10006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10005, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10015, - "src": "4063:4:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10004, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4063:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4062:6:10" - }, - "scope": 10028, - "src": "3992:143:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 10026, - "nodeType": "Block", - "src": "4226:42:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10022, - "name": "oracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9739, - "src": "4241:7:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Oracle_$9735_storage_$", - "typeString": "mapping(uint256 => struct OracleCreator.Oracle storage ref)" - } - }, - "id": 10024, - "indexExpression": { - "argumentTypes": null, - "id": 10023, - "name": "oracleIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10017, - "src": "4249:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4241:20:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage", - "typeString": "struct OracleCreator.Oracle storage ref" - } - }, - "functionReturnParameters": 10021, - "id": 10025, - "nodeType": "Return", - "src": "4234:27:10" - } - ] - }, - "documentation": null, - "functionSelector": "c6668d45", - "id": 10027, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getOracleDetails", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10018, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10017, - "mutability": "mutable", - "name": "oracleIndex", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10027, - "src": "4167:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10016, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4167:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4166:21:10" - }, - "returnParameters": { - "id": 10021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10020, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10027, - "src": "4211:13:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_memory_ptr", - "typeString": "struct OracleCreator.Oracle" - }, - "typeName": { - "contractScope": null, - "id": 10019, - "name": "Oracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9735, - "src": "4211:6:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$9735_storage_ptr", - "typeString": "struct OracleCreator.Oracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4210:15:10" - }, - "scope": 10028, - "src": "4141:127:10", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 10029, - "src": "234:4037:10" - } - ], - "src": "0:4271:10" - } - }, - "contracts/interfaces/IDXswapFactory.sol": { - "id": 11, - "AST": { - "absolutePath": "contracts/interfaces/IDXswapFactory.sol", - "exportedSymbols": { - "IDXswapFactory": [ - 10113 - ] - }, - "id": 10114, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10030, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:11" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10113, - "linearizedBaseContracts": [ - 10113 - ], - "name": "IDXswapFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 10040, - "name": "PairCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 10039, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10032, - "indexed": true, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10040, - "src": "75:22:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10031, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "75:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10034, - "indexed": true, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10040, - "src": "99:22:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10033, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "99:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10036, - "indexed": false, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10040, - "src": "123:12:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "123:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10038, - "indexed": false, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10040, - "src": "137:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10037, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "137:4:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "74:68:11" - }, - "src": "57:86:11" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5855a25a", - "id": 10045, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "INIT_CODE_PAIR_HASH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10041, - "nodeType": "ParameterList", - "parameters": [], - "src": "177:2:11" - }, - "returnParameters": { - "id": 10044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10043, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10045, - "src": "203:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10042, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "203:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "202:9:11" - }, - "scope": 10113, - "src": "149:63:11", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "017e7e58", - "id": 10050, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "feeTo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10046, - "nodeType": "ParameterList", - "parameters": [], - "src": "231:2:11" - }, - "returnParameters": { - "id": 10049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10048, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10050, - "src": "257:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10047, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "257:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "256:9:11" - }, - "scope": 10113, - "src": "217:49:11", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "2ff7042a", - "id": 10055, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "protocolFeeDenominator", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10051, - "nodeType": "ParameterList", - "parameters": [], - "src": "302:2:11" - }, - "returnParameters": { - "id": 10054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10053, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10055, - "src": "328:5:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10052, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "328:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "327:7:11" - }, - "scope": 10113, - "src": "271:64:11", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "094b7415", - "id": 10060, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "feeToSetter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [], - "src": "360:2:11" - }, - "returnParameters": { - "id": 10059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10058, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10060, - "src": "386:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10057, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "386:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "385:9:11" - }, - "scope": 10113, - "src": "340:55:11", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "e6a43905", - "id": 10069, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPair", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10065, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10062, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10069, - "src": "418:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10061, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "418:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10064, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10069, - "src": "434:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10063, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "434:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "417:32:11" - }, - "returnParameters": { - "id": 10068, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10067, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10069, - "src": "473:12:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10066, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "473:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "472:14:11" - }, - "scope": 10113, - "src": "401:86:11", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "1e3dd18b", - "id": 10076, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allPairs", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10071, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10076, - "src": "510:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10070, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "510:4:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "509:6:11" - }, - "returnParameters": { - "id": 10075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10074, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10076, - "src": "539:12:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10073, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "539:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "538:14:11" - }, - "scope": 10113, - "src": "492:61:11", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "574f2ba3", - "id": 10081, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allPairsLength", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10077, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:2:11" - }, - "returnParameters": { - "id": 10080, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10079, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10081, - "src": "607:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10078, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "607:4:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "606:6:11" - }, - "scope": 10113, - "src": "558:55:11", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "c9c65396", - "id": 10090, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "createPair", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10083, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10090, - "src": "639:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "639:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10085, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10090, - "src": "655:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "655:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "638:32:11" - }, - "returnParameters": { - "id": 10089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10088, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10090, - "src": "689:12:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "689:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "688:14:11" - }, - "scope": 10113, - "src": "619:84:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "f46901ed", - "id": 10095, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setFeeTo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10093, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10092, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10095, - "src": "727:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "727:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "726:9:11" - }, - "returnParameters": { - "id": 10094, - "nodeType": "ParameterList", - "parameters": [], - "src": "744:0:11" - }, - "scope": 10113, - "src": "709:36:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a2e74af6", - "id": 10100, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setFeeToSetter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10097, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10100, - "src": "774:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10096, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "774:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "773:9:11" - }, - "returnParameters": { - "id": 10099, - "nodeType": "ParameterList", - "parameters": [], - "src": "791:0:11" - }, - "scope": 10113, - "src": "750:42:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "4e91f811", - "id": 10105, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setProtocolFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10103, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10102, - "mutability": "mutable", - "name": "_protocolFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10105, - "src": "821:18:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10101, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "821:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "820:20:11" - }, - "returnParameters": { - "id": 10104, - "nodeType": "ParameterList", - "parameters": [], - "src": "849:0:11" - }, - "scope": 10113, - "src": "797:53:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "9e68ceb8", - "id": 10112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10107, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10112, - "src": "875:12:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "875:7:11", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10109, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10112, - "src": "889:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10108, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "889:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "874:30:11" - }, - "returnParameters": { - "id": 10111, - "nodeType": "ParameterList", - "parameters": [], - "src": "913:0:11" - }, - "scope": 10113, - "src": "855:59:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 10114, - "src": "26:890:11" - } - ], - "src": "0:916:11" - } - }, - "contracts/interfaces/IDXswapPair.sol": { - "id": 12, - "AST": { - "absolutePath": "contracts/interfaces/IDXswapPair.sol", - "exportedSymbols": { - "IDXswapPair": [ - 10365 - ] - }, - "id": 10366, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10115, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:12" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10365, - "linearizedBaseContracts": [ - 10365 - ], - "name": "IDXswapPair", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 10123, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 10122, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10117, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10123, - "src": "69:21:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10116, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "69:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10119, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10123, - "src": "92:23:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10118, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "92:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10121, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10123, - "src": "117:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10120, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "117:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "68:60:12" - }, - "src": "54:75:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 10131, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 10130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10125, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10131, - "src": "149:20:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "149:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10127, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10131, - "src": "171:18:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "171:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10129, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10131, - "src": "191:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10128, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "191:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "148:54:12" - }, - "src": "134:69:12" - }, - { - "body": null, - "documentation": null, - "functionSelector": "06fdde03", - "id": 10136, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10132, - "nodeType": "ParameterList", - "parameters": [], - "src": "222:2:12" - }, - "returnParameters": { - "id": 10135, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10134, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10136, - "src": "248:13:12", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 10133, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "248:6:12", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "247:15:12" - }, - "scope": 10365, - "src": "209:54:12", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "95d89b41", - "id": 10141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10137, - "nodeType": "ParameterList", - "parameters": [], - "src": "283:2:12" - }, - "returnParameters": { - "id": 10140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10139, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10141, - "src": "309:13:12", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 10138, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "309:6:12", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "308:15:12" - }, - "scope": 10365, - "src": "268:56:12", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "313ce567", - "id": 10146, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10142, - "nodeType": "ParameterList", - "parameters": [], - "src": "346:2:12" - }, - "returnParameters": { - "id": 10145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10144, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10146, - "src": "372:5:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10143, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "372:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "371:7:12" - }, - "scope": 10365, - "src": "329:50:12", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "18160ddd", - "id": 10151, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10147, - "nodeType": "ParameterList", - "parameters": [], - "src": "404:2:12" - }, - "returnParameters": { - "id": 10150, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10149, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10151, - "src": "430:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10148, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "430:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "429:6:12" - }, - "scope": 10365, - "src": "384:52:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "70a08231", - "id": 10158, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10153, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10158, - "src": "460:13:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10152, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "460:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "459:15:12" - }, - "returnParameters": { - "id": 10157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10156, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10158, - "src": "498:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10155, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "498:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "497:6:12" - }, - "scope": 10365, - "src": "441:63:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "dd62ed3e", - "id": 10167, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10160, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10167, - "src": "528:13:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10159, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "528:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10162, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10167, - "src": "543:15:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10161, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "543:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "527:32:12" - }, - "returnParameters": { - "id": 10166, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10165, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10167, - "src": "583:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10164, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "583:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "582:6:12" - }, - "scope": 10365, - "src": "509:80:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 10176, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10169, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10176, - "src": "612:15:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "612:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10171, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10176, - "src": "629:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10170, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "629:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "611:29:12" - }, - "returnParameters": { - "id": 10175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10174, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10176, - "src": "659:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10173, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "659:4:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "658:6:12" - }, - "scope": 10365, - "src": "595:70:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 10185, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10181, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10178, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10185, - "src": "688:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10177, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "688:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10180, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10185, - "src": "700:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10179, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "700:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "687:24:12" - }, - "returnParameters": { - "id": 10184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10183, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10185, - "src": "730:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10182, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "730:4:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "729:6:12" - }, - "scope": 10365, - "src": "670:66:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "23b872dd", - "id": 10196, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10187, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10196, - "src": "763:12:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10186, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "763:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10189, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10196, - "src": "777:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10188, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "777:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10191, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10196, - "src": "789:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10190, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "789:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "762:38:12" - }, - "returnParameters": { - "id": 10195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10194, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10196, - "src": "819:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10193, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "819:4:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "818:6:12" - }, - "scope": 10365, - "src": "741:84:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "3644e515", - "id": 10201, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "DOMAIN_SEPARATOR", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10197, - "nodeType": "ParameterList", - "parameters": [], - "src": "856:2:12" - }, - "returnParameters": { - "id": 10200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10199, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10201, - "src": "882:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10198, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "882:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "881:9:12" - }, - "scope": 10365, - "src": "831:60:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "30adf81f", - "id": 10206, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "PERMIT_TYPEHASH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10202, - "nodeType": "ParameterList", - "parameters": [], - "src": "920:2:12" - }, - "returnParameters": { - "id": 10205, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10204, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10206, - "src": "946:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10203, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "946:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "945:9:12" - }, - "scope": 10365, - "src": "896:59:12", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7ecebe00", - "id": 10213, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "nonces", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10208, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10213, - "src": "976:13:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10207, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "976:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "975:15:12" - }, - "returnParameters": { - "id": 10212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10211, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10213, - "src": "1014:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10210, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1014:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1013:6:12" - }, - "scope": 10365, - "src": "960:60:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d505accf", - "id": 10230, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "permit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10215, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10230, - "src": "1042:13:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1042:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10217, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10230, - "src": "1057:15:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1057:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10219, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10230, - "src": "1074:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10218, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1074:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10221, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10230, - "src": "1086:13:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10220, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1086:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10223, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10230, - "src": "1101:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10222, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1101:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10225, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10230, - "src": "1110:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10224, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1110:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10227, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10230, - "src": "1121:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10226, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1121:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1041:90:12" - }, - "returnParameters": { - "id": 10229, - "nodeType": "ParameterList", - "parameters": [], - "src": "1140:0:12" - }, - "scope": 10365, - "src": "1026:115:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "anonymous": false, - "documentation": null, - "id": 10238, - "name": "Mint", - "nodeType": "EventDefinition", - "parameters": { - "id": 10237, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10232, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10238, - "src": "1158:22:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10231, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1158:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10234, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10238, - "src": "1182:12:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10233, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1182:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10236, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10238, - "src": "1196:12:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10235, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1196:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1157:52:12" - }, - "src": "1147:63:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 10248, - "name": "Burn", - "nodeType": "EventDefinition", - "parameters": { - "id": 10247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10240, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10248, - "src": "1226:22:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10239, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1226:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10242, - "indexed": false, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10248, - "src": "1250:12:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10241, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1250:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10244, - "indexed": false, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10248, - "src": "1264:12:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10243, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1264:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10246, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10248, - "src": "1278:18:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1278:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1225:72:12" - }, - "src": "1215:83:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 10262, - "name": "Swap", - "nodeType": "EventDefinition", - "parameters": { - "id": 10261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10250, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10262, - "src": "1323:22:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1323:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10252, - "indexed": false, - "mutability": "mutable", - "name": "amount0In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10262, - "src": "1355:14:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10251, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1355:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10254, - "indexed": false, - "mutability": "mutable", - "name": "amount1In", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10262, - "src": "1379:14:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10253, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10256, - "indexed": false, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10262, - "src": "1403:15:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10255, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1403:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10258, - "indexed": false, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10262, - "src": "1428:15:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10257, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1428:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10260, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10262, - "src": "1453:18:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10259, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1313:164:12" - }, - "src": "1303:175:12" - }, - { - "anonymous": false, - "documentation": null, - "id": 10268, - "name": "Sync", - "nodeType": "EventDefinition", - "parameters": { - "id": 10267, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10264, - "indexed": false, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10268, - "src": "1494:16:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 10263, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1494:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10266, - "indexed": false, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10268, - "src": "1512:16:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 10265, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1512:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1493:36:12" - }, - "src": "1483:47:12" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ba9a7a56", - "id": 10273, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "MINIMUM_LIQUIDITY", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10269, - "nodeType": "ParameterList", - "parameters": [], - "src": "1562:2:12" - }, - "returnParameters": { - "id": 10272, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10271, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10273, - "src": "1588:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10270, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1588:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1587:6:12" - }, - "scope": 10365, - "src": "1536:58:12", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "c45a0155", - "id": 10278, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "factory", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10274, - "nodeType": "ParameterList", - "parameters": [], - "src": "1615:2:12" - }, - "returnParameters": { - "id": 10277, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10276, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10278, - "src": "1641:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10275, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1641:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1640:9:12" - }, - "scope": 10365, - "src": "1599:51:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0dfe1681", - "id": 10283, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token0", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10279, - "nodeType": "ParameterList", - "parameters": [], - "src": "1670:2:12" - }, - "returnParameters": { - "id": 10282, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10281, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10283, - "src": "1696:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1696:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1695:9:12" - }, - "scope": 10365, - "src": "1655:50:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d21220a7", - "id": 10288, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "token1", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10284, - "nodeType": "ParameterList", - "parameters": [], - "src": "1725:2:12" - }, - "returnParameters": { - "id": 10287, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10286, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10288, - "src": "1751:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10285, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1751:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1750:9:12" - }, - "scope": 10365, - "src": "1710:50:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "0902f1ac", - "id": 10297, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10289, - "nodeType": "ParameterList", - "parameters": [], - "src": "1785:2:12" - }, - "returnParameters": { - "id": 10296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10291, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10297, - "src": "1811:16:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 10290, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1811:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10293, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10297, - "src": "1829:16:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 10292, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1829:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10295, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10297, - "src": "1847:25:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10294, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1847:6:12", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1810:63:12" - }, - "scope": 10365, - "src": "1765:109:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5909c0d5", - "id": 10302, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price0CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10298, - "nodeType": "ParameterList", - "parameters": [], - "src": "1908:2:12" - }, - "returnParameters": { - "id": 10301, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10300, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10302, - "src": "1934:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10299, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1934:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1933:6:12" - }, - "scope": 10365, - "src": "1879:61:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5a3d5493", - "id": 10307, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price1CumulativeLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10303, - "nodeType": "ParameterList", - "parameters": [], - "src": "1974:2:12" - }, - "returnParameters": { - "id": 10306, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10305, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10307, - "src": "2000:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10304, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2000:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1999:6:12" - }, - "scope": 10365, - "src": "1945:61:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7464fc3d", - "id": 10312, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "kLast", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10308, - "nodeType": "ParameterList", - "parameters": [], - "src": "2025:2:12" - }, - "returnParameters": { - "id": 10311, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10310, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10312, - "src": "2051:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10309, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2051:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2050:6:12" - }, - "scope": 10365, - "src": "2011:46:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "54cf2aeb", - "id": 10317, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10313, - "nodeType": "ParameterList", - "parameters": [], - "src": "2078:2:12" - }, - "returnParameters": { - "id": 10316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10315, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10317, - "src": "2104:6:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10314, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2104:6:12", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2103:8:12" - }, - "scope": 10365, - "src": "2062:50:12", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "6a627842", - "id": 10324, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10320, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10319, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10324, - "src": "2132:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2132:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2131:12:12" - }, - "returnParameters": { - "id": 10323, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10322, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10324, - "src": "2162:14:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10321, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2162:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2161:16:12" - }, - "scope": 10365, - "src": "2118:60:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "89afcb44", - "id": 10333, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10327, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10326, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10333, - "src": "2197:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10325, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2197:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2196:12:12" - }, - "returnParameters": { - "id": 10332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10329, - "mutability": "mutable", - "name": "amount0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10333, - "src": "2227:12:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10328, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2227:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10331, - "mutability": "mutable", - "name": "amount1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10333, - "src": "2241:12:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10330, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2241:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2226:28:12" - }, - "scope": 10365, - "src": "2183:72:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "022c0d9f", - "id": 10344, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swap", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10335, - "mutability": "mutable", - "name": "amount0Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10344, - "src": "2274:15:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10334, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2274:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10337, - "mutability": "mutable", - "name": "amount1Out", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10344, - "src": "2291:15:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2291:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10339, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10344, - "src": "2308:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2308:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10341, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10344, - "src": "2320:19:12", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10340, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2320:5:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2273:67:12" - }, - "returnParameters": { - "id": 10343, - "nodeType": "ParameterList", - "parameters": [], - "src": "2349:0:12" - }, - "scope": 10365, - "src": "2260:90:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "bc25cf77", - "id": 10349, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "skim", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10346, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10349, - "src": "2369:10:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10345, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2369:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2368:12:12" - }, - "returnParameters": { - "id": 10348, - "nodeType": "ParameterList", - "parameters": [], - "src": "2389:0:12" - }, - "scope": 10365, - "src": "2355:35:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "fff6cae9", - "id": 10352, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "sync", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10350, - "nodeType": "ParameterList", - "parameters": [], - "src": "2408:2:12" - }, - "returnParameters": { - "id": 10351, - "nodeType": "ParameterList", - "parameters": [], - "src": "2419:0:12" - }, - "scope": 10365, - "src": "2395:25:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "485cc955", - "id": 10359, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "initialize", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10354, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10359, - "src": "2446:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10353, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10356, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10359, - "src": "2455:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10355, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2455:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2445:18:12" - }, - "returnParameters": { - "id": 10358, - "nodeType": "ParameterList", - "parameters": [], - "src": "2472:0:12" - }, - "scope": 10365, - "src": "2426:47:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d6d788c3", - "id": 10364, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10362, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10361, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10364, - "src": "2498:6:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10360, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2498:6:12", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2497:8:12" - }, - "returnParameters": { - "id": 10363, - "nodeType": "ParameterList", - "parameters": [], - "src": "2514:0:12" - }, - "scope": 10365, - "src": "2478:37:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 10366, - "src": "26:2491:12" - } - ], - "src": "0:2517:12" - } - }, - "contracts/interfaces/IDXswapRouter.sol": { - "id": 13, - "AST": { - "absolutePath": "contracts/interfaces/IDXswapRouter.sol", - "exportedSymbols": { - "IDXswapRouter": [ - 10759 - ] - }, - "id": 10760, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10367, - "literals": [ - "solidity", - ">=", - "0.6", - ".2" - ], - "nodeType": "PragmaDirective", - "src": "0:24:13" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10759, - "linearizedBaseContracts": [ - 10759 - ], - "name": "IDXswapRouter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "functionSelector": "c45a0155", - "id": 10372, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "factory", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10368, - "nodeType": "ParameterList", - "parameters": [], - "src": "73:2:13" - }, - "returnParameters": { - "id": 10371, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10370, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10372, - "src": "99:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10369, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "99:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "98:9:13" - }, - "scope": 10759, - "src": "57:51:13", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ad5c4648", - "id": 10377, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "WETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10373, - "nodeType": "ParameterList", - "parameters": [], - "src": "126:2:13" - }, - "returnParameters": { - "id": 10376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10375, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10377, - "src": "152:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "152:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "151:9:13" - }, - "scope": 10759, - "src": "113:48:13", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "e8e33700", - "id": 10402, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "addLiquidity", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10379, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "198:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10378, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "198:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10381, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "222:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "222:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10383, - "mutability": "mutable", - "name": "amountADesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "246:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10382, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "246:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10385, - "mutability": "mutable", - "name": "amountBDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "275:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10384, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "275:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10387, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "304:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10386, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "304:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10389, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "329:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10388, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "329:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10391, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "354:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10390, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "354:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10393, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "374:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10392, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "374:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "188:205:13" - }, - "returnParameters": { - "id": 10401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10396, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "412:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10395, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "412:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10398, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "426:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "426:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10400, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10402, - "src": "440:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10399, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "440:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "411:44:13" - }, - "scope": 10759, - "src": "167:289:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "f305d719", - "id": 10423, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "addLiquidityETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10404, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10423, - "src": "495:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "495:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10406, - "mutability": "mutable", - "name": "amountTokenDesired", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10423, - "src": "518:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10405, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "518:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10408, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10423, - "src": "551:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10407, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "551:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10410, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10423, - "src": "580:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10409, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "580:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10412, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10423, - "src": "607:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "607:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10414, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10423, - "src": "627:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10413, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "627:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "485:161:13" - }, - "returnParameters": { - "id": 10422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10417, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10423, - "src": "673:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10416, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "673:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10419, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10423, - "src": "691:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "691:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10421, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10423, - "src": "707:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "707:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "672:50:13" - }, - "scope": 10759, - "src": "461:262:13", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "baa2abde", - "id": 10444, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidity", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10425, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10444, - "src": "762:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10424, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "762:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10427, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10444, - "src": "786:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10426, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "786:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10429, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10444, - "src": "810:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10428, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "810:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10431, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10444, - "src": "834:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10430, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "834:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10433, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10444, - "src": "859:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10432, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "859:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10435, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10444, - "src": "884:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10434, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "884:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10437, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10444, - "src": "904:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10436, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "752:171:13" - }, - "returnParameters": { - "id": 10443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10440, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10444, - "src": "942:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10439, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "942:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10442, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10444, - "src": "956:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10441, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "956:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "941:28:13" - }, - "scope": 10759, - "src": "728:242:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "02751cec", - "id": 10463, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10457, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10446, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10463, - "src": "1012:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10445, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1012:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10448, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10463, - "src": "1035:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10447, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1035:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10450, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10463, - "src": "1059:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10449, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1059:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10452, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10463, - "src": "1088:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10451, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1088:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10454, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10463, - "src": "1115:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10453, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1115:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10456, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10463, - "src": "1135:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10455, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1135:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1002:152:13" - }, - "returnParameters": { - "id": 10462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10459, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10463, - "src": "1173:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10458, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1173:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10461, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10463, - "src": "1191:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10460, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1191:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1172:34:13" - }, - "scope": 10759, - "src": "975:232:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "2195995c", - "id": 10492, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityWithPermit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10486, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10465, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1256:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10464, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1256:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10467, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1280:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10466, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1280:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10469, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1304:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10468, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1304:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10471, - "mutability": "mutable", - "name": "amountAMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1328:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10470, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1328:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10473, - "mutability": "mutable", - "name": "amountBMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1353:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10472, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1353:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10475, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1378:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10474, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1378:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10477, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1398:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10476, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1398:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10479, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1421:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10478, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1421:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10481, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1438:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10480, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1438:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10483, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1447:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10482, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1447:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10485, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1458:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10484, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1458:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1246:227:13" - }, - "returnParameters": { - "id": 10491, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10488, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1492:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10487, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1492:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10490, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10492, - "src": "1506:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10489, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1506:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1491:28:13" - }, - "scope": 10759, - "src": "1212:308:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ded9382a", - "id": 10519, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHWithPermit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10494, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1572:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1572:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10496, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1595:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1595:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10498, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1619:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10497, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1619:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10500, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1648:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10499, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10502, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1675:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10501, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1675:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10504, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1695:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10503, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1695:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10506, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1718:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10505, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1718:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10508, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1735:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10507, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1735:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10510, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1744:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10509, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1744:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10512, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1755:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10511, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1755:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1562:208:13" - }, - "returnParameters": { - "id": 10518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10515, - "mutability": "mutable", - "name": "amountToken", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1789:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1789:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10517, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10519, - "src": "1807:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10516, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1807:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1788:34:13" - }, - "scope": 10759, - "src": "1525:298:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "38ed1739", - "id": 10536, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10531, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10521, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10536, - "src": "1871:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10520, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1871:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10523, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10536, - "src": "1894:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10522, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1894:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10526, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10536, - "src": "1921:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10524, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1921:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10525, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1921:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10528, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10536, - "src": "1954:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1954:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10530, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10536, - "src": "1974:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10529, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1974:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1861:132:13" - }, - "returnParameters": { - "id": 10535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10534, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10536, - "src": "2012:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 10532, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2012:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10533, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2012:6:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2011:23:13" - }, - "scope": 10759, - "src": "1828:207:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "8803dbee", - "id": 10553, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapTokensForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10548, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10538, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10553, - "src": "2083:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10537, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2083:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10540, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10553, - "src": "2107:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10539, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2107:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10543, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10553, - "src": "2133:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2133:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10542, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2133:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10545, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10553, - "src": "2166:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2166:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10547, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10553, - "src": "2186:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10546, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2186:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2073:132:13" - }, - "returnParameters": { - "id": 10552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10551, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10553, - "src": "2224:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 10549, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2224:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10550, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2224:6:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2223:23:13" - }, - "scope": 10759, - "src": "2040:207:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "7ff36ab5", - "id": 10568, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactETHForTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10555, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10568, - "src": "2283:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10554, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2283:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10558, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10568, - "src": "2302:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10556, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2302:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10557, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2302:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10560, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10568, - "src": "2327:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10559, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2327:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10562, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10568, - "src": "2339:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10561, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2339:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2282:71:13" - }, - "returnParameters": { - "id": 10567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10566, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10568, - "src": "2404:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 10564, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2404:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10565, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2404:6:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2403:23:13" - }, - "scope": 10759, - "src": "2252:175:13", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "4a25d94a", - "id": 10585, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapTokensForExactETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10580, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10570, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10585, - "src": "2463:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10569, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2463:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10572, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10585, - "src": "2479:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10571, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2479:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10575, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10585, - "src": "2497:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2497:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10574, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2497:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10577, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10585, - "src": "2522:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10576, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2522:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10579, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10585, - "src": "2534:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10578, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2534:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2462:86:13" - }, - "returnParameters": { - "id": 10584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10583, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10585, - "src": "2583:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 10581, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2583:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10582, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2583:6:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2582:23:13" - }, - "scope": 10759, - "src": "2432:174:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "18cbafe5", - "id": 10602, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10587, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10602, - "src": "2642:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10586, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2642:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10589, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10602, - "src": "2657:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10588, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2657:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10592, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10602, - "src": "2676:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2676:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10591, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2676:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10594, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10602, - "src": "2701:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2701:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10596, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10602, - "src": "2713:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10595, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2713:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2641:86:13" - }, - "returnParameters": { - "id": 10601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10600, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10602, - "src": "2762:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 10598, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2762:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10599, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2762:6:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2761:23:13" - }, - "scope": 10759, - "src": "2611:174:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "fb3bdb41", - "id": 10617, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapETHForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10604, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10617, - "src": "2821:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2821:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10607, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10617, - "src": "2837:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10605, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2837:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10606, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2837:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10609, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10617, - "src": "2862:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2862:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10611, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10617, - "src": "2874:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10610, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2874:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2820:68:13" - }, - "returnParameters": { - "id": 10616, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10615, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10617, - "src": "2939:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 10613, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2939:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10614, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2939:6:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2938:23:13" - }, - "scope": 10759, - "src": "2790:172:13", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "ad615dec", - "id": 10628, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "quote", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10619, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10628, - "src": "2983:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10618, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2983:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10621, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10628, - "src": "2997:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10620, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2997:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10623, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10628, - "src": "3012:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10622, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3012:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2982:44:13" - }, - "returnParameters": { - "id": 10627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10626, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10628, - "src": "3050:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10625, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3050:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3049:14:13" - }, - "scope": 10759, - "src": "2968:96:13", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "52707d8c", - "id": 10641, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAmountOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10637, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10630, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10641, - "src": "3091:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10629, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3091:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10632, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10641, - "src": "3106:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10631, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3106:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10634, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10641, - "src": "3122:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10633, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3122:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10636, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10641, - "src": "3139:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10635, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3139:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3090:62:13" - }, - "returnParameters": { - "id": 10640, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10639, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10641, - "src": "3176:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10638, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3176:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3175:16:13" - }, - "scope": 10759, - "src": "3069:123:13", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "571fd012", - "id": 10654, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAmountIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10650, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10643, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10654, - "src": "3218:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10642, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3218:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10645, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10654, - "src": "3234:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10644, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3234:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10647, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10654, - "src": "3250:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10646, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3250:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10649, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10654, - "src": "3267:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10648, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3267:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3217:63:13" - }, - "returnParameters": { - "id": 10653, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10652, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10654, - "src": "3304:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10651, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3304:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3303:15:13" - }, - "scope": 10759, - "src": "3197:122:13", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "d06ca61f", - "id": 10665, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAmountsOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10656, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10665, - "src": "3347:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10655, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3347:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10659, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10665, - "src": "3362:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3362:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10658, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3362:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3346:40:13" - }, - "returnParameters": { - "id": 10664, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10663, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10665, - "src": "3410:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 10661, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3410:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10662, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3410:6:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3409:23:13" - }, - "scope": 10759, - "src": "3324:109:13", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "1f00ca74", - "id": 10676, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAmountsIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10667, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10676, - "src": "3460:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3460:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10670, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10676, - "src": "3476:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10668, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3476:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10669, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3476:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3459:41:13" - }, - "returnParameters": { - "id": 10675, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10674, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10676, - "src": "3524:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 10672, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3524:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10673, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3524:6:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3523:23:13" - }, - "scope": 10759, - "src": "3438:109:13", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "af2979eb", - "id": 10693, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10678, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10693, - "src": "3619:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10677, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3619:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10680, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10693, - "src": "3642:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10679, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3642:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10682, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10693, - "src": "3666:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10681, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3666:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10684, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10693, - "src": "3695:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10683, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3695:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10686, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10693, - "src": "3722:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3722:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10688, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10693, - "src": "3742:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10687, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3742:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3609:152:13" - }, - "returnParameters": { - "id": 10692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10691, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10693, - "src": "3780:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10690, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3780:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3779:16:13" - }, - "scope": 10759, - "src": "3553:243:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5b0d5984", - "id": 10718, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10714, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10695, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "3877:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3877:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10697, - "mutability": "mutable", - "name": "liquidity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "3900:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10696, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3900:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10699, - "mutability": "mutable", - "name": "amountTokenMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "3924:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10698, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3924:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10701, - "mutability": "mutable", - "name": "amountETHMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "3953:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10700, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3953:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10703, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "3980:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10702, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3980:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10705, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "4000:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10704, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4000:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10707, - "mutability": "mutable", - "name": "approveMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "4023:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10706, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4023:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10709, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "4040:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10708, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4040:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10711, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "4049:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10710, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4049:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10713, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "4060:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10712, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4060:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3867:208:13" - }, - "returnParameters": { - "id": 10717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10716, - "mutability": "mutable", - "name": "amountETH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10718, - "src": "4094:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10715, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4094:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4093:16:13" - }, - "scope": 10759, - "src": "3801:309:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "5c11d795", - "id": 10732, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10720, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10732, - "src": "4188:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10719, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4188:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10722, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10732, - "src": "4211:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10721, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4211:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10725, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10732, - "src": "4238:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10723, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4238:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10724, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4238:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10727, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10732, - "src": "4271:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4271:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10729, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10732, - "src": "4291:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10728, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4291:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4178:132:13" - }, - "returnParameters": { - "id": 10731, - "nodeType": "ParameterList", - "parameters": [], - "src": "4319:0:13" - }, - "scope": 10759, - "src": "4116:204:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "b6f9de95", - "id": 10744, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10742, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10734, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10744, - "src": "4394:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10733, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4394:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10737, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10744, - "src": "4421:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10735, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4421:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10736, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4421:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10739, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10744, - "src": "4454:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10738, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4454:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10741, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10744, - "src": "4474:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10740, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4474:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4384:109:13" - }, - "returnParameters": { - "id": 10743, - "nodeType": "ParameterList", - "parameters": [], - "src": "4510:0:13" - }, - "scope": 10759, - "src": "4325:186:13", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "791ac947", - "id": 10758, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10756, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10746, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10758, - "src": "4585:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10745, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4585:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10748, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10758, - "src": "4608:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10747, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4608:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10751, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10758, - "src": "4635:23:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 10749, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4635:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10750, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4635:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10753, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10758, - "src": "4668:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10752, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4668:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10755, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10758, - "src": "4688:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4688:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4575:132:13" - }, - "returnParameters": { - "id": 10757, - "nodeType": "ParameterList", - "parameters": [], - "src": "4716:0:13" - }, - "scope": 10759, - "src": "4516:201:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 10760, - "src": "27:4692:13" - } - ], - "src": "0:4720:13" - } - }, - "contracts/interfaces/IERC20.sol": { - "id": 14, - "AST": { - "absolutePath": "contracts/interfaces/IERC20.sol", - "exportedSymbols": { - "IERC20": [ - 10843 - ] - }, - "id": 10844, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10761, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:14" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10843, - "linearizedBaseContracts": [ - 10843 - ], - "name": "IERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 10769, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 10768, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10763, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10769, - "src": "64:21:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10762, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "64:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10765, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10769, - "src": "87:23:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10764, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "87:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10767, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10769, - "src": "112:10:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10766, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "112:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "63:60:14" - }, - "src": "49:75:14" - }, - { - "anonymous": false, - "documentation": null, - "id": 10777, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 10776, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10771, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10777, - "src": "144:20:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10770, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "144:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10773, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10777, - "src": "166:18:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10772, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "166:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10775, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10777, - "src": "186:10:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10774, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "186:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "143:54:14" - }, - "src": "129:69:14" - }, - { - "body": null, - "documentation": null, - "functionSelector": "06fdde03", - "id": 10782, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10778, - "nodeType": "ParameterList", - "parameters": [], - "src": "217:2:14" - }, - "returnParameters": { - "id": 10781, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10780, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10782, - "src": "243:13:14", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 10779, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "243:6:14", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "242:15:14" - }, - "scope": 10843, - "src": "204:54:14", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "95d89b41", - "id": 10787, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10783, - "nodeType": "ParameterList", - "parameters": [], - "src": "278:2:14" - }, - "returnParameters": { - "id": 10786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10785, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10787, - "src": "304:13:14", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 10784, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "304:6:14", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "303:15:14" - }, - "scope": 10843, - "src": "263:56:14", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "313ce567", - "id": 10792, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10788, - "nodeType": "ParameterList", - "parameters": [], - "src": "341:2:14" - }, - "returnParameters": { - "id": 10791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10790, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10792, - "src": "367:5:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10789, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "367:5:14", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "366:7:14" - }, - "scope": 10843, - "src": "324:50:14", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "18160ddd", - "id": 10797, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10793, - "nodeType": "ParameterList", - "parameters": [], - "src": "399:2:14" - }, - "returnParameters": { - "id": 10796, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10795, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10797, - "src": "425:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10794, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "425:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "424:6:14" - }, - "scope": 10843, - "src": "379:52:14", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "70a08231", - "id": 10804, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10799, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10804, - "src": "455:13:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10798, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "455:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "454:15:14" - }, - "returnParameters": { - "id": 10803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10802, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10804, - "src": "493:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10801, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "493:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "492:6:14" - }, - "scope": 10843, - "src": "436:63:14", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "dd62ed3e", - "id": 10813, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10809, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10806, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10813, - "src": "523:13:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10805, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "523:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10808, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10813, - "src": "538:15:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10807, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "538:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:32:14" - }, - "returnParameters": { - "id": 10812, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10811, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10813, - "src": "578:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10810, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "578:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "577:6:14" - }, - "scope": 10843, - "src": "504:80:14", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 10822, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10815, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10822, - "src": "607:15:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10814, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "607:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10817, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10822, - "src": "624:10:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10816, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "624:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "606:29:14" - }, - "returnParameters": { - "id": 10821, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10820, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10822, - "src": "654:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10819, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "654:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:6:14" - }, - "scope": 10843, - "src": "590:70:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 10831, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10824, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10831, - "src": "683:10:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10823, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "683:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10826, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10831, - "src": "695:10:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10825, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "695:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "682:24:14" - }, - "returnParameters": { - "id": 10830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10829, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10831, - "src": "725:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10828, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "725:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "724:6:14" - }, - "scope": 10843, - "src": "665:66:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "23b872dd", - "id": 10842, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10833, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10842, - "src": "758:12:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10832, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "758:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10835, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10842, - "src": "772:10:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "772:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10837, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10842, - "src": "784:10:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10836, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "784:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "757:38:14" - }, - "returnParameters": { - "id": 10841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10840, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10842, - "src": "814:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10839, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "814:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "813:6:14" - }, - "scope": 10843, - "src": "736:84:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 10844, - "src": "26:796:14" - } - ], - "src": "0:823:14" - } - }, - "contracts/interfaces/IWETH.sol": { - "id": 15, - "AST": { - "absolutePath": "contracts/interfaces/IWETH.sol", - "exportedSymbols": { - "IWETH": [ - 10879 - ] - }, - "id": 10880, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10845, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:15" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10879, - "linearizedBaseContracts": [ - 10879 - ], - "name": "IWETH", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "functionSelector": "d0e30db0", - "id": 10848, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10846, - "nodeType": "ParameterList", - "parameters": [], - "src": "64:2:15" - }, - "returnParameters": { - "id": 10847, - "nodeType": "ParameterList", - "parameters": [], - "src": "83:0:15" - }, - "scope": 10879, - "src": "48:36:15", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 10857, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10850, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10857, - "src": "107:10:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "107:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10852, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10857, - "src": "119:10:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10851, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "119:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "106:24:15" - }, - "returnParameters": { - "id": 10856, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10855, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10857, - "src": "149:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10854, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "149:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "148:6:15" - }, - "scope": 10879, - "src": "89:66:15", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "2e1a7d4d", - "id": 10862, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10860, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10859, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10862, - "src": "178:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10858, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "178:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "177:6:15" - }, - "returnParameters": { - "id": 10861, - "nodeType": "ParameterList", - "parameters": [], - "src": "192:0:15" - }, - "scope": 10879, - "src": "160:33:15", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "70a08231", - "id": 10869, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10865, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10864, - "mutability": "mutable", - "name": "guy", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10869, - "src": "217:11:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10863, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "217:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "216:13:15" - }, - "returnParameters": { - "id": 10868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10867, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10869, - "src": "248:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10866, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "248:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "247:6:15" - }, - "scope": 10879, - "src": "198:56:15", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 10878, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10874, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10871, - "mutability": "mutable", - "name": "guy", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10878, - "src": "276:11:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10870, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "276:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10873, - "mutability": "mutable", - "name": "wad", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10878, - "src": "289:8:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10872, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "289:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "275:23:15" - }, - "returnParameters": { - "id": 10877, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10876, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10878, - "src": "317:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10875, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "317:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "316:6:15" - }, - "scope": 10879, - "src": "259:64:15", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 10880, - "src": "26:299:15" - } - ], - "src": "0:326:15" - } - }, - "contracts/libraries/AddressStringUtil.sol": { - "id": 16, - "AST": { - "absolutePath": "contracts/libraries/AddressStringUtil.sol", - "exportedSymbols": { - "AddressStringUtil": [ - 11022 - ] - }, - "id": 11023, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10881, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:16" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 11022, - "linearizedBaseContracts": [ - 11022 - ], - "name": "AddressStringUtil", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 10992, - "nodeType": "Block", - "src": "251:695:16", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 10903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 10899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10891, - "name": "len", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10885, - "src": "269:3:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 10892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "275:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "269:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10894, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "280:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "269:12:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10896, - "name": "len", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10885, - "src": "285:3:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "291:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "285:7:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "269:23:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10900, - "name": "len", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10885, - "src": "296:3:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3430", - "id": 10901, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "303:2:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - "value": "40" - }, - "src": "296:9:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "269:36:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "41646472657373537472696e675574696c3a20494e56414c49445f4c454e", - "id": 10904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "307:32:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eab9febfbdce9e67c4279e4c2a77a43766d401ab3f3bd92cdff53b9ffd3f8f3f", - "typeString": "literal_string \"AddressStringUtil: INVALID_LEN\"" - }, - "value": "AddressStringUtil: INVALID_LEN" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eab9febfbdce9e67c4279e4c2a77a43766d401ab3f3bd92cdff53b9ffd3f8f3f", - "typeString": "literal_string \"AddressStringUtil: INVALID_LEN\"" - } - ], - "id": 10890, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "261:7:16", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "261:79:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10906, - "nodeType": "ExpressionStatement", - "src": "261:79:16" - }, - { - "assignments": [ - 10908 - ], - "declarations": [ - { - "constant": false, - "id": 10908, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10992, - "src": "351:14:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10907, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "351:5:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10911, - "name": "len", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10885, - "src": "378:3:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10910, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "368:9:16", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 10909, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "372:5:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 10912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "368:14:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "351:31:16" - }, - { - "assignments": [ - 10915 - ], - "declarations": [ - { - "constant": false, - "id": 10915, - "mutability": "mutable", - "name": "addrNum", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10992, - "src": "392:12:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10914, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "392:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10920, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10918, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10883, - "src": "412:4:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "407:4:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 10916, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "407:4:16", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 10919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "407:10:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "392:25:16" - }, - { - "body": { - "id": 10985, - "nodeType": "Block", - "src": "462:452:16", - "statements": [ - { - "assignments": [ - 10934 - ], - "declarations": [ - { - "constant": false, - "id": 10934, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10985, - "src": "588:7:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10933, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "588:5:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10947, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10937, - "name": "addrNum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10915, - "src": "604:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 10938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "616:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3139", - "id": 10939, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "621:2:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_19_by_1", - "typeString": "int_const 19" - }, - "value": "19" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 10940, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10922, - "src": "626:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "621:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10942, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "620:8:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "616:12:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10944, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "615:14:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "604:25:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "598:5:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 10935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "598:5:16", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 10946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "598:32:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "588:42:16" - }, - { - "assignments": [ - 10949 - ], - "declarations": [ - { - "constant": false, - "id": 10949, - "mutability": "mutable", - "name": "hi", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10985, - "src": "710:8:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10948, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "710:5:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10953, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 10952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10950, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10934, - "src": "721:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 10951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "726:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "721:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "710:17:16" - }, - { - "assignments": [ - 10955 - ], - "declarations": [ - { - "constant": false, - "id": 10955, - "mutability": "mutable", - "name": "lo", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10985, - "src": "809:8:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10954, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "809:5:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10962, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 10961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10956, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10934, - "src": "820:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 10959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10957, - "name": "hi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10949, - "src": "825:2:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 10958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "831:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "825:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 10960, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "824:9:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "820:13:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "809:24:16" - }, - { - "expression": { - "argumentTypes": null, - "id": 10971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10963, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10908, - "src": "847:1:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 10967, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 10964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "849:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10965, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10922, - "src": "853:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "849:5:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "847:8:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10969, - "name": "hi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10949, - "src": "863:2:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 10968, - "name": "char", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11021, - "src": "858:4:16", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bytes1_$", - "typeString": "function (uint8) pure returns (bytes1)" - } - }, - "id": 10970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "858:8:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "847:19:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 10972, - "nodeType": "ExpressionStatement", - "src": "847:19:16" - }, - { - "expression": { - "argumentTypes": null, - "id": 10983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10973, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10908, - "src": "880:1:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 10979, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 10974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "882:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10975, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10922, - "src": "886:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "882:5:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 10977, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "890:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "882:9:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "880:12:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10981, - "name": "lo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10955, - "src": "900:2:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 10980, - "name": "char", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11021, - "src": "895:4:16", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bytes1_$", - "typeString": "function (uint8) pure returns (bytes1)" - } - }, - "id": 10982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "895:8:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "880:23:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 10984, - "nodeType": "ExpressionStatement", - "src": "880:23:16" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10925, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10922, - "src": "444:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10926, - "name": "len", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10885, - "src": "448:3:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 10927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "454:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "448:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "444:11:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 10986, - "initializationExpression": { - "assignments": [ - 10922 - ], - "declarations": [ - { - "constant": false, - "id": 10922, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10986, - "src": "432:6:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10921, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "432:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10924, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 10923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "441:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "432:10:16" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 10931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "457:3:16", - "subExpression": { - "argumentTypes": null, - "id": 10930, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10922, - "src": "457:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10932, - "nodeType": "ExpressionStatement", - "src": "457:3:16" - }, - "nodeType": "ForStatement", - "src": "427:487:16" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10989, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10908, - "src": "937:1:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 10988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "930:6:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 10987, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "930:6:16", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 10990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "930:9:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 10889, - "id": 10991, - "nodeType": "Return", - "src": "923:16:16" - } - ] - }, - "documentation": null, - "id": 10993, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toAsciiString", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10883, - "mutability": "mutable", - "name": "addr", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10993, - "src": "189:12:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10882, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "189:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10885, - "mutability": "mutable", - "name": "len", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10993, - "src": "203:8:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10884, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "203:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "188:24:16" - }, - "returnParameters": { - "id": 10889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10888, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 10993, - "src": "236:13:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 10887, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "236:6:16", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "235:15:16" - }, - "scope": 11022, - "src": "166:780:16", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11020, - "nodeType": "Block", - "src": "1201:126:16", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 11002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11000, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10995, - "src": "1215:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 11001, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1219:2:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "1215:6:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 11018, - "nodeType": "Block", - "src": "1275:46:16", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 11015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11013, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10995, - "src": "1301:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783337", - "id": 11014, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1305:4:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_55_by_1", - "typeString": "int_const 55" - }, - "value": "0x37" - }, - "src": "1301:8:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 11012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1296:4:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": { - "id": 11011, - "name": "byte", - "nodeType": "ElementaryTypeName", - "src": "1296:4:16", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1296:14:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "functionReturnParameters": 10999, - "id": 11017, - "nodeType": "Return", - "src": "1289:21:16" - } - ] - }, - "id": 11019, - "nodeType": "IfStatement", - "src": "1211:110:16", - "trueBody": { - "id": 11010, - "nodeType": "Block", - "src": "1223:46:16", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 11007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11005, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10995, - "src": "1249:1:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783330", - "id": 11006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1253:4:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - "value": "0x30" - }, - "src": "1249:8:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 11004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1244:4:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": { - "id": 11003, - "name": "byte", - "nodeType": "ElementaryTypeName", - "src": "1244:4:16", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1244:14:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "functionReturnParameters": 10999, - "id": 11009, - "nodeType": "Return", - "src": "1237:21:16" - } - ] - } - } - ] - }, - "documentation": null, - "id": 11021, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "char", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 10996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10995, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11021, - "src": "1162:7:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 10994, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1162:5:16", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1161:9:16" - }, - "returnParameters": { - "id": 10999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10998, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11021, - "src": "1193:6:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "typeName": { - "id": 10997, - "name": "byte", - "nodeType": "ElementaryTypeName", - "src": "1193:4:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1192:8:16" - }, - "scope": 11022, - "src": "1148:179:16", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 11023, - "src": "26:1303:16" - } - ], - "src": "0:1330:16" - } - }, - "contracts/libraries/Babylonian.sol": { - "id": 17, - "AST": { - "absolutePath": "contracts/libraries/Babylonian.sol", - "exportedSymbols": { - "Babylonian": [ - 11079 - ] - }, - "id": 11080, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11024, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:17" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 11079, - "linearizedBaseContracts": [ - 11079 - ], - "name": "Babylonian", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 11077, - "nodeType": "Block", - "src": "242:261:17", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11031, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11026, - "src": "256:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 11032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "260:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "256:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11067, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11026, - "src": "437:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "442:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "437:6:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 11075, - "nodeType": "IfStatement", - "src": "433:42:17", - "trueBody": { - "id": 11074, - "nodeType": "Block", - "src": "445:30:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11070, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11029, - "src": "459:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 11071, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "463:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "459:5:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11073, - "nodeType": "ExpressionStatement", - "src": "459:5:17" - } - ] - } - }, - "id": 11076, - "nodeType": "IfStatement", - "src": "252:223:17", - "trueBody": { - "id": 11066, - "nodeType": "Block", - "src": "263:164:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11034, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11029, - "src": "277:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 11035, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11026, - "src": "281:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "277:5:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11037, - "nodeType": "ExpressionStatement", - "src": "277:5:17" - }, - { - "assignments": [ - 11039 - ], - "declarations": [ - { - "constant": false, - "id": 11039, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11066, - "src": "296:6:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11038, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "296:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11045, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11040, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11026, - "src": "305:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 11041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "309:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "305:5:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "313:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "305:9:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "296:18:17" - }, - { - "body": { - "id": 11064, - "nodeType": "Block", - "src": "342:75:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11049, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11029, - "src": "360:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 11050, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11039, - "src": "364:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "360:5:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11052, - "nodeType": "ExpressionStatement", - "src": "360:5:17" - }, - { - "expression": { - "argumentTypes": null, - "id": 11062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11053, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11039, - "src": "383:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11054, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11026, - "src": "388:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11055, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11039, - "src": "392:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "388:5:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 11057, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11039, - "src": "396:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "388:9:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11059, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "387:11:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 11060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "401:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "387:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "383:19:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11063, - "nodeType": "ExpressionStatement", - "src": "383:19:17" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11046, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11039, - "src": "335:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 11047, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11029, - "src": "339:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "335:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 11065, - "nodeType": "WhileStatement", - "src": "328:89:17" - } - ] - } - } - ] - }, - "documentation": null, - "id": 11078, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sqrt", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11026, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11078, - "src": "203:6:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11025, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "203:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "202:8:17" - }, - "returnParameters": { - "id": 11030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11029, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11078, - "src": "234:6:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11028, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "234:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "233:8:17" - }, - "scope": 11079, - "src": "189:314:17", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 11080, - "src": "164:341:17" - } - ], - "src": "0:506:17" - } - }, - "contracts/libraries/DXswapLibrary.sol": { - "id": 18, - "AST": { - "absolutePath": "contracts/libraries/DXswapLibrary.sol", - "exportedSymbols": { - "DXswapLibrary": [ - 11620 - ] - }, - "id": 11621, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11081, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:18" - }, - { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "file": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "id": 11082, - "nodeType": "ImportDirective", - "scope": 11621, - "sourceUnit": 337, - "src": "26:58:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/SafeMath.sol", - "file": "./SafeMath.sol", - "id": 11083, - "nodeType": "ImportDirective", - "scope": 11621, - "sourceUnit": 12368, - "src": "86:24:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 11620, - "linearizedBaseContracts": [ - 11620 - ], - "name": "DXswapLibrary", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 11086, - "libraryName": { - "contractScope": null, - "id": 11084, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12367, - "src": "146:8:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$12367", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "140:24:18", - "typeName": { - "id": 11085, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "159:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "body": { - "id": 11129, - "nodeType": "Block", - "src": "377:232:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 11100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11098, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11088, - "src": "395:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 11099, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11090, - "src": "405:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "395:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a204944454e544943414c5f414444524553534553", - "id": 11101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "413:36:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4816d5fd2dd11399e2b4f8ea009915853e549a6eccad66902563b4c410b21cee", - "typeString": "literal_string \"DXswapLibrary: IDENTICAL_ADDRESSES\"" - }, - "value": "DXswapLibrary: IDENTICAL_ADDRESSES" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4816d5fd2dd11399e2b4f8ea009915853e549a6eccad66902563b4c410b21cee", - "typeString": "literal_string \"DXswapLibrary: IDENTICAL_ADDRESSES\"" - } - ], - "id": 11097, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "387:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "387:63:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11103, - "nodeType": "ExpressionStatement", - "src": "387:63:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11104, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11093, - "src": "461:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11105, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11095, - "src": "469:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 11106, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "460:16:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 11109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11107, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11088, - "src": "479:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 11108, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11090, - "src": "488:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "479:15:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11113, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11090, - "src": "517:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11114, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11088, - "src": "525:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 11115, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "516:16:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "id": 11116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "479:53:18", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11110, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11088, - "src": "498:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11111, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11090, - "src": "506:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 11112, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "497:16:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "src": "460:72:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11118, - "nodeType": "ExpressionStatement", - "src": "460:72:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 11125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11120, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11093, - "src": "550:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 11123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "568:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 11122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "560:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 11121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "560:7:18", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11124, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "560:10:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "550:20:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a205a45524f5f41444452455353", - "id": 11126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "572:29:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d784e2fb97350cb9cd89815b63f46058f3a01b758a15fe35bee497cab9f8262a", - "typeString": "literal_string \"DXswapLibrary: ZERO_ADDRESS\"" - }, - "value": "DXswapLibrary: ZERO_ADDRESS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d784e2fb97350cb9cd89815b63f46058f3a01b758a15fe35bee497cab9f8262a", - "typeString": "literal_string \"DXswapLibrary: ZERO_ADDRESS\"" - } - ], - "id": 11119, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "542:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "542:60:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11128, - "nodeType": "ExpressionStatement", - "src": "542:60:18" - } - ] - }, - "documentation": null, - "id": 11130, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sortTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11091, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11088, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11130, - "src": "290:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "290:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11090, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11130, - "src": "306:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11089, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "306:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "289:32:18" - }, - "returnParameters": { - "id": 11096, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11093, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11130, - "src": "345:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11092, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "345:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11095, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11130, - "src": "361:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11094, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "361:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "344:32:18" - }, - "scope": 11620, - "src": "270:339:18", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11174, - "nodeType": "Block", - "src": "801:347:18", - "statements": [ - { - "assignments": [ - 11142, - 11144 - ], - "declarations": [ - { - "constant": false, - "id": 11142, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11174, - "src": "812:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11141, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "812:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11144, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11174, - "src": "828:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11143, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "828:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11149, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11146, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11134, - "src": "857:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11147, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11136, - "src": "865:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11145, - "name": "sortTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11130, - "src": "846:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 11148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "846:26:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "811:61:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11150, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11139, - "src": "882:4:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "ff", - "id": 11158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "942:7:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)" - }, - "value": null - }, - { - "argumentTypes": null, - "id": 11159, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11132, - "src": "963:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11163, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11142, - "src": "1011:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11164, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11144, - "src": "1019:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 11161, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "994:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 11162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "994:16:18", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 11165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "994:32:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 11160, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "984:9:18", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 11166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "984:43:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "hexValue": "d306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776", - "id": 11167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1041:69:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a4999fc8faf24b4f89ea6230a8d374f8a84ec258cd79036b033288c7791cdbc0", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 2)" - }, - "value": null - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_stringliteral_a4999fc8faf24b4f89ea6230a8d374f8a84ec258cd79036b033288c7791cdbc0", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 2)" - } - ], - "expression": { - "argumentTypes": null, - "id": 11156, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "912:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 11157, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "912:16:18", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 11168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "912:226:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 11155, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "902:9:18", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 11169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "902:237:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 11154, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "897:4:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 11153, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "897:4:18", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "897:243:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "889:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 11151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "889:7:18", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "889:252:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "882:259:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 11173, - "nodeType": "ExpressionStatement", - "src": "882:259:18" - } - ] - }, - "documentation": null, - "id": 11175, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pairFor", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11132, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11175, - "src": "715:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11131, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "715:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11134, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11175, - "src": "732:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11133, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "732:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11136, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11175, - "src": "748:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "748:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "714:49:18" - }, - "returnParameters": { - "id": 11140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11139, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11175, - "src": "787:12:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "787:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "786:14:18" - }, - "scope": 11620, - "src": "698:450:18", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11224, - "nodeType": "Block", - "src": "1326:261:18", - "statements": [ - { - "assignments": [ - 11189, - null - ], - "declarations": [ - { - "constant": false, - "id": 11189, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11224, - "src": "1337:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11188, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1337:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 11194, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11191, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11179, - "src": "1367:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11192, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11181, - "src": "1375:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11190, - "name": "sortTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11130, - "src": "1356:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 11193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1356:26:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1336:46:18" - }, - { - "assignments": [ - 11196, - 11198, - null - ], - "declarations": [ - { - "constant": false, - "id": 11196, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11224, - "src": "1393:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11195, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1393:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11198, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11224, - "src": "1408:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11197, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1408:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 11208, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11201, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11177, - "src": "1446:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11202, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11179, - "src": "1455:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11203, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11181, - "src": "1463:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11200, - "name": "pairFor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11175, - "src": "1438:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 11204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1438:32:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11199, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "1426:11:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 11205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1426:45:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 11206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 268, - "src": "1426:57:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 11207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1426:59:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1392:93:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11209, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11184, - "src": "1496:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11210, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11186, - "src": "1506:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11211, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "1495:20:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 11214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11212, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11179, - "src": "1518:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 11213, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11189, - "src": "1528:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1518:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11218, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11198, - "src": "1561:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11219, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11196, - "src": "1571:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11220, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1560:20:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 11221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "1518:62:18", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11215, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11196, - "src": "1538:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11216, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11198, - "src": "1548:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11217, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1537:20:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "1495:85:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11223, - "nodeType": "ExpressionStatement", - "src": "1495:85:18" - } - ] - }, - "documentation": null, - "id": 11225, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11182, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11177, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11225, - "src": "1224:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1224:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11179, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11225, - "src": "1241:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1241:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11181, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11225, - "src": "1257:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11180, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1257:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1223:49:18" - }, - "returnParameters": { - "id": 11187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11184, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11225, - "src": "1296:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11183, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1296:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11186, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11225, - "src": "1311:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11185, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1311:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1295:30:18" - }, - "scope": 11620, - "src": "1203:384:18", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11255, - "nodeType": "Block", - "src": "1752:138:18", - "statements": [ - { - "assignments": [ - 11237, - null - ], - "declarations": [ - { - "constant": false, - "id": 11237, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11255, - "src": "1763:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1763:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 11242, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11239, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "1793:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11240, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11231, - "src": "1801:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11238, - "name": "sortTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11130, - "src": "1782:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", - "typeString": "function (address,address) pure returns (address,address)" - } - }, - "id": 11241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1782:26:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1762:46:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11243, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11234, - "src": "1818:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11246, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11227, - "src": "1848:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11247, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "1857:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 11248, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11231, - "src": "1865:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11245, - "name": "pairFor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11175, - "src": "1840:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$", - "typeString": "function (address,address,address) pure returns (address)" - } - }, - "id": 11249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1840:32:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11244, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "1828:11:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 11250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1828:45:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 11251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "1828:53:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 11252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1828:55:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1818:65:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11254, - "nodeType": "ExpressionStatement", - "src": "1818:65:18" - } - ] - }, - "documentation": null, - "id": 11256, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSwapFee", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11227, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11256, - "src": "1666:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11226, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1666:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11229, - "mutability": "mutable", - "name": "tokenA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11256, - "src": "1683:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11228, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1683:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11231, - "mutability": "mutable", - "name": "tokenB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11256, - "src": "1699:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11230, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1699:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1665:49:18" - }, - "returnParameters": { - "id": 11235, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11234, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11256, - "src": "1738:12:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11233, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1738:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1737:14:18" - }, - "scope": 11620, - "src": "1646:244:18", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11294, - "nodeType": "Block", - "src": "2096:215:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11268, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11258, - "src": "2114:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2124:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2114:11:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54", - "id": 11271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2127:36:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4941112be25498feed92ef929155d80bdb527ec03291b35c2fc0e6212a9bba6f", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_AMOUNT\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4941112be25498feed92ef929155d80bdb527ec03291b35c2fc0e6212a9bba6f", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_AMOUNT\"" - } - ], - "id": 11267, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2106:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2106:58:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11273, - "nodeType": "ExpressionStatement", - "src": "2106:58:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11275, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11260, - "src": "2182:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2193:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2182:12:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11278, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11262, - "src": "2198:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2209:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2198:12:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2182:28:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4c4951554944495459", - "id": 11282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2212:39:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_LIQUIDITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - } - ], - "id": 11274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2174:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2174:78:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11284, - "nodeType": "ExpressionStatement", - "src": "2174:78:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11285, - "name": "amountB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11265, - "src": "2262:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11288, - "name": "reserveB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11262, - "src": "2284:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11286, - "name": "amountA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11258, - "src": "2272:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "2272:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2272:21:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11290, - "name": "reserveA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11260, - "src": "2296:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2272:32:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2262:42:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11293, - "nodeType": "ExpressionStatement", - "src": "2262:42:18" - } - ] - }, - "documentation": null, - "id": 11295, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "quote", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11258, - "mutability": "mutable", - "name": "amountA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11295, - "src": "2015:12:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11257, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2015:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11260, - "mutability": "mutable", - "name": "reserveA", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11295, - "src": "2029:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11259, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2029:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11262, - "mutability": "mutable", - "name": "reserveB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11295, - "src": "2044:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11261, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2044:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2014:44:18" - }, - "returnParameters": { - "id": 11266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11265, - "mutability": "mutable", - "name": "amountB", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11295, - "src": "2082:12:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11264, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2082:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2081:14:18" - }, - "scope": 11620, - "src": "2000:311:18", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11362, - "nodeType": "Block", - "src": "2553:417:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11309, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11297, - "src": "2571:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11310, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2582:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2571:12:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54", - "id": 11312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2585:42:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e4d2630755a31998597b5d43cb14cc6edea9d11eeb5693d972c3265868799513", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e4d2630755a31998597b5d43cb14cc6edea9d11eeb5693d972c3265868799513", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT\"" - } - ], - "id": 11308, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2563:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2563:65:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11314, - "nodeType": "ExpressionStatement", - "src": "2563:65:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11316, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11299, - "src": "2646:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2658:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2646:13:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11319, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11301, - "src": "2663:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2676:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2663:14:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2646:31:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4c4951554944495459", - "id": 11323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2679:39:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_LIQUIDITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - } - ], - "id": 11315, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2638:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2638:81:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11325, - "nodeType": "ExpressionStatement", - "src": "2638:81:18" - }, - { - "assignments": [ - 11327 - ], - "declarations": [ - { - "constant": false, - "id": 11327, - "mutability": "mutable", - "name": "amountInWithFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11362, - "src": "2729:20:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11326, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2729:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11338, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11335, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11303, - "src": "2781:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 11332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2770:5:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "id": 11331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2765:4:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 11330, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2765:4:18", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2765:11:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "2765:15:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2765:24:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11328, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11297, - "src": "2752:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "2752:12:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2752:38:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2729:61:18" - }, - { - "assignments": [ - 11340 - ], - "declarations": [ - { - "constant": false, - "id": 11340, - "mutability": "mutable", - "name": "numerator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11362, - "src": "2800:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11339, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2800:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11345, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11343, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11301, - "src": "2837:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11341, - "name": "amountInWithFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11327, - "src": "2817:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "2817:19:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2817:31:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2800:48:18" - }, - { - "assignments": [ - 11347 - ], - "declarations": [ - { - "constant": false, - "id": 11347, - "mutability": "mutable", - "name": "denominator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11362, - "src": "2858:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11346, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2858:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11355, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11353, - "name": "amountInWithFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11327, - "src": "2902:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 11350, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2891:5:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "argumentTypes": null, - "id": 11348, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11299, - "src": "2877:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "2877:13:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2877:20:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "2877:24:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2877:41:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2858:60:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11356, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11306, - "src": "2928:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11357, - "name": "numerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11340, - "src": "2940:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11358, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11347, - "src": "2952:11:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2940:23:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2928:35:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11361, - "nodeType": "ExpressionStatement", - "src": "2928:35:18" - } - ] - }, - "documentation": null, - "id": 11363, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11304, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11297, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11363, - "src": "2452:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11296, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2452:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11299, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11363, - "src": "2467:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11298, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2467:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11301, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11363, - "src": "2483:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11300, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2483:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11303, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11363, - "src": "2500:12:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11302, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2500:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2451:62:18" - }, - "returnParameters": { - "id": 11307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11306, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11363, - "src": "2537:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11305, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2537:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2536:16:18" - }, - "scope": 11620, - "src": "2430:540:18", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11430, - "nodeType": "Block", - "src": "3210:374:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11377, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11365, - "src": "3228:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11378, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3240:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3228:13:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54", - "id": 11380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3243:43:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bbe08a1ec2cff36e527d20c027bf70b8607d4c605e172bec1980f6ea25085cc9", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bbe08a1ec2cff36e527d20c027bf70b8607d4c605e172bec1980f6ea25085cc9", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT\"" - } - ], - "id": 11376, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3220:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3220:67:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11382, - "nodeType": "ExpressionStatement", - "src": "3220:67:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11384, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11367, - "src": "3305:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3317:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3305:13:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11387, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11369, - "src": "3322:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3335:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3322:14:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3305:31:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e53554646494349454e545f4c4951554944495459", - "id": 11391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3338:39:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - }, - "value": "DXswapLibrary: INSUFFICIENT_LIQUIDITY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b3aefa7c22de40905cf675706538846c0a01254fde37337d24fe9e3339a93897", - "typeString": "literal_string \"DXswapLibrary: INSUFFICIENT_LIQUIDITY\"" - } - ], - "id": 11383, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3297:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3297:81:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11393, - "nodeType": "ExpressionStatement", - "src": "3297:81:18" - }, - { - "assignments": [ - 11395 - ], - "declarations": [ - { - "constant": false, - "id": 11395, - "mutability": "mutable", - "name": "numerator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11430, - "src": "3388:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11394, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3388:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11403, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 11401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3434:5:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11398, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11365, - "src": "3419:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11396, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11367, - "src": "3405:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "3405:13:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3405:24:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "3405:28:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3405:35:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3388:52:18" - }, - { - "assignments": [ - 11405 - ], - "declarations": [ - { - "constant": false, - "id": 11405, - "mutability": "mutable", - "name": "denominator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11430, - "src": "3450:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11404, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3450:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11419, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11416, - "name": "swapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11371, - "src": "3515:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 11413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3504:5:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "id": 11412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3499:4:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 11411, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3499:4:18", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3499:11:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "3499:15:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3499:24:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11408, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11365, - "src": "3484:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11406, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11369, - "src": "3469:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "3469:14:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3469:25:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 12366, - "src": "3469:29:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3469:55:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3450:74:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11420, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11374, - "src": "3534:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 11426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3575:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11421, - "name": "numerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11395, - "src": "3546:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11422, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11405, - "src": "3558:11:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3546:23:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11424, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3545:25:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "3545:29:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3545:32:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3534:43:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11429, - "nodeType": "ExpressionStatement", - "src": "3534:43:18" - } - ] - }, - "documentation": null, - "id": 11431, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11372, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11365, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11431, - "src": "3109:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11364, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3109:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11367, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11431, - "src": "3125:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11366, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3125:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11369, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11431, - "src": "3141:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11368, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3141:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11371, - "mutability": "mutable", - "name": "swapFee", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11431, - "src": "3158:12:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11370, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3158:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3108:63:18" - }, - "returnParameters": { - "id": 11375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11374, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11431, - "src": "3195:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11373, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3195:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3194:15:18" - }, - "scope": 11620, - "src": "3088:496:18", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11522, - "nodeType": "Block", - "src": "3787:419:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11445, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11438, - "src": "3805:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3805:11:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 11447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3820:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "3805:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e56414c49445f50415448", - "id": 11449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3823:29:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - }, - "value": "DXswapLibrary: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - } - ], - "id": 11444, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3797:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3797:56:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11451, - "nodeType": "ExpressionStatement", - "src": "3797:56:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11452, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11442, - "src": "3863:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11456, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11438, - "src": "3884:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3884:11:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3873:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 11453, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3877:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11454, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3877:6:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 11458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3873:23:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "3863:33:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 11460, - "nodeType": "ExpressionStatement", - "src": "3863:33:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11461, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11442, - "src": "3906:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 11463, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3914:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3906:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 11464, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11435, - "src": "3919:8:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3906:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11466, - "nodeType": "ExpressionStatement", - "src": "3906:21:18" - }, - { - "body": { - "id": 11520, - "nodeType": "Block", - "src": "3976:224:18", - "statements": [ - { - "assignments": [ - 11480, - 11482 - ], - "declarations": [ - { - "constant": false, - "id": 11480, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11520, - "src": "3991:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11479, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3991:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11482, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11520, - "src": "4007:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11481, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4007:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11494, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11484, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11433, - "src": "4038:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11485, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11438, - "src": "4047:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11487, - "indexExpression": { - "argumentTypes": null, - "id": 11486, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11468, - "src": "4052:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4047:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11488, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11438, - "src": "4056:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11492, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11489, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11468, - "src": "4061:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4065:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4061:5:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4056:11:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11483, - "name": "getReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11225, - "src": "4026:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256,uint256)" - } - }, - "id": 11493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4026:42:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3990:78:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11495, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11442, - "src": "4082:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 11499, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11496, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11468, - "src": "4090:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4094:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4090:5:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4082:14:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11501, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11442, - "src": "4112:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 11503, - "indexExpression": { - "argumentTypes": null, - "id": 11502, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11468, - "src": "4120:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4112:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11504, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11480, - "src": "4124:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11505, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11482, - "src": "4135:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11507, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11433, - "src": "4158:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11508, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11438, - "src": "4167:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11510, - "indexExpression": { - "argumentTypes": null, - "id": 11509, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11468, - "src": "4172:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4167:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11511, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11438, - "src": "4176:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11515, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11512, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11468, - "src": "4181:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4185:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4181:5:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4176:11:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11506, - "name": "getSwapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11256, - "src": "4147:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256)" - } - }, - "id": 11516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4147:41:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11500, - "name": "getAmountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11363, - "src": "4099:12:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 11517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4099:90:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4082:107:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11519, - "nodeType": "ExpressionStatement", - "src": "4082:107:18" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11470, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11468, - "src": "3950:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11471, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11438, - "src": "3954:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3954:11:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3968:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3954:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3950:19:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 11521, - "initializationExpression": { - "assignments": [ - 11468 - ], - "declarations": [ - { - "constant": false, - "id": 11468, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11521, - "src": "3942:6:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3942:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11469, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "3942:6:18" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 11477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3971:3:18", - "subExpression": { - "argumentTypes": null, - "id": 11476, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11468, - "src": "3971:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11478, - "nodeType": "ExpressionStatement", - "src": "3971:3:18" - }, - "nodeType": "ForStatement", - "src": "3937:263:18" - } - ] - }, - "documentation": null, - "id": 11523, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsOut", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11439, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11433, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11523, - "src": "3686:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11432, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3686:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11435, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11523, - "src": "3703:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11434, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3703:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11438, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11523, - "src": "3718:21:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 11436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3718:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 11437, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3718:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3685:55:18" - }, - "returnParameters": { - "id": 11443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11442, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11523, - "src": "3764:21:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 11440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3764:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11441, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3764:6:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3763:23:18" - }, - "scope": 11620, - "src": "3663:543:18", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11618, - "nodeType": "Block", - "src": "4408:440:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11537, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11530, - "src": "4426:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4426:11:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 11539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4441:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "4426:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4458737761704c6962726172793a20494e56414c49445f50415448", - "id": 11541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4444:29:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - }, - "value": "DXswapLibrary: INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f78e25cd87e7c04ef91dd3a97adfc41cd70d669b9caadf6aef696f34e440e3d2", - "typeString": "literal_string \"DXswapLibrary: INVALID_PATH\"" - } - ], - "id": 11536, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4418:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4418:56:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11543, - "nodeType": "ExpressionStatement", - "src": "4418:56:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11544, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11534, - "src": "4484:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11548, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11530, - "src": "4505:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4505:11:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4494:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 11545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4498:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11546, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4498:6:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 11550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4494:23:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "4484:33:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 11552, - "nodeType": "ExpressionStatement", - "src": "4484:33:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11553, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11534, - "src": "4527:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 11558, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11554, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11534, - "src": "4535:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 11555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4535:14:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4552:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4535:18:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4527:27:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 11559, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11527, - "src": "4557:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4527:39:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11561, - "nodeType": "ExpressionStatement", - "src": "4527:39:18" - }, - { - "body": { - "id": 11616, - "nodeType": "Block", - "src": "4619:223:18", - "statements": [ - { - "assignments": [ - 11576, - 11578 - ], - "declarations": [ - { - "constant": false, - "id": 11576, - "mutability": "mutable", - "name": "reserveIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11616, - "src": "4634:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4634:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11578, - "mutability": "mutable", - "name": "reserveOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11616, - "src": "4650:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11577, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4650:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11590, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11580, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11525, - "src": "4681:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11581, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11530, - "src": "4690:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11585, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11582, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11563, - "src": "4695:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4699:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4695:5:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4690:11:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11586, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11530, - "src": "4703:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11588, - "indexExpression": { - "argumentTypes": null, - "id": 11587, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11563, - "src": "4708:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4703:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11579, - "name": "getReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11225, - "src": "4669:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256,uint256)" - } - }, - "id": 11589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4669:42:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4633:78:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 11614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11591, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11534, - "src": "4725:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 11595, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11592, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11563, - "src": "4733:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4737:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4733:5:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4725:14:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11597, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11534, - "src": "4754:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 11599, - "indexExpression": { - "argumentTypes": null, - "id": 11598, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11563, - "src": "4762:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4754:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11600, - "name": "reserveIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11576, - "src": "4766:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11601, - "name": "reserveOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11578, - "src": "4777:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11603, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11525, - "src": "4800:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11604, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11530, - "src": "4809:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11608, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11605, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11563, - "src": "4814:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4818:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4814:5:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4809:11:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 11609, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11530, - "src": "4822:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11611, - "indexExpression": { - "argumentTypes": null, - "id": 11610, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11563, - "src": "4827:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4822:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11602, - "name": "getSwapFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11256, - "src": "4789:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address,address) view returns (uint256)" - } - }, - "id": 11612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4789:41:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11596, - "name": "getAmountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11431, - "src": "4742:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 11613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4742:89:18", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4725:106:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11615, - "nodeType": "ExpressionStatement", - "src": "4725:106:18" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11569, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11563, - "src": "4607:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11570, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4611:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4607:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 11617, - "initializationExpression": { - "assignments": [ - 11563 - ], - "declarations": [ - { - "constant": false, - "id": 11563, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11617, - "src": "4581:6:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11562, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4581:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11568, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11564, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11530, - "src": "4590:4:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 11565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4590:11:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4604:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4590:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4581:24:18" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 11573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "4614:3:18", - "subExpression": { - "argumentTypes": null, - "id": 11572, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11563, - "src": "4614:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11574, - "nodeType": "ExpressionStatement", - "src": "4614:3:18" - }, - "nodeType": "ForStatement", - "src": "4576:266:18" - } - ] - }, - "documentation": null, - "id": 11619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAmountsIn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11531, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11525, - "mutability": "mutable", - "name": "factory", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11619, - "src": "4306:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11524, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4306:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11527, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11619, - "src": "4323:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11526, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4323:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11530, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11619, - "src": "4339:21:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 11528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4339:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 11529, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4339:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4305:56:18" - }, - "returnParameters": { - "id": 11535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11534, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11619, - "src": "4385:21:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 11532, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4385:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11533, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4385:6:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4384:23:18" - }, - "scope": 11620, - "src": "4284:564:18", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 11621, - "src": "112:4738:18" - } - ], - "src": "0:4851:18" - } - }, - "contracts/libraries/DXswapOracleLibrary.sol": { - "id": 19, - "AST": { - "absolutePath": "contracts/libraries/DXswapOracleLibrary.sol", - "exportedSymbols": { - "DXswapOracleLibrary": [ - 11727 - ] - }, - "id": 11728, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11622, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:19" - }, - { - "absolutePath": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "file": "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "id": 11623, - "nodeType": "ImportDirective", - "scope": 11728, - "sourceUnit": 337, - "src": "26:58:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/FixedPoint.sol", - "file": "./FixedPoint.sol", - "id": 11624, - "nodeType": "ImportDirective", - "scope": 11728, - "sourceUnit": 11905, - "src": "86:26:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 11727, - "linearizedBaseContracts": [ - 11727 - ], - "name": "DXswapOracleLibrary", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 11626, - "libraryName": { - "contractScope": null, - "id": 11625, - "name": "FixedPoint", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11904, - "src": "246:10:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FixedPoint_$11904", - "typeString": "library FixedPoint" - } - }, - "nodeType": "UsingForDirective", - "src": "240:23:19", - "typeName": null - }, - { - "body": { - "id": 11641, - "nodeType": "Block", - "src": "445:57:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11633, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "469:5:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 11634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "469:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - }, - "id": 11637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 11635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "487:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3332", - "id": 11636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "492:2:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "487:7:19", - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967296_by_1", - "typeString": "int_const 4294967296" - } - }, - "src": "469:25:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "462:6:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 11631, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "462:6:19", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "462:33:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 11630, - "id": 11640, - "nodeType": "Return", - "src": "455:40:19" - } - ] - }, - "documentation": null, - "id": 11642, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentBlockTimestamp", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11627, - "nodeType": "ParameterList", - "parameters": [], - "src": "411:2:19" - }, - "returnParameters": { - "id": 11630, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11629, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11642, - "src": "437:6:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11628, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "437:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "436:8:19" - }, - "scope": 11727, - "src": "381:121:19", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11725, - "nodeType": "Block", - "src": "758:878:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11653, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11651, - "src": "768:14:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 11654, - "name": "currentBlockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11642, - "src": "785:21:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$", - "typeString": "function () view returns (uint32)" - } - }, - "id": 11655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "785:23:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "768:40:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 11657, - "nodeType": "ExpressionStatement", - "src": "768:40:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 11664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11658, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11647, - "src": "818:16:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11660, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11644, - "src": "849:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11659, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "837:11:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 11661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "837:17:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 11662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "price0CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 273, - "src": "837:38:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 11663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "837:40:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "818:59:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11665, - "nodeType": "ExpressionStatement", - "src": "818:59:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 11672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11666, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11649, - "src": "887:16:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11668, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11644, - "src": "918:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11667, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "906:11:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 11669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "906:17:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 11670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "price1CumulativeLast", - "nodeType": "MemberAccess", - "referencedDeclaration": 278, - "src": "906:38:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 11671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "906:40:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "887:59:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11673, - "nodeType": "ExpressionStatement", - "src": "887:59:19" - }, - { - "assignments": [ - 11675, - 11677, - 11679 - ], - "declarations": [ - { - "constant": false, - "id": 11675, - "mutability": "mutable", - "name": "reserve0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11725, - "src": "1058:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 11674, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1058:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11677, - "mutability": "mutable", - "name": "reserve1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11725, - "src": "1076:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 11676, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1076:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11679, - "mutability": "mutable", - "name": "blockTimestampLast", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11725, - "src": "1094:25:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11678, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1094:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11685, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11681, - "name": "pair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11644, - "src": "1135:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11680, - "name": "IDXswapPair", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "1123:11:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapPair_$336_$", - "typeString": "type(contract IDXswapPair)" - } - }, - "id": 11682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1123:17:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapPair_$336", - "typeString": "contract IDXswapPair" - } - }, - "id": 11683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getReserves", - "nodeType": "MemberAccess", - "referencedDeclaration": 268, - "src": "1123:29:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "function () view external returns (uint112,uint112,uint32)" - } - }, - "id": 11684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1123:31:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", - "typeString": "tuple(uint112,uint112,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1057:97:19" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 11688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11686, - "name": "blockTimestampLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11679, - "src": "1168:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 11687, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11651, - "src": "1190:14:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1168:36:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 11724, - "nodeType": "IfStatement", - "src": "1164:466:19", - "trueBody": { - "id": 11723, - "nodeType": "Block", - "src": "1206:424:19", - "statements": [ - { - "assignments": [ - 11690 - ], - "declarations": [ - { - "constant": false, - "id": 11690, - "mutability": "mutable", - "name": "timeElapsed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11723, - "src": "1267:18:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11689, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1267:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11694, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 11693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11691, - "name": "blockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11651, - "src": "1288:14:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 11692, - "name": "blockTimestampLast", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11679, - "src": "1305:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1288:35:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1267:56:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 11707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11695, - "name": "price0Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11647, - "src": "1411:16:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11700, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11677, - "src": "1456:8:19", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - { - "argumentTypes": null, - "id": 11701, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11675, - "src": "1466:8:19", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "expression": { - "argumentTypes": null, - "id": 11698, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11904, - "src": "1436:10:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$11904_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 11699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fraction", - "nodeType": "MemberAccess", - "referencedDeclaration": 11871, - "src": "1436:19:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint112_$_t_uint112_$returns$_t_struct$_uq112x112_$11732_memory_ptr_$", - "typeString": "function (uint112,uint112) pure returns (struct FixedPoint.uq112x112 memory)" - } - }, - "id": 11702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1436:39:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 11703, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 11731, - "src": "1436:42:19", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 11697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1431:4:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 11696, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1431:4:19", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1431:48:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11705, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11690, - "src": "1482:11:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1431:62:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1411:82:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11708, - "nodeType": "ExpressionStatement", - "src": "1411:82:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 11721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11709, - "name": "price1Cumulative", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11649, - "src": "1537:16:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11714, - "name": "reserve0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11675, - "src": "1582:8:19", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - { - "argumentTypes": null, - "id": 11715, - "name": "reserve1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11677, - "src": "1592:8:19", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "expression": { - "argumentTypes": null, - "id": 11712, - "name": "FixedPoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11904, - "src": "1562:10:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_FixedPoint_$11904_$", - "typeString": "type(library FixedPoint)" - } - }, - "id": 11713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fraction", - "nodeType": "MemberAccess", - "referencedDeclaration": 11871, - "src": "1562:19:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint112_$_t_uint112_$returns$_t_struct$_uq112x112_$11732_memory_ptr_$", - "typeString": "function (uint112,uint112) pure returns (struct FixedPoint.uq112x112 memory)" - } - }, - "id": 11716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1562:39:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 11717, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 11731, - "src": "1562:42:19", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 11711, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1557:4:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 11710, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1557:4:19", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1557:48:19", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11719, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11690, - "src": "1608:11:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1557:62:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1537:82:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11722, - "nodeType": "ExpressionStatement", - "src": "1537:82:19" - } - ] - } - } - ] - }, - "documentation": null, - "id": 11726, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentCumulativePrices", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11644, - "mutability": "mutable", - "name": "pair", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11726, - "src": "647:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11643, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "647:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "637:28:19" - }, - "returnParameters": { - "id": 11652, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11647, - "mutability": "mutable", - "name": "price0Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11726, - "src": "689:21:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11646, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "689:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11649, - "mutability": "mutable", - "name": "price1Cumulative", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11726, - "src": "712:21:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11648, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "712:4:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11651, - "mutability": "mutable", - "name": "blockTimestamp", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11726, - "src": "735:21:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11650, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "735:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "688:69:19" - }, - "scope": 11727, - "src": "605:1031:19", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 11728, - "src": "206:1432:19" - } - ], - "src": "0:1639:19" - } - }, - "contracts/libraries/FixedPoint.sol": { - "id": 20, - "AST": { - "absolutePath": "contracts/libraries/FixedPoint.sol", - "exportedSymbols": { - "FixedPoint": [ - 11904 - ] - }, - "id": 11905, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11729, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:20" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 11904, - "linearizedBaseContracts": [ - 11904 - ], - "name": "FixedPoint", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "FixedPoint.uq112x112", - "id": 11732, - "members": [ - { - "constant": false, - "id": 11731, - "mutability": "mutable", - "name": "_x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11732, - "src": "241:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "typeName": { - "id": 11730, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "241:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "uq112x112", - "nodeType": "StructDefinition", - "scope": 11904, - "src": "214:44:20", - "visibility": "public" - }, - { - "canonicalName": "FixedPoint.uq144x112", - "id": 11735, - "members": [ - { - "constant": false, - "id": 11734, - "mutability": "mutable", - "name": "_x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11735, - "src": "351:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11733, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "351:4:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "uq144x112", - "nodeType": "StructDefinition", - "scope": 11904, - "src": "324:41:20", - "visibility": "public" - }, - { - "constant": true, - "id": 11738, - "mutability": "constant", - "name": "RESOLUTION", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11904, - "src": "371:39:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 11736, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "371:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "313132", - "id": 11737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "407:3:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - "value": "112" - }, - "visibility": "private" - }, - { - "body": { - "id": 11754, - "nodeType": "Block", - "src": "524:59:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 11751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11748, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11740, - "src": "559:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "id": 11747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "551:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 11746, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "551:7:20", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "551:10:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 11750, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11738, - "src": "565:10:20", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "551:24:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 11745, - "name": "uq112x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11732, - "src": "541:9:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 11752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "541:35:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "functionReturnParameters": 11744, - "id": 11753, - "nodeType": "Return", - "src": "534:42:20" - } - ] - }, - "documentation": null, - "id": 11755, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "encode", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11741, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11740, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11755, - "src": "472:9:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 11739, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "472:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "471:11:20" - }, - "returnParameters": { - "id": 11744, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11743, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11755, - "src": "506:16:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 11742, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "506:9:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "505:18:20" - }, - "scope": 11904, - "src": "456:127:20", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11771, - "nodeType": "Block", - "src": "700:59:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11765, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11757, - "src": "735:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - ], - "id": 11764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "727:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 11763, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "727:7:20", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "727:10:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 11767, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11738, - "src": "741:10:20", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "727:24:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11762, - "name": "uq144x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11735, - "src": "717:9:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq144x112_$11735_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq144x112 storage pointer)" - } - }, - "id": 11769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "717:35:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "functionReturnParameters": 11761, - "id": 11770, - "nodeType": "Return", - "src": "710:42:20" - } - ] - }, - "documentation": null, - "id": 11772, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "encode144", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11758, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11757, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11772, - "src": "648:9:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - }, - "typeName": { - "id": 11756, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "648:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "647:11:20" - }, - "returnParameters": { - "id": 11761, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11760, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11772, - "src": "682:16:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112" - }, - "typeName": { - "contractScope": null, - "id": 11759, - "name": "uq144x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11735, - "src": "682:9:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_storage_ptr", - "typeString": "struct FixedPoint.uq144x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "681:18:20" - }, - "scope": 11904, - "src": "629:130:20", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11798, - "nodeType": "Block", - "src": "915:107:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "id": 11784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11782, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11776, - "src": "933:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11783, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "938:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "933:6:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4669786564506f696e743a204449565f42595f5a45524f", - "id": 11785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "941:25:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fb797fc20bb06d860bbe348d99030bb226d980421b724f94accde8487e338e12", - "typeString": "literal_string \"FixedPoint: DIV_BY_ZERO\"" - }, - "value": "FixedPoint: DIV_BY_ZERO" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fb797fc20bb06d860bbe348d99030bb226d980421b724f94accde8487e338e12", - "typeString": "literal_string \"FixedPoint: DIV_BY_ZERO\"" - } - ], - "id": 11781, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "925:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "925:42:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11787, - "nodeType": "ExpressionStatement", - "src": "925:42:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 11795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11789, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11774, - "src": "994:4:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 11790, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 11731, - "src": "994:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11793, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11776, - "src": "1012:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "id": 11792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1004:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 11791, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "1004:7:20", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1004:10:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "src": "994:20:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 11788, - "name": "uq112x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11732, - "src": "984:9:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 11796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "984:31:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "functionReturnParameters": 11780, - "id": 11797, - "nodeType": "Return", - "src": "977:38:20" - } - ] - }, - "documentation": null, - "id": 11799, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11774, - "mutability": "mutable", - "name": "self", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11799, - "src": "840:21:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 11773, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "840:9:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11776, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11799, - "src": "863:9:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 11775, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "863:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "839:34:20" - }, - "returnParameters": { - "id": 11780, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11779, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11799, - "src": "897:16:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 11778, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "897:9:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "896:18:20" - }, - "scope": 11904, - "src": "827:195:20", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11841, - "nodeType": "Block", - "src": "1201:164:20", - "statements": [ - { - "assignments": [ - 11809 - ], - "declarations": [ - { - "constant": false, - "id": 11809, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11841, - "src": "1211:6:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11808, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1211:4:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11810, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1211:6:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11812, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11803, - "src": "1235:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11813, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1240:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1235:6:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11815, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11809, - "src": "1246:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11818, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11801, - "src": "1255:4:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 11819, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 11731, - "src": "1255:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 11817, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1250:4:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 11816, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1250:4:20", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1250:13:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11821, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11803, - "src": "1266:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1250:17:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1246:21:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11824, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1245:23:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11825, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11803, - "src": "1271:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1245:27:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11829, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11801, - "src": "1281:4:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 11830, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 11731, - "src": "1281:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 11828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1276:4:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 11827, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1276:4:20", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1276:13:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1245:44:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1235:54:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57", - "id": 11834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1291:37:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c49d28a1a0a9590848dc8e15e2ce94a0e18d974f72b2d7169c2f9169e1ee31e8", - "typeString": "literal_string \"FixedPoint: MULTIPLICATION_OVERFLOW\"" - }, - "value": "FixedPoint: MULTIPLICATION_OVERFLOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c49d28a1a0a9590848dc8e15e2ce94a0e18d974f72b2d7169c2f9169e1ee31e8", - "typeString": "literal_string \"FixedPoint: MULTIPLICATION_OVERFLOW\"" - } - ], - "id": 11811, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1227:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1227:102:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11836, - "nodeType": "ExpressionStatement", - "src": "1227:102:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11838, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11809, - "src": "1356:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11837, - "name": "uq144x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11735, - "src": "1346:9:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq144x112_$11735_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq144x112 storage pointer)" - } - }, - "id": 11839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1346:12:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "functionReturnParameters": 11807, - "id": 11840, - "nodeType": "Return", - "src": "1339:19:20" - } - ] - }, - "documentation": null, - "id": 11842, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11804, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11801, - "mutability": "mutable", - "name": "self", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11842, - "src": "1129:21:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 11800, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "1129:9:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11803, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11842, - "src": "1152:6:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11802, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1152:4:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1128:31:20" - }, - "returnParameters": { - "id": 11807, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11806, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11842, - "src": "1183:16:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112" - }, - "typeName": { - "contractScope": null, - "id": 11805, - "name": "uq144x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11735, - "src": "1183:9:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_storage_ptr", - "typeString": "struct FixedPoint.uq144x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1182:18:20" - }, - "scope": 11904, - "src": "1116:249:20", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11870, - "nodeType": "Block", - "src": "1616:144:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "id": 11854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11852, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11846, - "src": "1634:11:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 11853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1648:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1634:15:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4669786564506f696e743a204449565f42595f5a45524f", - "id": 11855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1651:25:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fb797fc20bb06d860bbe348d99030bb226d980421b724f94accde8487e338e12", - "typeString": "literal_string \"FixedPoint: DIV_BY_ZERO\"" - }, - "value": "FixedPoint: DIV_BY_ZERO" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fb797fc20bb06d860bbe348d99030bb226d980421b724f94accde8487e338e12", - "typeString": "literal_string \"FixedPoint: DIV_BY_ZERO\"" - } - ], - "id": 11851, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1626:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 11856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1626:51:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11857, - "nodeType": "ExpressionStatement", - "src": "1626:51:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 11867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 11864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11861, - "name": "numerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11844, - "src": "1713:9:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - ], - "id": 11860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1705:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint224_$", - "typeString": "type(uint224)" - }, - "typeName": { - "id": 11859, - "name": "uint224", - "nodeType": "ElementaryTypeName", - "src": "1705:7:20", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1705:18:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 11863, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11738, - "src": "1727:10:20", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1705:32:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "id": 11865, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1704:34:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11866, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11846, - "src": "1741:11:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "src": "1704:48:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 11858, - "name": "uq112x112", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11732, - "src": "1694:9:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_uq112x112_$11732_storage_ptr_$", - "typeString": "type(struct FixedPoint.uq112x112 storage pointer)" - } - }, - "id": 11868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1694:59:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "functionReturnParameters": 11850, - "id": 11869, - "nodeType": "Return", - "src": "1687:66:20" - } - ] - }, - "documentation": null, - "id": 11871, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fraction", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11847, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11844, - "mutability": "mutable", - "name": "numerator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11871, - "src": "1535:17:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 11843, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1535:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11846, - "mutability": "mutable", - "name": "denominator", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11871, - "src": "1554:19:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 11845, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1554:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1534:40:20" - }, - "returnParameters": { - "id": 11850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11849, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11871, - "src": "1598:16:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 11848, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "1598:9:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1597:18:20" - }, - "scope": 11904, - "src": "1517:243:20", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11886, - "nodeType": "Block", - "src": "1914:54:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - }, - "id": 11883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11880, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11873, - "src": "1939:4:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112 memory" - } - }, - "id": 11881, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 11731, - "src": "1939:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 11882, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11738, - "src": "1950:10:20", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1939:21:20", - "typeDescriptions": { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint224", - "typeString": "uint224" - } - ], - "id": 11879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1931:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint112_$", - "typeString": "type(uint112)" - }, - "typeName": { - "id": 11878, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1931:7:20", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1931:30:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "functionReturnParameters": 11877, - "id": 11885, - "nodeType": "Return", - "src": "1924:37:20" - } - ] - }, - "documentation": null, - "id": 11887, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decode", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11874, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11873, - "mutability": "mutable", - "name": "self", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11887, - "src": "1859:21:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_memory_ptr", - "typeString": "struct FixedPoint.uq112x112" - }, - "typeName": { - "contractScope": null, - "id": 11872, - "name": "uq112x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11732, - "src": "1859:9:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq112x112_$11732_storage_ptr", - "typeString": "struct FixedPoint.uq112x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1858:23:20" - }, - "returnParameters": { - "id": 11877, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11876, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11887, - "src": "1905:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - }, - "typeName": { - "id": 11875, - "name": "uint112", - "nodeType": "ElementaryTypeName", - "src": "1905:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint112", - "typeString": "uint112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1904:9:20" - }, - "scope": 11904, - "src": "1843:125:20", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11902, - "nodeType": "Block", - "src": "2125:54:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11896, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11889, - "src": "2150:4:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112 memory" - } - }, - "id": 11897, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_x", - "nodeType": "MemberAccess", - "referencedDeclaration": 11734, - "src": "2150:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 11898, - "name": "RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11738, - "src": "2161:10:20", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2150:21:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2142:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint144_$", - "typeString": "type(uint144)" - }, - "typeName": { - "id": 11894, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "2142:7:20", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2142:30:20", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "functionReturnParameters": 11893, - "id": 11901, - "nodeType": "Return", - "src": "2135:37:20" - } - ] - }, - "documentation": null, - "id": 11903, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decode144", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11889, - "mutability": "mutable", - "name": "self", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11903, - "src": "2070:21:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_memory_ptr", - "typeString": "struct FixedPoint.uq144x112" - }, - "typeName": { - "contractScope": null, - "id": 11888, - "name": "uq144x112", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11735, - "src": "2070:9:20", - "typeDescriptions": { - "typeIdentifier": "t_struct$_uq144x112_$11735_storage_ptr", - "typeString": "struct FixedPoint.uq144x112" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2069:23:20" - }, - "returnParameters": { - "id": 11893, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11892, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11903, - "src": "2116:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - }, - "typeName": { - "id": 11891, - "name": "uint144", - "nodeType": "ElementaryTypeName", - "src": "2116:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint144", - "typeString": "uint144" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2115:9:20" - }, - "scope": 11904, - "src": "2051:128:20", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 11905, - "src": "129:2052:20" - } - ], - "src": "0:2182:20" - } - }, - "contracts/libraries/PairNamer.sol": { - "id": 21, - "AST": { - "absolutePath": "contracts/libraries/PairNamer.sol", - "exportedSymbols": { - "PairNamer": [ - 11977 - ] - }, - "id": 11978, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11906, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:21" - }, - { - "absolutePath": "contracts/libraries/SafeERC20Namer.sol", - "file": "./SafeERC20Namer.sol", - "id": 11907, - "nodeType": "ImportDirective", - "scope": 11978, - "sourceUnit": 12293, - "src": "26:30:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 11977, - "linearizedBaseContracts": [ - 11977 - ], - "name": "PairNamer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 11910, - "mutability": "constant", - "name": "TOKEN_PAIR_PREFIX", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11977, - "src": "149:49:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11908, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "149:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "445853", - "id": 11909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "193:5:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a83c5f753ca8dfb38e3642b6150bd5bcbf2faf386e9f693f71a3f3aff250d790", - "typeString": "literal_string \"DXS\"" - }, - "value": "DXS" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11913, - "mutability": "constant", - "name": "TOKEN_SEPARATOR", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11977, - "src": "204:45:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11911, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "204:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3a", - "id": 11912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "246:3:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c", - "typeString": "literal_string \":\"" - }, - "value": ":" - }, - "visibility": "private" - }, - { - "body": { - "id": 11944, - "nodeType": "Block", - "src": "477:265:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11930, - "name": "prefix", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11919, - "src": "548:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11933, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11915, - "src": "597:6:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 11931, - "name": "SafeERC20Namer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12292, - "src": "572:14:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeERC20Namer_$12292_$", - "typeString": "type(library SafeERC20Namer)" - } - }, - "id": 11932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenName", - "nodeType": "MemberAccess", - "referencedDeclaration": 12291, - "src": "572:24:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) view returns (string memory)" - } - }, - "id": 11934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "572:32:21", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 11935, - "name": "TOKEN_SEPARATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11913, - "src": "622:15:21", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11938, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11917, - "src": "680:6:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 11936, - "name": "SafeERC20Namer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12292, - "src": "655:14:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeERC20Namer_$12292_$", - "typeString": "type(library SafeERC20Namer)" - } - }, - "id": 11937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenName", - "nodeType": "MemberAccess", - "referencedDeclaration": 12291, - "src": "655:24:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) view returns (string memory)" - } - }, - "id": 11939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "655:32:21", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 11940, - "name": "suffix", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11921, - "src": "705:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 11928, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "514:3:21", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 11929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "514:16:21", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 11941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "514:211:21", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 11927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "494:6:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 11926, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "494:6:21", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "494:241:21", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 11925, - "id": 11943, - "nodeType": "Return", - "src": "487:248:21" - } - ] - }, - "documentation": null, - "id": 11945, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pairName", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11922, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11915, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11945, - "src": "363:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11914, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "363:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11917, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11945, - "src": "379:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11916, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "379:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11919, - "mutability": "mutable", - "name": "prefix", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11945, - "src": "395:20:21", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11918, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "395:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11921, - "mutability": "mutable", - "name": "suffix", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11945, - "src": "417:20:21", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11920, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "417:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "362:76:21" - }, - "returnParameters": { - "id": 11925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11924, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11945, - "src": "462:13:21", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11923, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "462:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "461:15:21" - }, - "scope": 11977, - "src": "345:397:21", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11975, - "nodeType": "Block", - "src": "944:313:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11960, - "name": "TOKEN_PAIR_PREFIX", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11910, - "src": "1015:17:21", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 11961, - "name": "TOKEN_SEPARATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11913, - "src": "1050:15:21", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11964, - "name": "token0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11947, - "src": "1110:6:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 11962, - "name": "SafeERC20Namer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12292, - "src": "1083:14:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeERC20Namer_$12292_$", - "typeString": "type(library SafeERC20Namer)" - } - }, - "id": 11963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 12261, - "src": "1083:26:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) view returns (string memory)" - } - }, - "id": 11965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1083:34:21", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 11966, - "name": "TOKEN_SEPARATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11913, - "src": "1135:15:21", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11969, - "name": "token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11949, - "src": "1195:6:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 11967, - "name": "SafeERC20Namer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12292, - "src": "1168:14:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeERC20Namer_$12292_$", - "typeString": "type(library SafeERC20Namer)" - } - }, - "id": 11968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 12261, - "src": "1168:26:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) view returns (string memory)" - } - }, - "id": 11970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1168:34:21", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 11971, - "name": "suffix", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11951, - "src": "1220:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 11958, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "981:3:21", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 11959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "981:16:21", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 11972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "981:259:21", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 11957, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "961:6:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 11956, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "961:6:21", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 11973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "961:289:21", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 11955, - "id": 11974, - "nodeType": "Return", - "src": "954:296:21" - } - ] - }, - "documentation": null, - "id": 11976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pairSymbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11952, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11947, - "mutability": "mutable", - "name": "token0", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11976, - "src": "852:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11946, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "852:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11949, - "mutability": "mutable", - "name": "token1", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11976, - "src": "868:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "868:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11951, - "mutability": "mutable", - "name": "suffix", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11976, - "src": "884:20:21", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11950, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "884:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "851:54:21" - }, - "returnParameters": { - "id": 11955, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11954, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 11976, - "src": "929:13:21", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11953, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "929:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "928:15:21" - }, - "scope": 11977, - "src": "832:425:21", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 11978, - "src": "125:1134:21" - } - ], - "src": "0:1260:21" - } - }, - "contracts/libraries/SafeERC20Namer.sol": { - "id": 22, - "AST": { - "absolutePath": "contracts/libraries/SafeERC20Namer.sol", - "exportedSymbols": { - "SafeERC20Namer": [ - 12292 - ] - }, - "id": 12293, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11979, - "literals": [ - "solidity", - ">=", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:22" - }, - { - "absolutePath": "contracts/libraries/AddressStringUtil.sol", - "file": "./AddressStringUtil.sol", - "id": 11980, - "nodeType": "ImportDirective", - "scope": 12293, - "sourceUnit": 11023, - "src": "26:33:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 12292, - "linearizedBaseContracts": [ - 12292 - ], - "name": "SafeERC20Namer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 12062, - "nodeType": "Block", - "src": "359:500:22", - "statements": [ - { - "assignments": [ - 11988 - ], - "declarations": [ - { - "constant": false, - "id": 11988, - "mutability": "mutable", - "name": "bytesString", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12062, - "src": "369:24:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 11987, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "369:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11993, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 11991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "406:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 11990, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "396:9:22", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 11989, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "400:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 11992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "396:13:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "369:40:22" - }, - { - "assignments": [ - 11995 - ], - "declarations": [ - { - "constant": false, - "id": 11995, - "mutability": "mutable", - "name": "charCount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12062, - "src": "419:14:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11994, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "419:4:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11997, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 11996, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "436:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "419:18:22" - }, - { - "body": { - "id": 12028, - "nodeType": "Block", - "src": "477:160:22", - "statements": [ - { - "assignments": [ - 12009 - ], - "declarations": [ - { - "constant": false, - "id": 12009, - "mutability": "mutable", - "name": "char", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12028, - "src": "491:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "typeName": { - "id": 12008, - "name": "byte", - "nodeType": "ElementaryTypeName", - "src": "491:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12013, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12010, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11982, - "src": "503:1:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 12012, - "indexExpression": { - "argumentTypes": null, - "id": 12011, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11999, - "src": "505:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "503:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "491:16:22" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 12016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12014, - "name": "char", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12009, - "src": "525:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "533:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "525:9:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12027, - "nodeType": "IfStatement", - "src": "521:106:22", - "trueBody": { - "id": 12026, - "nodeType": "Block", - "src": "536:91:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12017, - "name": "bytesString", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11988, - "src": "554:11:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12019, - "indexExpression": { - "argumentTypes": null, - "id": 12018, - "name": "charCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11995, - "src": "566:9:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "554:22:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 12020, - "name": "char", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12009, - "src": "579:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "554:29:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 12022, - "nodeType": "ExpressionStatement", - "src": "554:29:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 12024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "601:11:22", - "subExpression": { - "argumentTypes": null, - "id": 12023, - "name": "charCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11995, - "src": "601:9:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12025, - "nodeType": "ExpressionStatement", - "src": "601:11:22" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12002, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11999, - "src": "464:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3332", - "id": 12003, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "468:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "464:6:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12029, - "initializationExpression": { - "assignments": [ - 11999 - ], - "declarations": [ - { - "constant": false, - "id": 11999, - "mutability": "mutable", - "name": "j", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12029, - "src": "452:6:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11998, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "452:4:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12001, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 12000, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "461:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "452:10:22" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 12006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "472:3:22", - "subExpression": { - "argumentTypes": null, - "id": 12005, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11999, - "src": "472:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12007, - "nodeType": "ExpressionStatement", - "src": "472:3:22" - }, - "nodeType": "ForStatement", - "src": "447:190:22" - }, - { - "assignments": [ - 12031 - ], - "declarations": [ - { - "constant": false, - "id": 12031, - "mutability": "mutable", - "name": "bytesStringTrimmed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12062, - "src": "646:31:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 12030, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "646:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12036, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12034, - "name": "charCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11995, - "src": "690:9:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "680:9:22", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 12032, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "684:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 12035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "680:20:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "646:54:22" - }, - { - "body": { - "id": 12055, - "nodeType": "Block", - "src": "747:63:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12047, - "name": "bytesStringTrimmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12031, - "src": "761:18:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12049, - "indexExpression": { - "argumentTypes": null, - "id": 12048, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12038, - "src": "780:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "761:21:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12050, - "name": "bytesString", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11988, - "src": "785:11:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12052, - "indexExpression": { - "argumentTypes": null, - "id": 12051, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12038, - "src": "797:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "785:14:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "761:38:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 12054, - "nodeType": "ExpressionStatement", - "src": "761:38:22" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12041, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12038, - "src": "727:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 12042, - "name": "charCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11995, - "src": "731:9:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "727:13:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12056, - "initializationExpression": { - "assignments": [ - 12038 - ], - "declarations": [ - { - "constant": false, - "id": 12038, - "mutability": "mutable", - "name": "j", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12056, - "src": "715:6:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12037, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "715:4:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12040, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 12039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "724:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "715:10:22" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 12045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "742:3:22", - "subExpression": { - "argumentTypes": null, - "id": 12044, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12038, - "src": "742:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12046, - "nodeType": "ExpressionStatement", - "src": "742:3:22" - }, - "nodeType": "ForStatement", - "src": "710:100:22" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12059, - "name": "bytesStringTrimmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12031, - "src": "833:18:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 12058, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "826:6:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 12057, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "826:6:22", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "826:26:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 11986, - "id": 12061, - "nodeType": "Return", - "src": "819:33:22" - } - ] - }, - "documentation": null, - "id": 12063, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "bytes32ToString", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 11983, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11982, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12063, - "src": "311:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11981, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "311:7:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "310:11:22" - }, - "returnParameters": { - "id": 11986, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11985, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12063, - "src": "344:13:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11984, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "344:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "343:15:22" - }, - "scope": 12292, - "src": "286:573:22", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 12133, - "nodeType": "Block", - "src": "984:419:22", - "statements": [ - { - "assignments": [ - 12071 - ], - "declarations": [ - { - "constant": false, - "id": 12071, - "mutability": "mutable", - "name": "charCount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12133, - "src": "994:14:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12070, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "994:4:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12073, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 12072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1011:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "994:18:22" - }, - { - "body": { - "id": 12097, - "nodeType": "Block", - "src": "1106:78:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12084, - "name": "charCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12071, - "src": "1120:9:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "<<=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "38", - "id": 12085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1134:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "1120:15:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12087, - "nodeType": "ExpressionStatement", - "src": "1120:15:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 12095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12088, - "name": "charCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12071, - "src": "1149:9:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12091, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12065, - "src": "1168:1:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12093, - "indexExpression": { - "argumentTypes": null, - "id": 12092, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12075, - "src": "1170:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1168:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 12090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1162:5:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 12089, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1162:5:22", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1162:11:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1149:24:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12096, - "nodeType": "ExpressionStatement", - "src": "1149:24:22" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12078, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12075, - "src": "1093:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3634", - "id": 12079, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1097:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "1093:6:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12098, - "initializationExpression": { - "assignments": [ - 12075 - ], - "declarations": [ - { - "constant": false, - "id": 12075, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12098, - "src": "1080:6:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12074, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1080:4:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12077, - "initialValue": { - "argumentTypes": null, - "hexValue": "3332", - "id": 12076, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1089:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1080:11:22" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 12082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1101:3:22", - "subExpression": { - "argumentTypes": null, - "id": 12081, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12075, - "src": "1101:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12083, - "nodeType": "ExpressionStatement", - "src": "1101:3:22" - }, - "nodeType": "ForStatement", - "src": "1075:109:22" - }, - { - "assignments": [ - 12100 - ], - "declarations": [ - { - "constant": false, - "id": 12100, - "mutability": "mutable", - "name": "bytesStringTrimmed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12133, - "src": "1194:31:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 12099, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1194:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12103, - "name": "charCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12071, - "src": "1238:9:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1228:9:22", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 12101, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1232:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 12104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1228:20:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1194:54:22" - }, - { - "body": { - "id": 12126, - "nodeType": "Block", - "src": "1295:58:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12116, - "name": "bytesStringTrimmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12100, - "src": "1309:18:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12118, - "indexExpression": { - "argumentTypes": null, - "id": 12117, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12107, - "src": "1328:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1309:21:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12119, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12065, - "src": "1333:1:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12123, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12120, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12107, - "src": "1335:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3634", - "id": 12121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1339:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "1335:6:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1333:9:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "1309:33:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 12125, - "nodeType": "ExpressionStatement", - "src": "1309:33:22" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12110, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12107, - "src": "1275:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 12111, - "name": "charCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12071, - "src": "1279:9:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1275:13:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12127, - "initializationExpression": { - "assignments": [ - 12107 - ], - "declarations": [ - { - "constant": false, - "id": 12107, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12127, - "src": "1263:6:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12106, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1263:4:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12109, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 12108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1272:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1263:10:22" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 12114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1290:3:22", - "subExpression": { - "argumentTypes": null, - "id": 12113, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12107, - "src": "1290:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12115, - "nodeType": "ExpressionStatement", - "src": "1290:3:22" - }, - "nodeType": "ForStatement", - "src": "1258:95:22" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12130, - "name": "bytesStringTrimmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12100, - "src": "1377:18:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 12129, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1370:6:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 12128, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1370:6:22", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1370:26:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 12069, - "id": 12132, - "nodeType": "Return", - "src": "1363:33:22" - } - ] - }, - "documentation": null, - "id": 12134, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "parseStringData", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12066, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12065, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12134, - "src": "931:14:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 12064, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "931:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "930:16:22" - }, - "returnParameters": { - "id": 12069, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12068, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12134, - "src": "969:13:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12067, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "969:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "968:15:22" - }, - "scope": 12292, - "src": "906:497:22", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 12147, - "nodeType": "Block", - "src": "1627:66:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12143, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12136, - "src": "1676:5:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "3430", - "id": 12144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1683:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - "value": "40" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - } - ], - "expression": { - "argumentTypes": null, - "id": 12141, - "name": "AddressStringUtil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11022, - "src": "1644:17:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AddressStringUtil_$11022_$", - "typeString": "type(library AddressStringUtil)" - } - }, - "id": 12142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toAsciiString", - "nodeType": "MemberAccess", - "referencedDeclaration": 10993, - "src": "1644:31:22", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (address,uint256) pure returns (string memory)" - } - }, - "id": 12145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1644:42:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 12140, - "id": 12146, - "nodeType": "Return", - "src": "1637:49:22" - } - ] - }, - "documentation": null, - "id": 12148, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addressToName", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12136, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12148, - "src": "1575:13:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1575:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1574:15:22" - }, - "returnParameters": { - "id": 12140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12139, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12148, - "src": "1612:13:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12138, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1612:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1611:15:22" - }, - "scope": 12292, - "src": "1552:141:22", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 12161, - "nodeType": "Block", - "src": "1924:65:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12157, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12150, - "src": "1973:5:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "36", - "id": 12158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1980:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - } - ], - "expression": { - "argumentTypes": null, - "id": 12155, - "name": "AddressStringUtil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11022, - "src": "1941:17:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AddressStringUtil_$11022_$", - "typeString": "type(library AddressStringUtil)" - } - }, - "id": 12156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toAsciiString", - "nodeType": "MemberAccess", - "referencedDeclaration": 10993, - "src": "1941:31:22", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (address,uint256) pure returns (string memory)" - } - }, - "id": 12159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1941:41:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 12154, - "id": 12160, - "nodeType": "Return", - "src": "1934:48:22" - } - ] - }, - "documentation": null, - "id": 12162, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addressToSymbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12150, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12162, - "src": "1872:13:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1872:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1871:15:22" - }, - "returnParameters": { - "id": 12154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12153, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12162, - "src": "1909:13:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12152, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1909:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1908:15:22" - }, - "scope": 12292, - "src": "1847:142:22", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 12230, - "nodeType": "Block", - "src": "2217:551:22", - "statements": [ - { - "assignments": [ - 12172, - 12174 - ], - "declarations": [ - { - "constant": false, - "id": 12172, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12230, - "src": "2228:12:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12171, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2228:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12174, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12230, - "src": "2242:17:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 12173, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2242:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12182, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12179, - "name": "selector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12166, - "src": "2303:8:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 12177, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2280:3:22", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2280:22:22", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 12180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2280:32:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 12175, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12164, - "src": "2263:5:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "staticcall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2263:16:22", - "typeDescriptions": { - "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) view returns (bool,bytes memory)" - } - }, - "id": 12181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2263:50:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2227:86:22" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2401:8:22", - "subExpression": { - "argumentTypes": null, - "id": 12183, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12172, - "src": "2402:7:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12185, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12174, - "src": "2413:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2413:11:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2428:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2413:16:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2401:28:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12193, - "nodeType": "IfStatement", - "src": "2397:68:22", - "trueBody": { - "id": 12192, - "nodeType": "Block", - "src": "2431:34:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "", - "id": 12190, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2452:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "functionReturnParameters": 12170, - "id": 12191, - "nodeType": "Return", - "src": "2445:9:22" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12194, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12174, - "src": "2523:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2523:11:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3332", - "id": 12196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2538:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "2523:17:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12213, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12174, - "src": "2667:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2667:11:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3634", - "id": 12215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2681:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "2667:16:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12226, - "nodeType": "IfStatement", - "src": "2663:80:22", - "trueBody": { - "id": 12225, - "nodeType": "Block", - "src": "2685:58:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12219, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12174, - "src": "2717:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 12221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2724:6:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 12220, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2724:6:22", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 12222, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2723:8:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - } - ], - "expression": { - "argumentTypes": null, - "id": 12217, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2706:3:22", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2706:10:22", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 12223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2706:26:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 12170, - "id": 12224, - "nodeType": "Return", - "src": "2699:33:22" - } - ] - } - }, - "id": 12227, - "nodeType": "IfStatement", - "src": "2519:224:22", - "trueBody": { - "id": 12212, - "nodeType": "Block", - "src": "2542:115:22", - "statements": [ - { - "assignments": [ - 12199 - ], - "declarations": [ - { - "constant": false, - "id": 12199, - "mutability": "mutable", - "name": "decoded", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12212, - "src": "2556:15:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12198, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2556:7:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12207, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12202, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12174, - "src": "2585:4:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 12204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2592:7:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 12203, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2592:7:22", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 12205, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2591:9:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - } - ], - "expression": { - "argumentTypes": null, - "id": 12200, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2574:3:22", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2574:10:22", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 12206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2574:27:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2556:45:22" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12209, - "name": "decoded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12199, - "src": "2638:7:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 12208, - "name": "bytes32ToString", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12063, - "src": "2622:15:22", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 12210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2622:24:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 12170, - "id": 12211, - "nodeType": "Return", - "src": "2615:31:22" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "", - "id": 12228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2759:2:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "functionReturnParameters": 12170, - "id": 12229, - "nodeType": "Return", - "src": "2752:9:22" - } - ] - }, - "documentation": null, - "id": 12231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "callAndParseStringReturn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12164, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12231, - "src": "2148:13:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12163, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2148:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12166, - "mutability": "mutable", - "name": "selector", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12231, - "src": "2163:15:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 12165, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2163:6:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2147:32:22" - }, - "returnParameters": { - "id": 12170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12169, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12231, - "src": "2202:13:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12168, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2202:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2201:15:22" - }, - "scope": 12292, - "src": "2114:654:22", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 12260, - "nodeType": "Block", - "src": "2968:308:22", - "statements": [ - { - "assignments": [ - 12239 - ], - "declarations": [ - { - "constant": false, - "id": 12239, - "mutability": "mutable", - "name": "symbol", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12260, - "src": "3032:20:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12238, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3032:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12244, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12241, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12233, - "src": "3080:5:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30783935643839623431", - "id": 12242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3087:10:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2514000705_by_1", - "typeString": "int_const 2514000705" - }, - "value": "0x95d89b41" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_2514000705_by_1", - "typeString": "int_const 2514000705" - } - ], - "id": 12240, - "name": "callAndParseStringReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12231, - "src": "3055:24:22", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_string_memory_ptr_$", - "typeString": "function (address,bytes4) view returns (string memory)" - } - }, - "id": 12243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3055:43:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3032:66:22" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12247, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12239, - "src": "3118:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 12246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3112:5:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 12245, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3112:5:22", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3112:13:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3112:20:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3136:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3112:25:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12257, - "nodeType": "IfStatement", - "src": "3108:139:22", - "trueBody": { - "id": 12256, - "nodeType": "Block", - "src": "3139:108:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12253, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12233, - "src": "3230:5:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12252, - "name": "addressToSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12162, - "src": "3214:15:22", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 12254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3214:22:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 12237, - "id": 12255, - "nodeType": "Return", - "src": "3207:29:22" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 12258, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12239, - "src": "3263:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 12237, - "id": 12259, - "nodeType": "Return", - "src": "3256:13:22" - } - ] - }, - "documentation": null, - "id": 12261, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenSymbol", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12233, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12261, - "src": "2915:13:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12232, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2915:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2914:15:22" - }, - "returnParameters": { - "id": 12237, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12236, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12261, - "src": "2953:13:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12235, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2953:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2952:15:22" - }, - "scope": 12292, - "src": "2894:382:22", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12290, - "nodeType": "Block", - "src": "3468:291:22", - "statements": [ - { - "assignments": [ - 12269 - ], - "declarations": [ - { - "constant": false, - "id": 12269, - "mutability": "mutable", - "name": "name", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12290, - "src": "3530:18:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12268, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3530:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12274, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12271, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12263, - "src": "3576:5:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30783036666464653033", - "id": 12272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3583:10:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_117300739_by_1", - "typeString": "int_const 117300739" - }, - "value": "0x06fdde03" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_117300739_by_1", - "typeString": "int_const 117300739" - } - ], - "id": 12270, - "name": "callAndParseStringReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12231, - "src": "3551:24:22", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_string_memory_ptr_$", - "typeString": "function (address,bytes4) view returns (string memory)" - } - }, - "id": 12273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3551:43:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3530:64:22" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12277, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12269, - "src": "3614:4:22", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 12276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3608:5:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 12275, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3608:5:22", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3608:11:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3608:18:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12280, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3630:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3608:23:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12287, - "nodeType": "IfStatement", - "src": "3604:128:22", - "trueBody": { - "id": 12286, - "nodeType": "Block", - "src": "3633:99:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12283, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12263, - "src": "3715:5:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12282, - "name": "addressToName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12148, - "src": "3701:13:22", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 12284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3701:20:22", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 12267, - "id": 12285, - "nodeType": "Return", - "src": "3694:27:22" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 12288, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12269, - "src": "3748:4:22", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 12267, - "id": 12289, - "nodeType": "Return", - "src": "3741:11:22" - } - ] - }, - "documentation": null, - "id": 12291, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenName", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12263, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12291, - "src": "3415:13:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12262, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3415:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3414:15:22" - }, - "returnParameters": { - "id": 12267, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12266, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12291, - "src": "3453:13:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12265, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3453:6:22", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3452:15:22" - }, - "scope": 12292, - "src": "3396:363:22", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 12293, - "src": "257:3504:22" - } - ], - "src": "0:3762:22" - } - }, - "contracts/libraries/SafeMath.sol": { - "id": 23, - "AST": { - "absolutePath": "contracts/libraries/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 12367 - ] - }, - "id": 12368, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12294, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:23" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 12367, - "linearizedBaseContracts": [ - 12367 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 12315, - "nodeType": "Block", - "src": "214:66:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 12308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12304, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12301, - "src": "233:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12305, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12296, - "src": "237:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 12306, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12298, - "src": "241:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "237:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "233:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 12309, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "232:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 12310, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12296, - "src": "247:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "232:16:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", - "id": 12312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "250:22:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", - "typeString": "literal_string \"ds-math-add-overflow\"" - }, - "value": "ds-math-add-overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", - "typeString": "literal_string \"ds-math-add-overflow\"" - } - ], - "id": 12303, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "224:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "224:49:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12314, - "nodeType": "ExpressionStatement", - "src": "224:49:23" - } - ] - }, - "documentation": null, - "id": 12316, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12296, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12316, - "src": "167:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12295, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "167:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12298, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12316, - "src": "175:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "175:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "166:16:23" - }, - "returnParameters": { - "id": 12302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12301, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12316, - "src": "206:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12300, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "206:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "205:8:23" - }, - "scope": 12367, - "src": "154:126:23", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12337, - "nodeType": "Block", - "src": "346:67:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 12330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12326, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12323, - "src": "365:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12327, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12318, - "src": "369:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 12328, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12320, - "src": "373:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "369:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "365:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 12331, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "364:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 12332, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12318, - "src": "379:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "364:16:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", - "id": 12334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "382:23:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", - "typeString": "literal_string \"ds-math-sub-underflow\"" - }, - "value": "ds-math-sub-underflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", - "typeString": "literal_string \"ds-math-sub-underflow\"" - } - ], - "id": 12325, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "356:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "356:50:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12336, - "nodeType": "ExpressionStatement", - "src": "356:50:23" - } - ] - }, - "documentation": null, - "id": 12338, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12318, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12338, - "src": "299:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12317, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "299:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12320, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12338, - "src": "307:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12319, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "307:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "298:16:23" - }, - "returnParameters": { - "id": 12324, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12323, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12338, - "src": "338:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12322, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "338:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "337:8:23" - }, - "scope": 12367, - "src": "286:127:23", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12365, - "nodeType": "Block", - "src": "479:80:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12348, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12342, - "src": "497:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "502:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "497:6:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 12355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12351, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12345, - "src": "508:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12352, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12340, - "src": "512:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 12353, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12342, - "src": "516:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "512:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "508:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 12356, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "507:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 12357, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12342, - "src": "521:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "507:15:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 12359, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12340, - "src": "526:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "507:20:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "497:30:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", - "id": 12362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "529:22:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", - "typeString": "literal_string \"ds-math-mul-overflow\"" - }, - "value": "ds-math-mul-overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", - "typeString": "literal_string \"ds-math-mul-overflow\"" - } - ], - "id": 12347, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "489:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "489:63:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12364, - "nodeType": "ExpressionStatement", - "src": "489:63:23" - } - ] - }, - "documentation": null, - "id": 12366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12343, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12340, - "mutability": "mutable", - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12366, - "src": "432:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12339, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "432:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12342, - "mutability": "mutable", - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12366, - "src": "440:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12341, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "440:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "431:16:23" - }, - "returnParameters": { - "id": 12346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12345, - "mutability": "mutable", - "name": "z", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12366, - "src": "471:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12344, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "471:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "470:8:23" - }, - "scope": 12367, - "src": "419:140:23", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 12368, - "src": "131:430:23" - } - ], - "src": "0:562:23" - } - }, - "contracts/libraries/TransferHelper.sol": { - "id": 24, - "AST": { - "absolutePath": "contracts/libraries/TransferHelper.sol", - "exportedSymbols": { - "TransferHelper": [ - 12527 - ] - }, - "id": 12528, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12369, - "literals": [ - "solidity", - ">=", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:24:24" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 12527, - "linearizedBaseContracts": [ - 12527 - ], - "name": "TransferHelper", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 12411, - "nodeType": "Block", - "src": "235:285:24", - "statements": [ - { - "assignments": [ - 12379, - 12381 - ], - "declarations": [ - { - "constant": false, - "id": 12379, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12411, - "src": "311:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12378, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "311:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12381, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12411, - "src": "325:17:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 12380, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "325:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12391, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783039356561376233", - "id": 12386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "380:10:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - "value": "0x095ea7b3" - }, - { - "argumentTypes": null, - "id": 12387, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12373, - "src": "392:2:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12388, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12375, - "src": "396:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 12384, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "357:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "357:22:24", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 12389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "357:45:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 12382, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12371, - "src": "346:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "346:10:24", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 12390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "346:57:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "310:93:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12393, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12379, - "src": "421:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12394, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12381, - "src": "433:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "433:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12396, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "448:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "433:16:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12400, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12381, - "src": "464:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 12402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "471:4:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 12401, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "471:4:24", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 12403, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "470:6:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "argumentTypes": null, - "id": 12398, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "453:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "453:10:24", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 12404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "453:24:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "433:44:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 12406, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "432:46:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "421:57:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e7366657248656c7065723a20415050524f56455f4641494c4544", - "id": 12408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "480:32:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3e27be550bb5367a6d8a8b2dd8b5c52ee0710d2d5b26de50062207957ab5bd00", - "typeString": "literal_string \"TransferHelper: APPROVE_FAILED\"" - }, - "value": "TransferHelper: APPROVE_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3e27be550bb5367a6d8a8b2dd8b5c52ee0710d2d5b26de50062207957ab5bd00", - "typeString": "literal_string \"TransferHelper: APPROVE_FAILED\"" - } - ], - "id": 12392, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "413:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "413:100:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12410, - "nodeType": "ExpressionStatement", - "src": "413:100:24" - } - ] - }, - "documentation": null, - "id": 12412, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeApprove", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12371, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12412, - "src": "187:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12370, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "187:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12373, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12412, - "src": "202:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "202:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12375, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12412, - "src": "214:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12374, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "214:4:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "186:39:24" - }, - "returnParameters": { - "id": 12377, - "nodeType": "ParameterList", - "parameters": [], - "src": "235:0:24" - }, - "scope": 12527, - "src": "166:354:24", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12454, - "nodeType": "Block", - "src": "596:287:24", - "statements": [ - { - "assignments": [ - 12422, - 12424 - ], - "declarations": [ - { - "constant": false, - "id": 12422, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12454, - "src": "673:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12421, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "673:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12424, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12454, - "src": "687:17:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 12423, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "687:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12434, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30786139303539636262", - "id": 12429, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "742:10:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - "value": "0xa9059cbb" - }, - { - "argumentTypes": null, - "id": 12430, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12416, - "src": "754:2:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12431, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12418, - "src": "758:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 12427, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "719:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "719:22:24", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 12432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "719:45:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 12425, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12414, - "src": "708:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "708:10:24", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 12433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "708:57:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "672:93:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12436, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12422, - "src": "783:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12437, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12424, - "src": "795:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "795:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "810:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "795:16:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12443, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12424, - "src": "826:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 12445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "833:4:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 12444, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "833:4:24", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 12446, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "832:6:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "argumentTypes": null, - "id": 12441, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "815:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "815:10:24", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 12447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "815:24:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "795:44:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 12449, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "794:46:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "783:57:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e7366657248656c7065723a205452414e534645525f4641494c4544", - "id": 12451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "842:33:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426", - "typeString": "literal_string \"TransferHelper: TRANSFER_FAILED\"" - }, - "value": "TransferHelper: TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426", - "typeString": "literal_string \"TransferHelper: TRANSFER_FAILED\"" - } - ], - "id": 12435, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "775:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "775:101:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12453, - "nodeType": "ExpressionStatement", - "src": "775:101:24" - } - ] - }, - "documentation": null, - "id": 12455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12419, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12414, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12455, - "src": "548:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12413, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "548:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12416, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12455, - "src": "563:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "563:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12418, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12455, - "src": "575:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12417, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "575:4:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "547:39:24" - }, - "returnParameters": { - "id": 12420, - "nodeType": "ParameterList", - "parameters": [], - "src": "596:0:24" - }, - "scope": 12527, - "src": "526:357:24", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12500, - "nodeType": "Block", - "src": "977:310:24", - "statements": [ - { - "assignments": [ - 12467, - 12469 - ], - "declarations": [ - { - "constant": false, - "id": 12467, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12500, - "src": "1066:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12466, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1066:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12469, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12500, - "src": "1080:17:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 12468, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1080:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12480, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783233623837326464", - "id": 12474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1135:10:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - "value": "0x23b872dd" - }, - { - "argumentTypes": null, - "id": 12475, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12459, - "src": "1147:4:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12476, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12461, - "src": "1153:2:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12477, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12463, - "src": "1157:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 12472, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1112:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1112:22:24", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 12478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1112:51:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 12470, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12457, - "src": "1101:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1101:10:24", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 12479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1101:63:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1065:99:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12482, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12467, - "src": "1182:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12483, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12469, - "src": "1194:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 12484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1194:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1209:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1194:16:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12489, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12469, - "src": "1225:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 12491, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1232:4:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 12490, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1232:4:24", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 12492, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1231:6:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "argumentTypes": null, - "id": 12487, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1214:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1214:10:24", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 12493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1214:24:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1194:44:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 12495, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1193:46:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1182:57:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544", - "id": 12497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1241:38:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18", - "typeString": "literal_string \"TransferHelper: TRANSFER_FROM_FAILED\"" - }, - "value": "TransferHelper: TRANSFER_FROM_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18", - "typeString": "literal_string \"TransferHelper: TRANSFER_FROM_FAILED\"" - } - ], - "id": 12481, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1174:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1174:106:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12499, - "nodeType": "ExpressionStatement", - "src": "1174:106:24" - } - ] - }, - "documentation": null, - "id": 12501, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12457, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12501, - "src": "915:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12456, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "915:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12459, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12501, - "src": "930:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "930:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12461, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12501, - "src": "944:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12460, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "944:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12463, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12501, - "src": "956:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "956:4:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "914:53:24" - }, - "returnParameters": { - "id": 12465, - "nodeType": "ParameterList", - "parameters": [], - "src": "977:0:24" - }, - "scope": 12527, - "src": "889:398:24", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12525, - "nodeType": "Block", - "src": "1351:134:24", - "statements": [ - { - "assignments": [ - 12509, - null - ], - "declarations": [ - { - "constant": false, - "id": 12509, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12525, - "src": "1362:12:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12508, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1362:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 12519, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 12516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1410:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 12515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1400:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 12514, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1404:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 12517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1400:12:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12510, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12503, - "src": "1379:2:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1379:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 12513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "argumentTypes": null, - "id": 12512, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12505, - "src": "1393:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "1379:20:24", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 12518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1379:34:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1361:52:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12521, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12509, - "src": "1431:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544", - "id": 12522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1440:37:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d290720a9b119bbeaf8124eb771e119cbea85a2f430cbb39a8fead2398528881", - "typeString": "literal_string \"TransferHelper: ETH_TRANSFER_FAILED\"" - }, - "value": "TransferHelper: ETH_TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d290720a9b119bbeaf8124eb771e119cbea85a2f430cbb39a8fead2398528881", - "typeString": "literal_string \"TransferHelper: ETH_TRANSFER_FAILED\"" - } - ], - "id": 12520, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1423:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1423:55:24", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12524, - "nodeType": "ExpressionStatement", - "src": "1423:55:24" - } - ] - }, - "documentation": null, - "id": 12526, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12506, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12503, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12526, - "src": "1318:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12502, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1318:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12505, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12526, - "src": "1330:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12504, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1330:4:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1317:24:24" - }, - "returnParameters": { - "id": 12507, - "nodeType": "ParameterList", - "parameters": [], - "src": "1351:0:24" - }, - "scope": 12527, - "src": "1293:192:24", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 12528, - "src": "137:1350:24" - } - ], - "src": "0:1488:24" - } - }, - "contracts/test/DeflatingERC20.sol": { - "id": 25, - "AST": { - "absolutePath": "contracts/test/DeflatingERC20.sol", - "exportedSymbols": { - "DeflatingERC20": [ - 12942 - ] - }, - "id": 12943, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12529, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:25" - }, - { - "absolutePath": "contracts/libraries/SafeMath.sol", - "file": "../libraries/SafeMath.sol", - "id": 12530, - "nodeType": "ImportDirective", - "scope": 12943, - "sourceUnit": 12368, - "src": "25:35:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 12942, - "linearizedBaseContracts": [ - 12942 - ], - "name": "DeflatingERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 12533, - "libraryName": { - "contractScope": null, - "id": 12531, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12367, - "src": "98:8:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$12367", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "92:24:25", - "typeName": { - "id": 12532, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "111:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "functionSelector": "06fdde03", - "id": 12536, - "mutability": "constant", - "name": "name", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12942, - "src": "122:52:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12534, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "122:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "4465666c6174696e67205465737420546f6b656e", - "id": 12535, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "152:22:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a", - "typeString": "literal_string \"Deflating Test Token\"" - }, - "value": "Deflating Test Token" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "95d89b41", - "id": 12539, - "mutability": "constant", - "name": "symbol", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12942, - "src": "180:37:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12537, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "180:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "445454", - "id": 12538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "212:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0862d7701ae2a04548299440d8e9bcde598aaa04f40d2b263697efe0cc6c0bb4", - "typeString": "literal_string \"DTT\"" - }, - "value": "DTT" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "313ce567", - "id": 12542, - "mutability": "constant", - "name": "decimals", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12942, - "src": "223:35:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 12540, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "223:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 12541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "256:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "18160ddd", - "id": 12544, - "mutability": "mutable", - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12942, - "src": "264:24:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12543, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "264:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "70a08231", - "id": 12548, - "mutability": "mutable", - "name": "balanceOf", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12942, - "src": "294:41:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 12547, - "keyType": { - "id": 12545, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "302:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "294:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 12546, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "313:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "dd62ed3e", - "id": 12554, - "mutability": "mutable", - "name": "allowance", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12942, - "src": "341:61:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 12553, - "keyType": { - "id": 12549, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "349:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "341:44:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 12552, - "keyType": { - "id": 12550, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "368:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "360:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 12551, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "379:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "3644e515", - "id": 12556, - "mutability": "mutable", - "name": "DOMAIN_SEPARATOR", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12942, - "src": "409:31:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12555, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "409:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "30adf81f", - "id": 12559, - "mutability": "constant", - "name": "PERMIT_TYPEHASH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12942, - "src": "550:108:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12557, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "550:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", - "id": 12558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "592:66:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", - "typeString": "int_const 4995...(69 digits omitted)...3241" - }, - "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7ecebe00", - "id": 12563, - "mutability": "mutable", - "name": "nonces", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12942, - "src": "664:38:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 12562, - "keyType": { - "id": 12560, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "672:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "664:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 12561, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "683:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 12571, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 12570, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12565, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12571, - "src": "724:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12564, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "724:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12567, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12571, - "src": "747:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "747:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12569, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12571, - "src": "772:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12568, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "772:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "723:60:25" - }, - "src": "709:75:25" - }, - { - "anonymous": false, - "documentation": null, - "id": 12579, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 12578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12573, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12579, - "src": "804:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12572, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "804:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12575, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12579, - "src": "826:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12574, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "826:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12577, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12579, - "src": "846:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12576, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "846:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "803:54:25" - }, - "src": "789:69:25" - }, - { - "body": { - "id": 12622, - "nodeType": "Block", - "src": "902:466:25", - "statements": [ - { - "assignments": [ - 12585 - ], - "declarations": [ - { - "constant": false, - "id": 12585, - "mutability": "mutable", - "name": "chainId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12622, - "src": "912:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12584, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12586, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "912:12:25" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "943:44:25", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "957:20:25", - "value": { - "arguments": [], - "functionName": { - "name": "chainid", - "nodeType": "YulIdentifier", - "src": "968:7:25" - }, - "nodeType": "YulFunctionCall", - "src": "968:9:25" - }, - "variableNames": [ - { - "name": "chainId", - "nodeType": "YulIdentifier", - "src": "957:7:25" - } - ] - } - ] - }, - "evmVersion": "istanbul", - "externalReferences": [ - { - "declaration": 12585, - "isOffset": false, - "isSlot": false, - "src": "957:7:25", - "valueSize": 1 - } - ], - "id": 12587, - "nodeType": "InlineAssembly", - "src": "934:53:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 12614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12588, - "name": "DOMAIN_SEPARATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12556, - "src": "996:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "id": 12593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1076:84:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", - "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" - }, - "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", - "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" - } - ], - "id": 12592, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1066:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1066:95:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12598, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12536, - "src": "1195:4:25", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 12597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1189:5:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 12596, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1189:5:25", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1189:11:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 12595, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1179:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1179:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 12604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1235:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6", - "typeString": "literal_string \"1\"" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6", - "typeString": "literal_string \"1\"" - } - ], - "id": 12603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1229:5:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 12602, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1229:5:25", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12605, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1229:10:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 12601, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1219:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1219:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 12607, - "name": "chainId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12585, - "src": "1258:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12610, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1291:4:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DeflatingERC20_$12942", - "typeString": "contract DeflatingERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DeflatingERC20_$12942", - "typeString": "contract DeflatingERC20" - } - ], - "id": 12609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1283:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1283:7:25", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1283:13:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 12590, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1038:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1038:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 12612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1038:272:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 12589, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1015:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1015:305:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "996:324:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 12615, - "nodeType": "ExpressionStatement", - "src": "996:324:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12617, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1336:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1336:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 12619, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12581, - "src": "1348:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12616, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12658, - "src": "1330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 12620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1330:31:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12621, - "nodeType": "ExpressionStatement", - "src": "1330:31:25" - } - ] - }, - "documentation": null, - "id": 12623, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12582, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12581, - "mutability": "mutable", - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12623, - "src": "876:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12580, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "876:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "875:19:25" - }, - "returnParameters": { - "id": 12583, - "nodeType": "ParameterList", - "parameters": [], - "src": "902:0:25" - }, - "scope": 12942, - "src": "864:504:25", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 12657, - "nodeType": "Block", - "src": "1422:149:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12630, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12544, - "src": "1432:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12633, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12627, - "src": "1462:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 12631, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12544, - "src": "1446:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "1446:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1446:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1432:36:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12636, - "nodeType": "ExpressionStatement", - "src": "1432:36:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 12646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12637, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12548, - "src": "1478:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12639, - "indexExpression": { - "argumentTypes": null, - "id": 12638, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12625, - "src": "1488:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12644, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12627, - "src": "1512:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12640, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12548, - "src": "1494:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12642, - "indexExpression": { - "argumentTypes": null, - "id": 12641, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12625, - "src": "1504:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1494:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "1494:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1494:24:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1478:40:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12647, - "nodeType": "ExpressionStatement", - "src": "1478:40:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 12651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1550:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 12650, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1542:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12649, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1542:7:25", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1542:10:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 12653, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12625, - "src": "1554:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12654, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12627, - "src": "1558:5:25", - "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" - } - ], - "id": 12648, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12579, - "src": "1533:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 12655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1533:31:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12656, - "nodeType": "EmitStatement", - "src": "1528:36:25" - } - ] - }, - "documentation": null, - "id": 12658, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12628, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12625, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12658, - "src": "1389:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12624, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1389:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12627, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12658, - "src": "1401:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12626, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1401:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1388:24:25" - }, - "returnParameters": { - "id": 12629, - "nodeType": "ParameterList", - "parameters": [], - "src": "1422:0:25" - }, - "scope": 12942, - "src": "1374:197:25", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12692, - "nodeType": "Block", - "src": "1627:155:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12665, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12548, - "src": "1637:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12667, - "indexExpression": { - "argumentTypes": null, - "id": 12666, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "1647:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1637:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12672, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "1675:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12668, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12548, - "src": "1655:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12670, - "indexExpression": { - "argumentTypes": null, - "id": 12669, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "1665:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1655:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "1655:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1655:26:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1637:44:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12675, - "nodeType": "ExpressionStatement", - "src": "1637:44:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 12681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12676, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12544, - "src": "1691:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12679, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "1721:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 12677, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12544, - "src": "1705:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "1705:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1705:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1691:36:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12682, - "nodeType": "ExpressionStatement", - "src": "1691:36:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12684, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "1751:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 12687, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1765:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 12686, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1757:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1757:7:25", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1757:10:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 12689, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "1769:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12683, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12579, - "src": "1742:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 12690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1742:33:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12691, - "nodeType": "EmitStatement", - "src": "1737:38:25" - } - ] - }, - "documentation": null, - "id": 12693, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12663, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12660, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12693, - "src": "1592:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12659, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1592:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12662, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12693, - "src": "1606:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12661, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1606:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1591:26:25" - }, - "returnParameters": { - "id": 12664, - "nodeType": "ParameterList", - "parameters": [], - "src": "1627:0:25" - }, - "scope": 12942, - "src": "1577:205:25", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12716, - "nodeType": "Block", - "src": "1858:96:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12702, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12554, - "src": "1868:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 12705, - "indexExpression": { - "argumentTypes": null, - "id": 12703, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12695, - "src": "1878:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1868:16:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12706, - "indexExpression": { - "argumentTypes": null, - "id": 12704, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12697, - "src": "1885:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1868:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 12707, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12699, - "src": "1896:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1868:33:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12709, - "nodeType": "ExpressionStatement", - "src": "1868:33:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12695, - "src": "1925:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12697, - "src": "1932:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12713, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12699, - "src": "1941:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12710, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12571, - "src": "1916:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 12714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1916:31:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12715, - "nodeType": "EmitStatement", - "src": "1911:36:25" - } - ] - }, - "documentation": null, - "id": 12717, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12700, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12695, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12717, - "src": "1806:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1806:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12697, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12717, - "src": "1821:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12696, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1821:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12699, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12717, - "src": "1838:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12698, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1838:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1805:44:25" - }, - "returnParameters": { - "id": 12701, - "nodeType": "ParameterList", - "parameters": [], - "src": "1858:0:25" - }, - "scope": 12942, - "src": "1788:166:25", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 12772, - "nodeType": "Block", - "src": "2025:303:25", - "statements": [ - { - "assignments": [ - 12727 - ], - "declarations": [ - { - "constant": false, - "id": 12727, - "mutability": "mutable", - "name": "burnAmount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12772, - "src": "2035:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12726, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2035:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12731, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12728, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12723, - "src": "2053:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 12729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2061:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "src": "2053:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2035:29:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12733, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12719, - "src": "2080:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12734, - "name": "burnAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12727, - "src": "2086:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12732, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12693, - "src": "2074:5:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 12735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2074:23:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12736, - "nodeType": "ExpressionStatement", - "src": "2074:23:25" - }, - { - "assignments": [ - 12738 - ], - "declarations": [ - { - "constant": false, - "id": 12738, - "mutability": "mutable", - "name": "transferAmount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12772, - "src": "2107:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12737, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2107:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12743, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12741, - "name": "burnAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12727, - "src": "2139:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 12739, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12723, - "src": "2129:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "2129:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2129:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2107:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 12753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12744, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12548, - "src": "2160:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12746, - "indexExpression": { - "argumentTypes": null, - "id": 12745, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12719, - "src": "2170:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2160:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12751, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12738, - "src": "2198:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12747, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12548, - "src": "2178:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12749, - "indexExpression": { - "argumentTypes": null, - "id": 12748, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12719, - "src": "2188:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2178:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "2178:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2178:35:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2160:53:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12754, - "nodeType": "ExpressionStatement", - "src": "2160:53:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 12764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12755, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12548, - "src": "2223:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12757, - "indexExpression": { - "argumentTypes": null, - "id": 12756, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12721, - "src": "2233:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2223:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12762, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12738, - "src": "2257:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12758, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12548, - "src": "2239:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12760, - "indexExpression": { - "argumentTypes": null, - "id": 12759, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12721, - "src": "2249:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2239:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "2239:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2239:33:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2223:49:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12765, - "nodeType": "ExpressionStatement", - "src": "2223:49:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12767, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12719, - "src": "2296:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12768, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12721, - "src": "2302:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12769, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12738, - "src": "2306:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12766, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12579, - "src": "2287:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 12770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2287:34:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12771, - "nodeType": "EmitStatement", - "src": "2282:39:25" - } - ] - }, - "documentation": null, - "id": 12773, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12724, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12719, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12773, - "src": "1979:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12718, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1979:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12721, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12773, - "src": "1993:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12720, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1993:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12723, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12773, - "src": "2005:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12722, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2005:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1978:38:25" - }, - "returnParameters": { - "id": 12725, - "nodeType": "ParameterList", - "parameters": [], - "src": "2025:0:25" - }, - "scope": 12942, - "src": "1960:368:25", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 12791, - "nodeType": "Block", - "src": "2404:74:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12783, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2423:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2423:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 12785, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12775, - "src": "2435:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12786, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12777, - "src": "2444:5:25", - "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" - } - ], - "id": 12782, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12717, - "src": "2414:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 12787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2414:36:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12788, - "nodeType": "ExpressionStatement", - "src": "2414:36:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 12789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2467:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 12781, - "id": 12790, - "nodeType": "Return", - "src": "2460:11:25" - } - ] - }, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 12792, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12778, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12775, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12792, - "src": "2351:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12774, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2351:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12777, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12792, - "src": "2368:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12776, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2368:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2350:29:25" - }, - "returnParameters": { - "id": 12781, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12780, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12792, - "src": "2398:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12779, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2398:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2397:6:25" - }, - "scope": 12942, - "src": "2334:144:25", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 12810, - "nodeType": "Block", - "src": "2550:70:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12802, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2570:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2570:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 12804, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12794, - "src": "2582:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12805, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12796, - "src": "2586:5:25", - "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" - } - ], - "id": 12801, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12773, - "src": "2560:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 12806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2560:32:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12807, - "nodeType": "ExpressionStatement", - "src": "2560:32:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 12808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2609:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 12800, - "id": 12809, - "nodeType": "Return", - "src": "2602:11:25" - } - ] - }, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 12811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12794, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12811, - "src": "2502:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12793, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2502:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12796, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12811, - "src": "2514:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12795, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2514:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2501:24:25" - }, - "returnParameters": { - "id": 12800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12799, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12811, - "src": "2544:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12798, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2544:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2543:6:25" - }, - "scope": 12942, - "src": "2484:136:25", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 12861, - "nodeType": "Block", - "src": "2710:211:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12822, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12554, - "src": "2724:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 12824, - "indexExpression": { - "argumentTypes": null, - "id": 12823, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12813, - "src": "2734:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2724:15:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12827, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12825, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2740:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2740:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2724:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "2760:2:25", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 12830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2761:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - ], - "id": 12829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2755:4:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 12828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2755:4:25", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2755:8:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2724:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12852, - "nodeType": "IfStatement", - "src": "2720:138:25", - "trueBody": { - "id": 12851, - "nodeType": "Block", - "src": "2765:93:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12834, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12554, - "src": "2779:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 12838, - "indexExpression": { - "argumentTypes": null, - "id": 12835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12813, - "src": "2789:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2779:15:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12839, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12836, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2795:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2795:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2779:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12847, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12817, - "src": "2841:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12840, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12554, - "src": "2809:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 12842, - "indexExpression": { - "argumentTypes": null, - "id": 12841, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12813, - "src": "2819:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2809:15:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12845, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12843, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2825:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2825:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2809:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "2809:31:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2809:38:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2779:68:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12850, - "nodeType": "ExpressionStatement", - "src": "2779:68:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12854, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12813, - "src": "2877:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12855, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12815, - "src": "2883:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12856, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12817, - "src": "2887:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12853, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12773, - "src": "2867:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 12857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2867:26:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12858, - "nodeType": "ExpressionStatement", - "src": "2867:26:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 12859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2910:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 12821, - "id": 12860, - "nodeType": "Return", - "src": "2903:11:25" - } - ] - }, - "documentation": null, - "functionSelector": "23b872dd", - "id": 12862, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12813, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12862, - "src": "2648:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2648:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12815, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12862, - "src": "2662:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12814, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2662:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12817, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12862, - "src": "2674:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12816, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2674:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2647:38:25" - }, - "returnParameters": { - "id": 12821, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12820, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12862, - "src": "2704:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12819, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2704:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2703:6:25" - }, - "scope": 12942, - "src": "2626:295:25", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 12940, - "nodeType": "Block", - "src": "3042:525:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12880, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12870, - "src": "3060:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12881, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "3072:5:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 12882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3072:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3060:27:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "45585049524544", - "id": 12884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3089:9:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a", - "typeString": "literal_string \"EXPIRED\"" - }, - "value": "EXPIRED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a", - "typeString": "literal_string \"EXPIRED\"" - } - ], - "id": 12879, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3052:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3052:47:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12886, - "nodeType": "ExpressionStatement", - "src": "3052:47:25" - }, - { - "assignments": [ - 12888 - ], - "declarations": [ - { - "constant": false, - "id": 12888, - "mutability": "mutable", - "name": "digest", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12940, - "src": "3109:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12887, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3109:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12910, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "1901", - "id": 12892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3183:10:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", - "typeString": "literal_string \"\u0019\u0001\"" - }, - "value": "\u0019\u0001" - }, - { - "argumentTypes": null, - "id": 12893, - "name": "DOMAIN_SEPARATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12556, - "src": "3211:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12897, - "name": "PERMIT_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12559, - "src": "3266:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 12898, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12864, - "src": "3283:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12899, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12866, - "src": "3290:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12900, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12868, - "src": "3299:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3306:15:25", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12901, - "name": "nonces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12563, - "src": "3306:6:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12903, - "indexExpression": { - "argumentTypes": null, - "id": 12902, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12864, - "src": "3313:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3306:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12905, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12870, - "src": "3323:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 12895, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3255:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12896, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3255:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 12906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3255:77:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 12894, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "3245:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3245:88:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", - "typeString": "literal_string \"\u0019\u0001\"" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 12890, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3149:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3149:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 12908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3149:198:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 12889, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "3126:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3126:231:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3109:248:25" - }, - { - "assignments": [ - 12912 - ], - "declarations": [ - { - "constant": false, - "id": 12912, - "mutability": "mutable", - "name": "recoveredAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12940, - "src": "3367:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12911, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3367:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12919, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12914, - "name": "digest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12888, - "src": "3404:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 12915, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12872, - "src": "3412:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 12916, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12874, - "src": "3415:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 12917, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12876, - "src": "3418:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 12913, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -6, - "src": "3394:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 12918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3394:26:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3367:53:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12921, - "name": "recoveredAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12912, - "src": "3438:16:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 12924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3466:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 12923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3458:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3458:7:25", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 12925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3458:10:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3438:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12927, - "name": "recoveredAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12912, - "src": "3472:16:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 12928, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12864, - "src": "3492:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3472:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3438:59:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "494e56414c49445f5349474e4154555245", - "id": 12931, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3499:19:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88", - "typeString": "literal_string \"INVALID_SIGNATURE\"" - }, - "value": "INVALID_SIGNATURE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88", - "typeString": "literal_string \"INVALID_SIGNATURE\"" - } - ], - "id": 12920, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3430:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3430:89:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12933, - "nodeType": "ExpressionStatement", - "src": "3430:89:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12935, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12864, - "src": "3538:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12936, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12866, - "src": "3545:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12937, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12868, - "src": "3554:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12934, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12717, - "src": "3529:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 12938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3529:31:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12939, - "nodeType": "ExpressionStatement", - "src": "3529:31:25" - } - ] - }, - "documentation": null, - "functionSelector": "d505accf", - "id": 12941, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "permit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12877, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12864, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12941, - "src": "2943:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12863, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2943:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12866, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12941, - "src": "2958:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12865, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2958:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12868, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12941, - "src": "2975:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12867, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2975:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12870, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12941, - "src": "2987:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12869, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2987:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12872, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12941, - "src": "3002:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 12871, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3002:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12874, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12941, - "src": "3011:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12873, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3011:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12876, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12941, - "src": "3022:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12875, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3022:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2942:90:25" - }, - "returnParameters": { - "id": 12878, - "nodeType": "ParameterList", - "parameters": [], - "src": "3042:0:25" - }, - "scope": 12942, - "src": "2927:640:25", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 12943, - "src": "62:3507:25" - } - ], - "src": "0:3570:25" - } - }, - "contracts/test/ERC20.sol": { - "id": 26, - "AST": { - "absolutePath": "contracts/test/ERC20.sol", - "exportedSymbols": { - "ERC20": [ - 13339 - ] - }, - "id": 13340, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12944, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:26" - }, - { - "absolutePath": "contracts/libraries/SafeMath.sol", - "file": "../libraries/SafeMath.sol", - "id": 12945, - "nodeType": "ImportDirective", - "scope": 13340, - "sourceUnit": 12368, - "src": "25:35:26", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 13339, - "linearizedBaseContracts": [ - 13339 - ], - "name": "ERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 12948, - "libraryName": { - "contractScope": null, - "id": 12946, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12367, - "src": "89:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$12367", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "83:24:26", - "typeName": { - "id": 12947, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "102:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "functionSelector": "06fdde03", - "id": 12951, - "mutability": "constant", - "name": "name", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13339, - "src": "113:42:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12949, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "113:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "5465737420546f6b656e", - "id": 12950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "143:12:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2", - "typeString": "literal_string \"Test Token\"" - }, - "value": "Test Token" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "95d89b41", - "id": 12954, - "mutability": "constant", - "name": "symbol", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13339, - "src": "161:36:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12952, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "161:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "5454", - "id": 12953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "193:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2ac50a34f0da9360cfd7e529a34ccdaa61aa98e2a0ac0928bf981af8e73352ba", - "typeString": "literal_string \"TT\"" - }, - "value": "TT" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "313ce567", - "id": 12957, - "mutability": "constant", - "name": "decimals", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13339, - "src": "203:35:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 12955, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "203:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 12956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "236:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "18160ddd", - "id": 12959, - "mutability": "mutable", - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13339, - "src": "244:24:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12958, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "244:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "70a08231", - "id": 12963, - "mutability": "mutable", - "name": "balanceOf", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13339, - "src": "274:41:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 12962, - "keyType": { - "id": 12960, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "282:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "274:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 12961, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "293:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "dd62ed3e", - "id": 12969, - "mutability": "mutable", - "name": "allowance", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13339, - "src": "321:61:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 12968, - "keyType": { - "id": 12964, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "329:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "321:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 12967, - "keyType": { - "id": 12965, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "348:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "340:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 12966, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "359:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "3644e515", - "id": 12971, - "mutability": "mutable", - "name": "DOMAIN_SEPARATOR", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13339, - "src": "389:31:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12970, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "389:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "30adf81f", - "id": 12974, - "mutability": "constant", - "name": "PERMIT_TYPEHASH", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13339, - "src": "530:108:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12972, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "530:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", - "id": 12973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "572:66:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", - "typeString": "int_const 4995...(69 digits omitted)...3241" - }, - "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7ecebe00", - "id": 12978, - "mutability": "mutable", - "name": "nonces", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13339, - "src": "644:38:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 12977, - "keyType": { - "id": 12975, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "652:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "644:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 12976, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "663:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 12986, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 12985, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12980, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12986, - "src": "704:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12979, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "704:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12982, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12986, - "src": "727:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12981, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "727:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12984, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12986, - "src": "752:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12983, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "752:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "703:60:26" - }, - "src": "689:75:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 12994, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 12993, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12988, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12994, - "src": "784:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12987, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "784:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12990, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12994, - "src": "806:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12989, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "806:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12992, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 12994, - "src": "826:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12991, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "826:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "783:54:26" - }, - "src": "769:69:26" - }, - { - "body": { - "id": 13037, - "nodeType": "Block", - "src": "882:466:26", - "statements": [ - { - "assignments": [ - 13000 - ], - "declarations": [ - { - "constant": false, - "id": 13000, - "mutability": "mutable", - "name": "chainId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13037, - "src": "892:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12999, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "892:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "892:12:26" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "923:44:26", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "937:20:26", - "value": { - "arguments": [], - "functionName": { - "name": "chainid", - "nodeType": "YulIdentifier", - "src": "948:7:26" - }, - "nodeType": "YulFunctionCall", - "src": "948:9:26" - }, - "variableNames": [ - { - "name": "chainId", - "nodeType": "YulIdentifier", - "src": "937:7:26" - } - ] - } - ] - }, - "evmVersion": "istanbul", - "externalReferences": [ - { - "declaration": 13000, - "isOffset": false, - "isSlot": false, - "src": "937:7:26", - "valueSize": 1 - } - ], - "id": 13002, - "nodeType": "InlineAssembly", - "src": "914:53:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 13029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 13003, - "name": "DOMAIN_SEPARATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12971, - "src": "976:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "id": 13008, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1056:84:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", - "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" - }, - "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", - "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" - } - ], - "id": 13007, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1046:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13009, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1046:95:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13013, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12951, - "src": "1175:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 13012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1169:5:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 13011, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1169:5:26", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13014, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1169:11:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 13010, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1159:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1159:22:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 13019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1215:3:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6", - "typeString": "literal_string \"1\"" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6", - "typeString": "literal_string \"1\"" - } - ], - "id": 13018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1209:5:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 13017, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1209:5:26", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13020, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1209:10:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 13016, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1199:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1199:21:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 13022, - "name": "chainId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13000, - "src": "1238:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13025, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1271:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$13339", - "typeString": "contract ERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20_$13339", - "typeString": "contract ERC20" - } - ], - "id": 13024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1263:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 13023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1263:7:26", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1263:13:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 13005, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1018:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1018:10:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 13027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1018:272:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 13004, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "995:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "995:305:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "976:324:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 13030, - "nodeType": "ExpressionStatement", - "src": "976:324:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13032, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1316:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1316:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 13034, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12996, - "src": "1328:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13031, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13073, - "src": "1310:5:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 13035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1310:31:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13036, - "nodeType": "ExpressionStatement", - "src": "1310:31:26" - } - ] - }, - "documentation": null, - "id": 13038, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 12997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12996, - "mutability": "mutable", - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13038, - "src": "856:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12995, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "856:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "855:19:26" - }, - "returnParameters": { - "id": 12998, - "nodeType": "ParameterList", - "parameters": [], - "src": "882:0:26" - }, - "scope": 13339, - "src": "844:504:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 13072, - "nodeType": "Block", - "src": "1402:149:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 13050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 13045, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12959, - "src": "1412:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13048, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "1442:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12959, - "src": "1426:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "1426:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1426:22:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1412:36:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13051, - "nodeType": "ExpressionStatement", - "src": "1412:36:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 13061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13052, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12963, - "src": "1458:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13054, - "indexExpression": { - "argumentTypes": null, - "id": 13053, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13040, - "src": "1468:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1458:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13059, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "1492:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13055, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12963, - "src": "1474:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13057, - "indexExpression": { - "argumentTypes": null, - "id": 13056, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13040, - "src": "1484:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1474:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "1474:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1474:24:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1458:40:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13062, - "nodeType": "ExpressionStatement", - "src": "1458:40:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 13066, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1530:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 13065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1522:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 13064, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1522:7:26", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1522:10:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 13068, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13040, - "src": "1534:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13069, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "1538:5:26", - "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" - } - ], - "id": 13063, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12994, - "src": "1513:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1513:31:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13071, - "nodeType": "EmitStatement", - "src": "1508:36:26" - } - ] - }, - "documentation": null, - "id": 13073, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13040, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13073, - "src": "1369:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13039, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1369:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13042, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13073, - "src": "1381:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13041, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1381:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1368:24:26" - }, - "returnParameters": { - "id": 13044, - "nodeType": "ParameterList", - "parameters": [], - "src": "1402:0:26" - }, - "scope": 13339, - "src": "1354:197:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13107, - "nodeType": "Block", - "src": "1607:155:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 13089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13080, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12963, - "src": "1617:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13082, - "indexExpression": { - "argumentTypes": null, - "id": 13081, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13075, - "src": "1627:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1617:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13087, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13077, - "src": "1655:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13083, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12963, - "src": "1635:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13085, - "indexExpression": { - "argumentTypes": null, - "id": 13084, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13075, - "src": "1645:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1635:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "1635:19:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1635:26:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1617:44:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13090, - "nodeType": "ExpressionStatement", - "src": "1617:44:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 13096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 13091, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12959, - "src": "1671:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13094, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13077, - "src": "1701:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13092, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12959, - "src": "1685:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "1685:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1685:22:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1671:36:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13097, - "nodeType": "ExpressionStatement", - "src": "1671:36:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13099, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13075, - "src": "1731:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 13102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1745:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 13101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1737:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 13100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1737:7:26", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1737:10:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 13104, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13077, - "src": "1749:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13098, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12994, - "src": "1722:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1722:33:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13106, - "nodeType": "EmitStatement", - "src": "1717:38:26" - } - ] - }, - "documentation": null, - "id": 13108, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13075, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13108, - "src": "1572:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13074, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1572:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13077, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13108, - "src": "1586:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13076, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1586:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1571:26:26" - }, - "returnParameters": { - "id": 13079, - "nodeType": "ParameterList", - "parameters": [], - "src": "1607:0:26" - }, - "scope": 13339, - "src": "1557:205:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13131, - "nodeType": "Block", - "src": "1838:96:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 13123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13117, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12969, - "src": "1848:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 13120, - "indexExpression": { - "argumentTypes": null, - "id": 13118, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13110, - "src": "1858:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1848:16:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13121, - "indexExpression": { - "argumentTypes": null, - "id": 13119, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13112, - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1848:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 13122, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13114, - "src": "1876:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1848:33:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13124, - "nodeType": "ExpressionStatement", - "src": "1848:33:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13126, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13110, - "src": "1905:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13127, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13112, - "src": "1912:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13128, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13114, - "src": "1921:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13125, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12986, - "src": "1896:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1896:31:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13130, - "nodeType": "EmitStatement", - "src": "1891:36:26" - } - ] - }, - "documentation": null, - "id": 13132, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13110, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13132, - "src": "1786:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13109, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1786:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13112, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13132, - "src": "1801:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1801:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13114, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13132, - "src": "1818:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13113, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1818:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1785:44:26" - }, - "returnParameters": { - "id": 13116, - "nodeType": "ParameterList", - "parameters": [], - "src": "1838:0:26" - }, - "scope": 13339, - "src": "1768:166:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 13169, - "nodeType": "Block", - "src": "2005:151:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 13150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13141, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12963, - "src": "2015:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13143, - "indexExpression": { - "argumentTypes": null, - "id": 13142, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13134, - "src": "2025:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2015:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13148, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13138, - "src": "2053:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13144, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12963, - "src": "2033:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13146, - "indexExpression": { - "argumentTypes": null, - "id": 13145, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13134, - "src": "2043:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2033:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "2033:19:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2033:26:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2015:44:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13151, - "nodeType": "ExpressionStatement", - "src": "2015:44:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 13161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13152, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12963, - "src": "2069:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13154, - "indexExpression": { - "argumentTypes": null, - "id": 13153, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13136, - "src": "2079:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2069:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13159, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13138, - "src": "2103:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13155, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12963, - "src": "2085:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13157, - "indexExpression": { - "argumentTypes": null, - "id": 13156, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13136, - "src": "2095:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2085:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 12316, - "src": "2085:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2085:24:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2069:40:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13162, - "nodeType": "ExpressionStatement", - "src": "2069:40:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13164, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13134, - "src": "2133:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13165, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13136, - "src": "2139:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13166, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13138, - "src": "2143:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13163, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12994, - "src": "2124:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2124:25:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13168, - "nodeType": "EmitStatement", - "src": "2119:30:26" - } - ] - }, - "documentation": null, - "id": 13170, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13134, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13170, - "src": "1959:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13133, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1959:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13136, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13170, - "src": "1973:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1973:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13138, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13170, - "src": "1985:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13137, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1985:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1958:38:26" - }, - "returnParameters": { - "id": 13140, - "nodeType": "ParameterList", - "parameters": [], - "src": "2005:0:26" - }, - "scope": 13339, - "src": "1940:216:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 13188, - "nodeType": "Block", - "src": "2232:74:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13180, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2251:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2251:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 13182, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13172, - "src": "2263:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13183, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13174, - "src": "2272:5:26", - "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" - } - ], - "id": 13179, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13132, - "src": "2242:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2242:36:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13185, - "nodeType": "ExpressionStatement", - "src": "2242:36:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 13186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2295:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 13178, - "id": 13187, - "nodeType": "Return", - "src": "2288:11:26" - } - ] - }, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 13189, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13172, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13189, - "src": "2179:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13171, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2179:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13174, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13189, - "src": "2196:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13173, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2196:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2178:29:26" - }, - "returnParameters": { - "id": 13178, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13177, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13189, - "src": "2226:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13176, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2226:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2225:6:26" - }, - "scope": 13339, - "src": "2162:144:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 13207, - "nodeType": "Block", - "src": "2378:70:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13199, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2398:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2398:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 13201, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13191, - "src": "2410:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13202, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13193, - "src": "2414:5:26", - "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" - } - ], - "id": 13198, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13170, - "src": "2388:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2388:32:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13204, - "nodeType": "ExpressionStatement", - "src": "2388:32:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 13205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2437:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 13197, - "id": 13206, - "nodeType": "Return", - "src": "2430:11:26" - } - ] - }, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 13208, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13191, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13208, - "src": "2330:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13190, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2330:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13193, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13208, - "src": "2342:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13192, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2342:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2329:24:26" - }, - "returnParameters": { - "id": 13197, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13196, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13208, - "src": "2372:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13195, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2372:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2371:6:26" - }, - "scope": 13339, - "src": "2312:136:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 13258, - "nodeType": "Block", - "src": "2538:211:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13219, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12969, - "src": "2552:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 13221, - "indexExpression": { - "argumentTypes": null, - "id": 13220, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13210, - "src": "2562:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2552:15:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13224, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13222, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2568:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2568:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2552:27:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "2588:2:26", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 13227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2589:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - ], - "id": 13226, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2583:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 13225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2583:4:26", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13229, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2583:8:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2552:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 13249, - "nodeType": "IfStatement", - "src": "2548:138:26", - "trueBody": { - "id": 13248, - "nodeType": "Block", - "src": "2593:93:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 13246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13231, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12969, - "src": "2607:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 13235, - "indexExpression": { - "argumentTypes": null, - "id": 13232, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13210, - "src": "2617:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2607:15:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13236, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13233, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2623:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2623:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2607:27:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13244, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13214, - "src": "2669:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13237, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12969, - "src": "2637:9:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 13239, - "indexExpression": { - "argumentTypes": null, - "id": 13238, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13210, - "src": "2647:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2637:15:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13242, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13240, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2653:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2653:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2637:27:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 12338, - "src": "2637:31:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2637:38:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2607:68:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13247, - "nodeType": "ExpressionStatement", - "src": "2607:68:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13251, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13210, - "src": "2705:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13252, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13212, - "src": "2711:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13253, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13214, - "src": "2715:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13250, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13170, - "src": "2695:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2695:26:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13255, - "nodeType": "ExpressionStatement", - "src": "2695:26:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 13256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2738:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 13218, - "id": 13257, - "nodeType": "Return", - "src": "2731:11:26" - } - ] - }, - "documentation": null, - "functionSelector": "23b872dd", - "id": 13259, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13210, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13259, - "src": "2476:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13209, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2476:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13212, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13259, - "src": "2490:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13211, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2490:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13214, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13259, - "src": "2502:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2502:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2475:38:26" - }, - "returnParameters": { - "id": 13218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13217, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13259, - "src": "2532:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13216, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2532:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2531:6:26" - }, - "scope": 13339, - "src": "2454:295:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 13337, - "nodeType": "Block", - "src": "2870:525:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13277, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13267, - "src": "2888:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13278, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "2900:5:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 13279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2900:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2888:27:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "45585049524544", - "id": 13281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2917:9:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a", - "typeString": "literal_string \"EXPIRED\"" - }, - "value": "EXPIRED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a", - "typeString": "literal_string \"EXPIRED\"" - } - ], - "id": 13276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2880:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2880:47:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13283, - "nodeType": "ExpressionStatement", - "src": "2880:47:26" - }, - { - "assignments": [ - 13285 - ], - "declarations": [ - { - "constant": false, - "id": 13285, - "mutability": "mutable", - "name": "digest", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13337, - "src": "2937:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13284, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2937:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13307, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "1901", - "id": 13289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3011:10:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", - "typeString": "literal_string \"\u0019\u0001\"" - }, - "value": "\u0019\u0001" - }, - { - "argumentTypes": null, - "id": 13290, - "name": "DOMAIN_SEPARATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12971, - "src": "3039:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13294, - "name": "PERMIT_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12974, - "src": "3094:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 13295, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13261, - "src": "3111:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13296, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13263, - "src": "3118:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13297, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13265, - "src": "3127:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3134:15:26", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13298, - "name": "nonces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12978, - "src": "3134:6:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13300, - "indexExpression": { - "argumentTypes": null, - "id": 13299, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13261, - "src": "3141:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3134:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13302, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13267, - "src": "3151:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13292, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13293, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 13303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3083:77:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 13291, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "3073:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3073:88:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", - "typeString": "literal_string \"\u0019\u0001\"" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 13287, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2977:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13288, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2977:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 13305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2977:198:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 13286, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "2954:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2954:231:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2937:248:26" - }, - { - "assignments": [ - 13309 - ], - "declarations": [ - { - "constant": false, - "id": 13309, - "mutability": "mutable", - "name": "recoveredAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13337, - "src": "3195:24:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13308, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3195:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13316, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13311, - "name": "digest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13285, - "src": "3232:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 13312, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13269, - "src": "3240:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 13313, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13271, - "src": "3243:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 13314, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13273, - "src": "3246:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 13310, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -6, - "src": "3222:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 13315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3222:26:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3195:53:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 13327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13318, - "name": "recoveredAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13309, - "src": "3266:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 13321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3294:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 13320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3286:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 13319, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3286:7:26", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3286:10:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3266:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13324, - "name": "recoveredAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13309, - "src": "3300:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 13325, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13261, - "src": "3320:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3300:25:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3266:59:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "494e56414c49445f5349474e4154555245", - "id": 13328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3327:19:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88", - "typeString": "literal_string \"INVALID_SIGNATURE\"" - }, - "value": "INVALID_SIGNATURE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88", - "typeString": "literal_string \"INVALID_SIGNATURE\"" - } - ], - "id": 13317, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3258:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3258:89:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13330, - "nodeType": "ExpressionStatement", - "src": "3258:89:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13332, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13261, - "src": "3366:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13333, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13263, - "src": "3373:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13334, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13265, - "src": "3382:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13331, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13132, - "src": "3357:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3357:31:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13336, - "nodeType": "ExpressionStatement", - "src": "3357:31:26" - } - ] - }, - "documentation": null, - "functionSelector": "d505accf", - "id": 13338, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "permit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13274, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13261, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13338, - "src": "2771:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13260, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2771:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13263, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13338, - "src": "2786:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13262, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2786:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13265, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13338, - "src": "2803:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13264, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2803:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13267, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13338, - "src": "2815:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13266, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2815:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13269, - "mutability": "mutable", - "name": "v", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13338, - "src": "2830:7:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 13268, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2830:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13271, - "mutability": "mutable", - "name": "r", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13338, - "src": "2839:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13270, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2839:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13273, - "mutability": "mutable", - "name": "s", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13338, - "src": "2850:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13272, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2850:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2770:90:26" - }, - "returnParameters": { - "id": 13275, - "nodeType": "ParameterList", - "parameters": [], - "src": "2870:0:26" - }, - "scope": 13339, - "src": "2755:640:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 13340, - "src": "62:3335:26" - } - ], - "src": "0:3398:26" - } - }, - "contracts/test/RouterEventEmitter.sol": { - "id": 27, - "AST": { - "absolutePath": "contracts/test/RouterEventEmitter.sol", - "exportedSymbols": { - "RouterEventEmitter": [ - 13664 - ] - }, - "id": 13665, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 13341, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "0:23:27" - }, - { - "absolutePath": "contracts/interfaces/IDXswapRouter.sol", - "file": "../interfaces/IDXswapRouter.sol", - "id": 13342, - "nodeType": "ImportDirective", - "scope": 13665, - "sourceUnit": 10760, - "src": "25:41:27", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 13664, - "linearizedBaseContracts": [ - 13664 - ], - "name": "RouterEventEmitter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 13347, - "name": "Amounts", - "nodeType": "EventDefinition", - "parameters": { - "id": 13346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13345, - "indexed": false, - "mutability": "mutable", - "name": "amounts", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13347, - "src": "116:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 13343, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "116:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13344, - "length": null, - "nodeType": "ArrayTypeName", - "src": "116:6:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "115:16:27" - }, - "src": "102:30:27" - }, - { - "body": { - "id": 13350, - "nodeType": "Block", - "src": "165:2:27", - "statements": [] - }, - "documentation": null, - "id": 13351, - "implemented": true, - "kind": "receive", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13348, - "nodeType": "ParameterList", - "parameters": [], - "src": "145:2:27" - }, - "returnParameters": { - "id": 13349, - "nodeType": "ParameterList", - "parameters": [], - "src": "165:0:27" - }, - "scope": 13664, - "src": "138:29:27", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 13403, - "nodeType": "Block", - "src": "372:306:27", - "statements": [ - { - "assignments": [ - 13368, - 13370 - ], - "declarations": [ - { - "constant": false, - "id": 13368, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13403, - "src": "383:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13367, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "383:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13370, - "mutability": "mutable", - "name": "returnData", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13403, - "src": "397:23:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 13369, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "397:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13387, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13376, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13353, - "src": "494:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13375, - "name": "IDXswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10759, - "src": "480:13:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapRouter_$10759_$", - "typeString": "type(contract IDXswapRouter)" - } - }, - "id": 13377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "480:21:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 13378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapExactTokensForTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 10536, - "src": "480:46:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)" - } - }, - "id": 13379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "480:55:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 13380, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13355, - "src": "537:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13381, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13357, - "src": "547:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13382, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13360, - "src": "561:4:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 13383, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13362, - "src": "567:2:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13384, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13364, - "src": "571:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13373, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "444:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "444:22:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 13385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "444:145:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 13371, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13353, - "src": "424:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "424:19:27", - "typeDescriptions": { - "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) returns (bool,bytes memory)" - } - }, - "id": 13386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "424:166:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "382:208:27" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13389, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13368, - "src": "607:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 13388, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "600:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "600:15:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13391, - "nodeType": "ExpressionStatement", - "src": "600:15:27" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13395, - "name": "returnData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13370, - "src": "649:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "662:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 13396, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "662:4:27", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13398, - "indexExpression": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "662:6:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "id": 13399, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "661:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - ], - "expression": { - "argumentTypes": null, - "id": 13393, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "638:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "638:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 13400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "638:32:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 13392, - "name": "Amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13347, - "src": "630:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256[] memory)" - } - }, - "id": 13401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "630:41:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13402, - "nodeType": "EmitStatement", - "src": "625:46:27" - } - ] - }, - "documentation": null, - "functionSelector": "375734d9", - "id": 13404, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13353, - "mutability": "mutable", - "name": "router", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13404, - "src": "216:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "216:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13355, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13404, - "src": "240:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13354, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "240:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13357, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13404, - "src": "263:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13356, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "263:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13360, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13404, - "src": "290:23:27", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 13358, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "290:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13359, - "length": null, - "nodeType": "ArrayTypeName", - "src": "290:9:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13362, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13404, - "src": "323:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "323:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13364, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13404, - "src": "343:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13363, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "343:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "206:156:27" - }, - "returnParameters": { - "id": 13366, - "nodeType": "ParameterList", - "parameters": [], - "src": "372:0:27" - }, - "scope": 13664, - "src": "173:505:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 13456, - "nodeType": "Block", - "src": "883:306:27", - "statements": [ - { - "assignments": [ - 13421, - 13423 - ], - "declarations": [ - { - "constant": false, - "id": 13421, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13456, - "src": "894:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13420, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "894:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13423, - "mutability": "mutable", - "name": "returnData", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13456, - "src": "908:23:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 13422, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "908:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13440, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13429, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13406, - "src": "1005:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13428, - "name": "IDXswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10759, - "src": "991:13:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapRouter_$10759_$", - "typeString": "type(contract IDXswapRouter)" - } - }, - "id": 13430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "991:21:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 13431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapTokensForExactTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 10553, - "src": "991:46:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)" - } - }, - "id": 13432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "991:55:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 13433, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13408, - "src": "1048:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13434, - "name": "amountInMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13410, - "src": "1059:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13435, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13413, - "src": "1072:4:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 13436, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13415, - "src": "1078:2:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13437, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13417, - "src": "1082:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13426, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "955:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "955:22:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 13438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "955:145:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 13424, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13406, - "src": "935:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "935:19:27", - "typeDescriptions": { - "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) returns (bool,bytes memory)" - } - }, - "id": 13439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "935:166:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "893:208:27" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13442, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13421, - "src": "1118:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 13441, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "1111:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1111:15:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13444, - "nodeType": "ExpressionStatement", - "src": "1111:15:27" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13448, - "name": "returnData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13423, - "src": "1160:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1173:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 13449, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1173:4:27", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13451, - "indexExpression": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1173:6:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "id": 13452, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1172:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - ], - "expression": { - "argumentTypes": null, - "id": 13446, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1149:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1149:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 13453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1149:32:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 13445, - "name": "Amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13347, - "src": "1141:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256[] memory)" - } - }, - "id": 13454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1141:41:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13455, - "nodeType": "EmitStatement", - "src": "1136:46:27" - } - ] - }, - "documentation": null, - "functionSelector": "22b58410", - "id": 13457, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "swapTokensForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13406, - "mutability": "mutable", - "name": "router", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13457, - "src": "727:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "727:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13408, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13457, - "src": "751:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13407, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "751:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13410, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13457, - "src": "775:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13409, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "775:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13413, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13457, - "src": "801:23:27", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 13411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "801:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13412, - "length": null, - "nodeType": "ArrayTypeName", - "src": "801:9:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13415, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13457, - "src": "834:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13414, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "834:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13417, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13457, - "src": "854:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13416, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "854:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "717:156:27" - }, - "returnParameters": { - "id": 13419, - "nodeType": "ParameterList", - "parameters": [], - "src": "883:0:27" - }, - "scope": 13664, - "src": "684:505:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 13506, - "nodeType": "Block", - "src": "1376:293:27", - "statements": [ - { - "assignments": [ - 13472, - 13474 - ], - "declarations": [ - { - "constant": false, - "id": 13472, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13506, - "src": "1387:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13471, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1387:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13474, - "mutability": "mutable", - "name": "returnData", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13506, - "src": "1401:23:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 13473, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1401:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13490, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13480, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13459, - "src": "1498:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13479, - "name": "IDXswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10759, - "src": "1484:13:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapRouter_$10759_$", - "typeString": "type(contract IDXswapRouter)" - } - }, - "id": 13481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1484:21:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 13482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapExactETHForTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 10568, - "src": "1484:43:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,address[] memory,address,uint256) payable external returns (uint256[] memory)" - } - }, - "id": 13483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1484:52:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 13484, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13461, - "src": "1538:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13485, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13464, - "src": "1552:4:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 13486, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13466, - "src": "1558:2:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13487, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13468, - "src": "1562:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13477, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1448:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1448:22:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 13488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1448:132:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 13475, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13459, - "src": "1428:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1428:19:27", - "typeDescriptions": { - "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) returns (bool,bytes memory)" - } - }, - "id": 13489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1428:153:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1386:195:27" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13492, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13472, - "src": "1598:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 13491, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "1591:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1591:15:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13494, - "nodeType": "ExpressionStatement", - "src": "1591:15:27" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13498, - "name": "returnData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13474, - "src": "1640:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1653:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 13499, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1653:4:27", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13501, - "indexExpression": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1653:6:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "id": 13502, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1652:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - ], - "expression": { - "argumentTypes": null, - "id": 13496, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1629:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1629:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 13503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1629:32:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 13495, - "name": "Amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13347, - "src": "1621:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256[] memory)" - } - }, - "id": 13504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1621:41:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13505, - "nodeType": "EmitStatement", - "src": "1616:46:27" - } - ] - }, - "documentation": null, - "functionSelector": "fde1adda", - "id": 13507, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "swapExactETHForTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13459, - "mutability": "mutable", - "name": "router", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13507, - "src": "1235:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1235:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13461, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13507, - "src": "1259:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13460, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1259:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13464, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13507, - "src": "1286:23:27", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 13462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1286:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13463, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1286:9:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13466, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13507, - "src": "1319:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1319:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13468, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13507, - "src": "1339:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1339:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1225:133:27" - }, - "returnParameters": { - "id": 13470, - "nodeType": "ParameterList", - "parameters": [], - "src": "1376:0:27" - }, - "scope": 13664, - "src": "1195:474:27", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 13559, - "nodeType": "Block", - "src": "1871:303:27", - "statements": [ - { - "assignments": [ - 13524, - 13526 - ], - "declarations": [ - { - "constant": false, - "id": 13524, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13559, - "src": "1882:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13523, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1882:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13526, - "mutability": "mutable", - "name": "returnData", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13559, - "src": "1896:23:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 13525, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1896:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13543, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13532, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13509, - "src": "1993:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13531, - "name": "IDXswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10759, - "src": "1979:13:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapRouter_$10759_$", - "typeString": "type(contract IDXswapRouter)" - } - }, - "id": 13533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1979:21:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 13534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapTokensForExactETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 10585, - "src": "1979:43:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)" - } - }, - "id": 13535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1979:52:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 13536, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13511, - "src": "2033:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13537, - "name": "amountInMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13513, - "src": "2044:11:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13538, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13516, - "src": "2057:4:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 13539, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13518, - "src": "2063:2:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13540, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13520, - "src": "2067:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13529, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1943:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1943:22:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 13541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1943:142:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 13527, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13509, - "src": "1923:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1923:19:27", - "typeDescriptions": { - "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) returns (bool,bytes memory)" - } - }, - "id": 13542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1923:163:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1881:205:27" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13545, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13524, - "src": "2103:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 13544, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "2096:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2096:15:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13547, - "nodeType": "ExpressionStatement", - "src": "2096:15:27" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13551, - "name": "returnData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13526, - "src": "2145:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2158:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 13552, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2158:4:27", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13554, - "indexExpression": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2158:6:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "id": 13555, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2157:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - ], - "expression": { - "argumentTypes": null, - "id": 13549, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2134:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2134:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 13556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2134:32:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 13548, - "name": "Amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13347, - "src": "2126:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256[] memory)" - } - }, - "id": 13557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2126:41:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13558, - "nodeType": "EmitStatement", - "src": "2121:46:27" - } - ] - }, - "documentation": null, - "functionSelector": "fa3219d5", - "id": 13560, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "swapTokensForExactETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13521, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13509, - "mutability": "mutable", - "name": "router", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13560, - "src": "1715:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1715:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13511, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13560, - "src": "1739:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13510, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1739:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13513, - "mutability": "mutable", - "name": "amountInMax", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13560, - "src": "1763:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13512, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1763:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13516, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13560, - "src": "1789:23:27", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 13514, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1789:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13515, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1789:9:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13518, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13560, - "src": "1822:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1822:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13520, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13560, - "src": "1842:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13519, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1842:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1705:156:27" - }, - "returnParameters": { - "id": 13522, - "nodeType": "ParameterList", - "parameters": [], - "src": "1871:0:27" - }, - "scope": 13664, - "src": "1675:499:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 13612, - "nodeType": "Block", - "src": "2376:303:27", - "statements": [ - { - "assignments": [ - 13577, - 13579 - ], - "declarations": [ - { - "constant": false, - "id": 13577, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13612, - "src": "2387:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13576, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2387:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13579, - "mutability": "mutable", - "name": "returnData", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13612, - "src": "2401:23:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 13578, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2401:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13596, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13585, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13562, - "src": "2498:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13584, - "name": "IDXswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10759, - "src": "2484:13:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapRouter_$10759_$", - "typeString": "type(contract IDXswapRouter)" - } - }, - "id": 13586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2484:21:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 13587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapExactTokensForETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 10602, - "src": "2484:43:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)" - } - }, - "id": 13588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2484:52:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 13589, - "name": "amountIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13564, - "src": "2538:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13590, - "name": "amountOutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13566, - "src": "2548:12:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13591, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13569, - "src": "2562:4:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 13592, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13571, - "src": "2568:2:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13593, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13573, - "src": "2572:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13582, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2448:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2448:22:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 13594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2448:142:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 13580, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13562, - "src": "2428:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2428:19:27", - "typeDescriptions": { - "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) returns (bool,bytes memory)" - } - }, - "id": 13595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2428:163:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2386:205:27" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13598, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13577, - "src": "2608:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 13597, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "2601:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2601:15:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13600, - "nodeType": "ExpressionStatement", - "src": "2601:15:27" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13604, - "name": "returnData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13579, - "src": "2650:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2663:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 13605, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2663:4:27", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13607, - "indexExpression": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2663:6:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "id": 13608, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2662:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - ], - "expression": { - "argumentTypes": null, - "id": 13602, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2639:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2639:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 13609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2639:32:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 13601, - "name": "Amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13347, - "src": "2631:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256[] memory)" - } - }, - "id": 13610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2631:41:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13611, - "nodeType": "EmitStatement", - "src": "2626:46:27" - } - ] - }, - "documentation": null, - "functionSelector": "9c91fcb5", - "id": 13613, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "swapExactTokensForETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13574, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13562, - "mutability": "mutable", - "name": "router", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13613, - "src": "2220:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13561, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2220:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13564, - "mutability": "mutable", - "name": "amountIn", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13613, - "src": "2244:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13563, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2244:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13566, - "mutability": "mutable", - "name": "amountOutMin", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13613, - "src": "2267:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13565, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2267:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13569, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13613, - "src": "2294:23:27", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 13567, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2294:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13568, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2294:9:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13571, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13613, - "src": "2327:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13570, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2327:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13573, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13613, - "src": "2347:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13572, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2347:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2210:156:27" - }, - "returnParameters": { - "id": 13575, - "nodeType": "ParameterList", - "parameters": [], - "src": "2376:0:27" - }, - "scope": 13664, - "src": "2180:499:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 13662, - "nodeType": "Block", - "src": "2863:290:27", - "statements": [ - { - "assignments": [ - 13628, - 13630 - ], - "declarations": [ - { - "constant": false, - "id": 13628, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13662, - "src": "2874:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13627, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2874:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13630, - "mutability": "mutable", - "name": "returnData", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13662, - "src": "2888:23:27", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 13629, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2888:5:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13646, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13636, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13615, - "src": "2985:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13635, - "name": "IDXswapRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10759, - "src": "2971:13:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDXswapRouter_$10759_$", - "typeString": "type(contract IDXswapRouter)" - } - }, - "id": 13637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2971:21:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDXswapRouter_$10759", - "typeString": "contract IDXswapRouter" - } - }, - "id": 13638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "swapETHForExactTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 10617, - "src": "2971:43:27", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,address[] memory,address,uint256) payable external returns (uint256[] memory)" - } - }, - "id": 13639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2971:52:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 13640, - "name": "amountOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13617, - "src": "3025:9:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13641, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13620, - "src": "3036:4:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 13642, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13622, - "src": "3042:2:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13643, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13624, - "src": "3046:8:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13633, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2935:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13634, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2935:22:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 13644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2935:129:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 13631, - "name": "router", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13615, - "src": "2915:6:27", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2915:19:27", - "typeDescriptions": { - "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) returns (bool,bytes memory)" - } - }, - "id": 13645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2915:150:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2873:192:27" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13648, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13628, - "src": "3082:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 13647, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "3075:6:27", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3075:15:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13650, - "nodeType": "ExpressionStatement", - "src": "3075:15:27" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13654, - "name": "returnData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13630, - "src": "3124:10:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13656, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3137:4:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 13655, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3137:4:27", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13657, - "indexExpression": null, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3137:6:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "id": 13658, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3136:8:27", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "type(uint256[] memory)" - } - ], - "expression": { - "argumentTypes": null, - "id": 13652, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3113:3:27", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3113:10:27", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 13659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3113:32:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 13651, - "name": "Amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13347, - "src": "3105:7:27", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256[] memory)" - } - }, - "id": 13660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3105:41:27", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13661, - "nodeType": "EmitStatement", - "src": "3100:46:27" - } - ] - }, - "documentation": null, - "functionSelector": "b05f579e", - "id": 13663, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "swapETHForExactTokens", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13615, - "mutability": "mutable", - "name": "router", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13663, - "src": "2725:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13614, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2725:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13617, - "mutability": "mutable", - "name": "amountOut", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13663, - "src": "2749:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13616, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2749:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13620, - "mutability": "mutable", - "name": "path", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13663, - "src": "2773:23:27", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 13618, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2773:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13619, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2773:9:27", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13622, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13663, - "src": "2806:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2806:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13624, - "mutability": "mutable", - "name": "deadline", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13663, - "src": "2826:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13623, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2826:4:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2715:130:27" - }, - "returnParameters": { - "id": 13626, - "nodeType": "ParameterList", - "parameters": [], - "src": "2863:0:27" - }, - "scope": 13664, - "src": "2685:468:27", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 13665, - "src": "68:3087:27" - } - ], - "src": "0:3156:27" - } - }, - "contracts/test/WETH9.sol": { - "id": 28, - "AST": { - "absolutePath": "contracts/test/WETH9.sol", - "exportedSymbols": { - "WETH9": [ - 13908 - ] - }, - "id": 13909, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 13666, - "literals": [ - "solidity", - "=", - "0.6", - ".6" - ], - "nodeType": "PragmaDirective", - "src": "686:23:28" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 13908, - "linearizedBaseContracts": [ - 13908 - ], - "name": "WETH9", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "06fdde03", - "id": 13669, - "mutability": "mutable", - "name": "name", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13908, - "src": "732:40:28", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 13667, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "732:6:28", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "57726170706564204574686572", - "id": 13668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "757:15:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_00cd3d46df44f2cbb950cf84eb2e92aa2ddd23195b1a009173ea59a063357ed3", - "typeString": "literal_string \"Wrapped Ether\"" - }, - "value": "Wrapped Ether" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "95d89b41", - "id": 13672, - "mutability": "mutable", - "name": "symbol", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13908, - "src": "778:31:28", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 13670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "778:6:28", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "57455448", - "id": 13671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "803:6:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", - "typeString": "literal_string \"WETH\"" - }, - "value": "WETH" - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "313ce567", - "id": 13675, - "mutability": "mutable", - "name": "decimals", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13908, - "src": "815:27:28", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 13673, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "815:5:28", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 13674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "840:2:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 13683, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 13682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13677, - "indexed": true, - "mutability": "mutable", - "name": "src", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13683, - "src": "865:19:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "865:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13679, - "indexed": true, - "mutability": "mutable", - "name": "guy", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13683, - "src": "886:19:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13678, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "886:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13681, - "indexed": false, - "mutability": "mutable", - "name": "wad", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13683, - "src": "907:8:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13680, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "907:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "864:52:28" - }, - "src": "849:68:28" - }, - { - "anonymous": false, - "documentation": null, - "id": 13691, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 13690, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13685, - "indexed": true, - "mutability": "mutable", - "name": "src", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13691, - "src": "938:19:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13684, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "938:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13687, - "indexed": true, - "mutability": "mutable", - "name": "dst", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13691, - "src": "959:19:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13686, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "959:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13689, - "indexed": false, - "mutability": "mutable", - "name": "wad", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13691, - "src": "980:8:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13688, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "980:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "937:52:28" - }, - "src": "922:68:28" - }, - { - "anonymous": false, - "documentation": null, - "id": 13697, - "name": "Deposit", - "nodeType": "EventDefinition", - "parameters": { - "id": 13696, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13693, - "indexed": true, - "mutability": "mutable", - "name": "dst", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13697, - "src": "1010:19:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13692, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1010:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13695, - "indexed": false, - "mutability": "mutable", - "name": "wad", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13697, - "src": "1031:8:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13694, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1031:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1009:31:28" - }, - "src": "995:46:28" - }, - { - "anonymous": false, - "documentation": null, - "id": 13703, - "name": "Withdrawal", - "nodeType": "EventDefinition", - "parameters": { - "id": 13702, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13699, - "indexed": true, - "mutability": "mutable", - "name": "src", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13703, - "src": "1064:19:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13698, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1064:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13701, - "indexed": false, - "mutability": "mutable", - "name": "wad", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13703, - "src": "1085:8:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13700, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1085:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1063:31:28" - }, - "src": "1046:49:28" - }, - { - "constant": false, - "functionSelector": "70a08231", - "id": 13707, - "mutability": "mutable", - "name": "balanceOf", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13908, - "src": "1101:65:28", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 13706, - "keyType": { - "id": 13704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1110:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1101:25:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 13705, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1121:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "dd62ed3e", - "id": 13713, - "mutability": "mutable", - "name": "allowance", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13908, - "src": "1172:65:28", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 13712, - "keyType": { - "id": 13708, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1181:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1172:46:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 13711, - "keyType": { - "id": 13709, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1201:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1192:25:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 13710, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1212:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 13731, - "nodeType": "Block", - "src": "1344:96:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 13722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13716, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13707, - "src": "1354:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13719, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13717, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1364:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1364:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1354:21:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13720, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1379:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1379:9:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1354:34:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13723, - "nodeType": "ExpressionStatement", - "src": "1354:34:28" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13725, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1411:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1411:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13727, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1423:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1423:9:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13724, - "name": "Deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13697, - "src": "1403:7:28", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 13729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1403:30:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13730, - "nodeType": "EmitStatement", - "src": "1398:35:28" - } - ] - }, - "documentation": null, - "functionSelector": "d0e30db0", - "id": 13732, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13714, - "nodeType": "ParameterList", - "parameters": [], - "src": "1326:2:28" - }, - "returnParameters": { - "id": 13715, - "nodeType": "ParameterList", - "parameters": [], - "src": "1344:0:28" - }, - "scope": 13908, - "src": "1310:130:28", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 13768, - "nodeType": "Block", - "src": "1480:172:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13738, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13707, - "src": "1498:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13741, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13739, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1508:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1508:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1498:21:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 13742, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13734, - "src": "1523:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1498:28:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 13744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1528:2:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 13737, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1490:7:28", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1490:41:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13746, - "nodeType": "ExpressionStatement", - "src": "1490:41:28" - }, - { - "expression": { - "argumentTypes": null, - "id": 13752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13747, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13707, - "src": "1541:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13750, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13748, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1551:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1551:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1541:21:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 13751, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13734, - "src": "1566:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1541:28:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13753, - "nodeType": "ExpressionStatement", - "src": "1541:28:28" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13759, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13734, - "src": "1599:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13754, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1579:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1579:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 13758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1579:19:28", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 13760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1579:24:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13761, - "nodeType": "ExpressionStatement", - "src": "1579:24:28" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13763, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1629:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1629:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 13765, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13734, - "src": "1641:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13762, - "name": "Withdrawal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13703, - "src": "1618:10:28", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 13766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1618:27:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13767, - "nodeType": "EmitStatement", - "src": "1613:32:28" - } - ] - }, - "documentation": null, - "functionSelector": "2e1a7d4d", - "id": 13769, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13735, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13734, - "mutability": "mutable", - "name": "wad", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13769, - "src": "1463:8:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13733, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1463:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1462:10:28" - }, - "returnParameters": { - "id": 13736, - "nodeType": "ParameterList", - "parameters": [], - "src": "1480:0:28" - }, - "scope": 13908, - "src": "1445:207:28", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 13780, - "nodeType": "Block", - "src": "1708:45:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13776, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1733:4:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WETH9_$13908", - "typeString": "contract WETH9" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_WETH9_$13908", - "typeString": "contract WETH9" - } - ], - "id": 13775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1725:7:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 13774, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1725:7:28", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1725:13:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1725:21:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 13773, - "id": 13779, - "nodeType": "Return", - "src": "1718:28:28" - } - ] - }, - "documentation": null, - "functionSelector": "18160ddd", - "id": 13781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13770, - "nodeType": "ParameterList", - "parameters": [], - "src": "1678:2:28" - }, - "returnParameters": { - "id": 13773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13772, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13781, - "src": "1702:4:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13771, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1702:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1701:6:28" - }, - "scope": 13908, - "src": "1658:95:28", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 13808, - "nodeType": "Block", - "src": "1821:115:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 13797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13790, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "1831:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 13794, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13791, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1841:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1841:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1831:21:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13795, - "indexExpression": { - "argumentTypes": null, - "id": 13793, - "name": "guy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13783, - "src": "1853:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1831:26:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 13796, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13785, - "src": "1860:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1831:32:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13798, - "nodeType": "ExpressionStatement", - "src": "1831:32:28" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13800, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1887:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1887:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 13802, - "name": "guy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13783, - "src": "1899:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13803, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13785, - "src": "1904:3:28", - "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" - } - ], - "id": 13799, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13683, - "src": "1878:8:28", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1878:30:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13805, - "nodeType": "EmitStatement", - "src": "1873:35:28" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 13806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1925:4:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 13789, - "id": 13807, - "nodeType": "Return", - "src": "1918:11:28" - } - ] - }, - "documentation": null, - "functionSelector": "095ea7b3", - "id": 13809, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13783, - "mutability": "mutable", - "name": "guy", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13809, - "src": "1776:11:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13782, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1776:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13785, - "mutability": "mutable", - "name": "wad", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13809, - "src": "1789:8:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13784, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1789:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1775:23:28" - }, - "returnParameters": { - "id": 13789, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13788, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13809, - "src": "1815:4:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13787, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1815:4:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1814:6:28" - }, - "scope": 13908, - "src": "1759:177:28", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 13825, - "nodeType": "Block", - "src": "2005:58:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13819, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2035:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2035:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 13821, - "name": "dst", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13811, - "src": "2047:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13822, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13813, - "src": "2052:3:28", - "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" - } - ], - "id": 13818, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13907, - "src": "2022:12:28", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 13823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2022:34:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 13817, - "id": 13824, - "nodeType": "Return", - "src": "2015:41:28" - } - ] - }, - "documentation": null, - "functionSelector": "a9059cbb", - "id": 13826, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13811, - "mutability": "mutable", - "name": "dst", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13826, - "src": "1960:11:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1960:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13813, - "mutability": "mutable", - "name": "wad", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13826, - "src": "1973:8:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13812, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1973:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1959:23:28" - }, - "returnParameters": { - "id": 13817, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13816, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13826, - "src": "1999:4:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13815, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1999:4:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1998:6:28" - }, - "scope": 13908, - "src": "1942:121:28", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 13906, - "nodeType": "Block", - "src": "2169:368:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13838, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13707, - "src": "2187:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13840, - "indexExpression": { - "argumentTypes": null, - "id": 13839, - "name": "src", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13828, - "src": "2197:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2187:14:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 13841, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13832, - "src": "2205:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2187:21:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 13843, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2210:2:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 13837, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2179:7:28", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2179:34:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13845, - "nodeType": "ExpressionStatement", - "src": "2179:34:28" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 13862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13846, - "name": "src", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13828, - "src": "2228:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2235:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2235:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2228:17:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13850, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "2249:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 13852, - "indexExpression": { - "argumentTypes": null, - "id": 13851, - "name": "src", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13828, - "src": "2259:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2249:14:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13855, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13853, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2264:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2264:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2249:26:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "2284:2:28", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 13858, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2285:1:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_minus_1_by_1", - "typeString": "int_const -1" - } - ], - "id": 13857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2279:4:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 13856, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2279:4:28", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 13860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2279:8:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2249:38:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2228:59:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 13885, - "nodeType": "IfStatement", - "src": "2224:183:28", - "trueBody": { - "id": 13884, - "nodeType": "Block", - "src": "2289:118:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13864, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "2311:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 13866, - "indexExpression": { - "argumentTypes": null, - "id": 13865, - "name": "src", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13828, - "src": "2321:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2311:14:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13869, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13867, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2326:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2326:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2311:26:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 13870, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13832, - "src": "2341:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2311:33:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 13872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2346:2:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 13863, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2303:7:28", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2303:46:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13874, - "nodeType": "ExpressionStatement", - "src": "2303:46:28" - }, - { - "expression": { - "argumentTypes": null, - "id": 13882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13875, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "2363:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 13879, - "indexExpression": { - "argumentTypes": null, - "id": 13876, - "name": "src", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13828, - "src": "2373:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2363:14:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13880, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13877, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2378:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2378:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2363:26:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 13881, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13832, - "src": "2393:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2363:33:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13883, - "nodeType": "ExpressionStatement", - "src": "2363:33:28" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 13890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13886, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13707, - "src": "2417:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13888, - "indexExpression": { - "argumentTypes": null, - "id": 13887, - "name": "src", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13828, - "src": "2427:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2417:14:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 13889, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13832, - "src": "2435:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2417:21:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13891, - "nodeType": "ExpressionStatement", - "src": "2417:21:28" - }, - { - "expression": { - "argumentTypes": null, - "id": 13896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13892, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13707, - "src": "2448:9:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 13894, - "indexExpression": { - "argumentTypes": null, - "id": 13893, - "name": "dst", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13830, - "src": "2458:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2448:14:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 13895, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13832, - "src": "2466:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2448:21:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13897, - "nodeType": "ExpressionStatement", - "src": "2448:21:28" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13899, - "name": "src", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13828, - "src": "2494:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13900, - "name": "dst", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13830, - "src": "2499:3:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13901, - "name": "wad", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13832, - "src": "2504:3:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13898, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13691, - "src": "2485:8:28", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 13902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2485:23:28", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13903, - "nodeType": "EmitStatement", - "src": "2480:28:28" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 13904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2526:4:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 13836, - "id": 13905, - "nodeType": "Return", - "src": "2519:11:28" - } - ] - }, - "documentation": null, - "functionSelector": "23b872dd", - "id": 13907, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 13833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13828, - "mutability": "mutable", - "name": "src", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13907, - "src": "2091:11:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2091:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13830, - "mutability": "mutable", - "name": "dst", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13907, - "src": "2104:11:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13829, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2104:7:28", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13832, - "mutability": "mutable", - "name": "wad", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13907, - "src": "2117:8:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13831, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2117:4:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2090:36:28" - }, - "returnParameters": { - "id": 13836, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13835, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 13907, - "src": "2159:4:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13834, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2159:4:28", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2158:6:28" - }, - "scope": 13908, - "src": "2069:468:28", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 13909, - "src": "711:1828:28" - } - ], - "src": "686:37009:28" - } - } - }, - "sourceList": [ - "@swapr/core/contracts/interfaces/IDXswapFactory.sol", - "@swapr/core/contracts/interfaces/IDXswapPair.sol", - "contracts/.flattened/DXswapLibrary.sol", - "contracts/.flattened/DXswapOracleLibrary.sol", - "contracts/.flattened/DXswapRouter.sol", - "contracts/DXswapRouter.sol", - "contracts/examples/DXswapRelayer.sol", - "contracts/examples/ExampleOracleSimple.sol", - "contracts/examples/ExampleSlidingWindowOracle.sol", - "contracts/examples/ExampleSwapToPrice.sol", - "contracts/examples/OracleCreator.sol", - "contracts/interfaces/IDXswapFactory.sol", - "contracts/interfaces/IDXswapPair.sol", - "contracts/interfaces/IDXswapRouter.sol", - "contracts/interfaces/IERC20.sol", - "contracts/interfaces/IWETH.sol", - "contracts/libraries/AddressStringUtil.sol", - "contracts/libraries/Babylonian.sol", - "contracts/libraries/DXswapLibrary.sol", - "contracts/libraries/DXswapOracleLibrary.sol", - "contracts/libraries/FixedPoint.sol", - "contracts/libraries/PairNamer.sol", - "contracts/libraries/SafeERC20Namer.sol", - "contracts/libraries/SafeMath.sol", - "contracts/libraries/TransferHelper.sol", - "contracts/test/DeflatingERC20.sol", - "contracts/test/ERC20.sol", - "contracts/test/RouterEventEmitter.sol", - "contracts/test/WETH9.sol" - ] -} \ No newline at end of file diff --git a/build/DXswapLibrary.json b/build/DXswapLibrary.json deleted file mode 100644 index 9881e602..00000000 --- a/build/DXswapLibrary.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a822a08121430275d33338cd7e5b80916d9704fe287e3cfe469bbc1306135f9464736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 0x22 LOG0 DUP2 0x21 NUMBER MUL PUSH22 0xD33338CD7E5B80916D9704FE287E3CFE469BBC130613 0x5F SWAP5 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "112:4738:18:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a822a08121430275d33338cd7e5b80916d9704fe287e3cfe469bbc1306135f9464736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 0x22 LOG0 DUP2 0x21 NUMBER MUL PUSH22 0xD33338CD7E5B80916D9704FE287E3CFE469BBC130613 0x5F SWAP5 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "112:4738:18:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a822a08121430275d33338cd7e5b80916d9704fe287e3cfe469bbc1306135f9464736f6c63430006060033" -} \ No newline at end of file diff --git a/build/DXswapOracleLibrary.json b/build/DXswapOracleLibrary.json deleted file mode 100644 index 1c7d5fb6..00000000 --- a/build/DXswapOracleLibrary.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1354ddb5357fc0c71f57bd1e1b4b01eb133671b06b2ed007b5b9b0bab51f8964736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED SGT SLOAD 0xDD 0xB5 CALLDATALOAD PUSH32 0xC0C71F57BD1E1B4B01EB133671B06B2ED007B5B9B0BAB51F8964736F6C634300 MOD MOD STOP CALLER ", - "sourceMap": "206:1432:19:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1354ddb5357fc0c71f57bd1e1b4b01eb133671b06b2ed007b5b9b0bab51f8964736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED SGT SLOAD 0xDD 0xB5 CALLDATALOAD PUSH32 0xC0C71F57BD1E1B4B01EB133671B06B2ED007B5B9B0BAB51F8964736F6C634300 MOD MOD STOP CALLER ", - "sourceMap": "206:1432:19:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1354ddb5357fc0c71f57bd1e1b4b01eb133671b06b2ed007b5b9b0bab51f8964736f6c63430006060033" -} \ No newline at end of file diff --git a/build/DXswapRouter.json b/build/DXswapRouter.json deleted file mode 100644 index a0707578..00000000 --- a/build/DXswapRouter.json +++ /dev/null @@ -1,2205 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - }, - { - "internalType": "address", - "name": "_WETH", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60c060405234801561001057600080fd5b50604051620048d9380380620048d98339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614754620001856000398061015f5280610cf05280610d2b5280610e0d528061102b52806113b5528061154052806119075280611a015280611ab75280611b855280611ccb5280611d535280611f8b528061200e52806120bd5280612189528061221e528061229252806127905280612a035280612a595280612a8d5280612b015280612ca15280612de45280612e6c525080610e9b5280610f7252806110f1528061112a52806112655280611443528061151e528061168e5280611c185280611d855280611edb52806122c4528061251d5280612715528061273e528061276e52806128db5280612a375280612d345280612e9e528061368952806136cc5280613bd75280613dc1528061410152806141af528061422f52506147546000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a264697066735822122049f12134b93be9f071e2d709d91dd1986fcb03120573d2fce354a1171396944364736f6c63430006060033", - "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x48D9 CODESIZE SUB DUP1 PUSH3 0x48D9 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0x80 MSTORE SWAP2 SHL AND PUSH1 0xA0 MSTORE PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x4754 PUSH3 0x185 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x15F MSTORE DUP1 PUSH2 0xCF0 MSTORE DUP1 PUSH2 0xD2B MSTORE DUP1 PUSH2 0xE0D MSTORE DUP1 PUSH2 0x102B MSTORE DUP1 PUSH2 0x13B5 MSTORE DUP1 PUSH2 0x1540 MSTORE DUP1 PUSH2 0x1907 MSTORE DUP1 PUSH2 0x1A01 MSTORE DUP1 PUSH2 0x1AB7 MSTORE DUP1 PUSH2 0x1B85 MSTORE DUP1 PUSH2 0x1CCB MSTORE DUP1 PUSH2 0x1D53 MSTORE DUP1 PUSH2 0x1F8B MSTORE DUP1 PUSH2 0x200E MSTORE DUP1 PUSH2 0x20BD MSTORE DUP1 PUSH2 0x2189 MSTORE DUP1 PUSH2 0x221E MSTORE DUP1 PUSH2 0x2292 MSTORE DUP1 PUSH2 0x2790 MSTORE DUP1 PUSH2 0x2A03 MSTORE DUP1 PUSH2 0x2A59 MSTORE DUP1 PUSH2 0x2A8D MSTORE DUP1 PUSH2 0x2B01 MSTORE DUP1 PUSH2 0x2CA1 MSTORE DUP1 PUSH2 0x2DE4 MSTORE DUP1 PUSH2 0x2E6C MSTORE POP DUP1 PUSH2 0xE9B MSTORE DUP1 PUSH2 0xF72 MSTORE DUP1 PUSH2 0x10F1 MSTORE DUP1 PUSH2 0x112A MSTORE DUP1 PUSH2 0x1265 MSTORE DUP1 PUSH2 0x1443 MSTORE DUP1 PUSH2 0x151E MSTORE DUP1 PUSH2 0x168E MSTORE DUP1 PUSH2 0x1C18 MSTORE DUP1 PUSH2 0x1D85 MSTORE DUP1 PUSH2 0x1EDB MSTORE DUP1 PUSH2 0x22C4 MSTORE DUP1 PUSH2 0x251D MSTORE DUP1 PUSH2 0x2715 MSTORE DUP1 PUSH2 0x273E MSTORE DUP1 PUSH2 0x276E MSTORE DUP1 PUSH2 0x28DB MSTORE DUP1 PUSH2 0x2A37 MSTORE DUP1 PUSH2 0x2D34 MSTORE DUP1 PUSH2 0x2E9E MSTORE DUP1 PUSH2 0x3689 MSTORE DUP1 PUSH2 0x36CC MSTORE DUP1 PUSH2 0x3BD7 MSTORE DUP1 PUSH2 0x3DC1 MSTORE DUP1 PUSH2 0x4101 MSTORE DUP1 PUSH2 0x41AF MSTORE DUP1 PUSH2 0x422F MSTORE POP PUSH2 0x4754 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8803DBEE GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xA1C JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0xA31 JUMPI DUP1 PUSH4 0xDED9382A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8E33700 EQ PUSH2 0xB59 JUMPI DUP1 PUSH4 0xF305D719 EQ PUSH2 0xBD9 JUMPI DUP1 PUSH4 0xFB3BDB41 EQ PUSH2 0xC1F JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x8803DBEE EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xAF2979EB EQ PUSH2 0x8E8 JUMPI DUP1 PUSH4 0xB6F9DE95 EQ PUSH2 0x93B JUMPI DUP1 PUSH4 0xBAA2ABDE EQ PUSH2 0x9BF JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x52707D8C GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x52707D8C EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0x571FD012 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x5B0D5984 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x5C11D795 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x791AC947 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0x7FF36AB5 EQ PUSH2 0x767 JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x2751CEC EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x18CBAFE5 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x2195995C EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x38ED1739 EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x4A25D94A EQ PUSH2 0x4A8 JUMPI PUSH2 0x188 JUMP JUMPDEST CALLDATASIZE PUSH2 0x188 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x186 JUMPI INVALID JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B3 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x10EA SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x160 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH2 0x100 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x140 ADD CALLDATALOAD PUSH2 0x1120 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x121A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1365 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x1508 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x5EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x1516 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x65E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x6B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x6F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x71A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x72C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x18B9 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x77D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x79E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1B3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x80E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1E90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x1FAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x1FC2 JUMP JUMPDEST PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x9E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x24CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x2713 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x2737 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0xB0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x2764 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x2878 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0xBEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x29B4 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xC35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xC56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xC89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2C59 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xCEA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP10 PUSH32 0x0 DUP11 DUP11 DUP11 ADDRESS DUP11 PUSH2 0x24CF JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP PUSH2 0xD29 DUP10 DUP7 DUP6 PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xDB1 DUP6 DUP4 PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0xE03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0xE3D JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEF4 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0xF07 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFEA DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0xFD0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF9E JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x33BD JUMP JUMPDEST DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFDD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x347D JUMP JUMPDEST PUSH2 0x1029 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1068 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x10D2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3820 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1150 PUSH32 0x0 DUP16 DUP16 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x115F JUMPI DUP13 PUSH2 0x1163 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1200 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 PUSH2 0x24CF JUMP JUMPDEST DUP1 SWAP5 POP DUP2 SWAP6 POP POP POP POP POP SWAP12 POP SWAP12 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1260 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x12BE PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x12D1 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1326 DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST PUSH2 0x10DF DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x13AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x13E5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x143E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x149C PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x14AC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x397F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x3A80 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1564 PUSH32 0x0 DUP14 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x1573 JUMPI DUP12 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1613 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x1FC2 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1668 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x16DD DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x16D7 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST DUP11 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x16EF JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x177E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP9 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x17C0 SWAP3 SWAP1 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1872 DUP3 DUP9 DUP9 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x17D5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x184E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST LT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x18FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1937 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1990 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19A0 DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST PUSH2 0x19DE DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP7 DUP2 LT ISZERO PUSH2 0x1AB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x18AF DUP5 DUP3 PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1B83 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1BBA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C13 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C71 PUSH32 0x0 CALLVALUE DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1C84 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1D05 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1DB1 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1DBE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E29 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x1E47 JUMPI INVALID JUMPDEST PUSH2 0x1E86 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1ED6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1F34 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1F44 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FBA DUP5 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2008 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2037 DUP9 PUSH32 0x0 DUP10 DUP10 DUP10 ADDRESS DUP10 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0x20BB SWAP3 POP DUP11 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2135 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH2 0x3145 JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x21BE JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2217 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLVALUE SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x228B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x22F0 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x236A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2372 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2384 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP10 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP10 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x2455 SWAP3 SWAP1 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP8 PUSH2 0x1872 DUP3 DUP10 DUP10 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x246A JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2543 PUSH32 0x0 DUP13 DUP13 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH4 0x23B872DD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x259E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x226BF2D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 SWAP3 DUP7 AND SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2615 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2629 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x263F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x2659 DUP15 DUP15 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x267C JUMPI DUP2 DUP4 PUSH2 0x267F JUMP JUMPDEST DUP3 DUP3 JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP11 DUP8 LT ISZERO PUSH2 0x26C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP7 LT ISZERO PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B4 PUSH32 0x0 DUP15 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x27C3 JUMPI DUP13 PUSH2 0x27C7 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x283D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2863 DUP15 DUP15 DUP15 DUP15 DUP15 DUP15 PUSH2 0xCA3 JUMP JUMPDEST SWAP1 SWAP16 SWAP1 SWAP15 POP SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x28C1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28CF DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2901 PUSH32 0x0 DUP15 DUP15 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x290F DUP14 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH2 0x291B DUP13 CALLER DUP4 DUP8 PUSH2 0x347D JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2973 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2987 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x299D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 SWAP14 SWAP4 SWAP13 POP SWAP4 SWAP11 POP SWAP2 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x29FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A2B DUP11 PUSH32 0x0 DUP12 CALLVALUE DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2A7D PUSH32 0x0 DUP13 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x2A8B DUP12 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2AE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2BB1 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP CALLVALUE DUP5 LT ISZERO PUSH2 0x2C4B JUMPI PUSH2 0x2C4B CALLER DUP6 CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2C9F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2CD6 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D2F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D8D PUSH32 0x0 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP CALLVALUE DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D9D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x2DE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2E1E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2ECA PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2ED7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2F60 JUMPI INVALID JUMPDEST PUSH2 0x2F9F DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FAC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE GT ISZERO PUSH2 0x1E86 JUMPI PUSH2 0x1E86 CALLER DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FCC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3058 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3039 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x30ED JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x30ED JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x30EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x313E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3191 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3172 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x31F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x31F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4641 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3296 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x32AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x32D8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x32E9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x333B DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3317 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3391 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x334E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x338C DUP12 DUP11 DUP10 DUP2 MLOAD DUP2 LT PUSH2 0x3368 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x440B JUMP JUMPDEST PUSH2 0x397F JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x33A0 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x32F8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x33CC DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3502 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3564 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3569 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3597 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3597 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46AF PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x35F8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x360F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3627 DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP8 DUP6 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x363B JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3669 JUMPI DUP3 PUSH1 0x0 PUSH2 0x366D JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP11 MLOAD SUB DUP9 LT PUSH2 0x3684 JUMPI DUP9 PUSH2 0x36C5 JUMP JUMPDEST PUSH2 0x36C5 PUSH32 0x0 DUP8 DUP13 DUP12 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x36F2 PUSH32 0x0 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x372F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x37A0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3788 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x37CD JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP10 ADD SWAP9 POP PUSH2 0x35DD SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3879 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x3891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x38BB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x38CF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3911 DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x38FD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x395A DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3924 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3955 DUP12 DUP11 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3941 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH2 0x3A80 JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3969 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x38E1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x39BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4687 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x39CF JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3A0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A2E PUSH2 0x3A21 PUSH2 0x2710 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A42 DUP3 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A68 DUP4 PUSH2 0x3A5C DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 PUSH2 0x3A73 JUMPI INVALID JUMPDEST DIV SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x3AC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4618 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x3AD0 JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3B0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3B2F PUSH2 0x2710 PUSH2 0x3B23 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3B58 PUSH2 0x3B48 PUSH2 0x2710 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST PUSH2 0x3B23 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST SWAP1 POP PUSH2 0x3B75 PUSH1 0x1 DUP3 DUP5 DUP2 PUSH2 0x3B68 JUMPI INVALID JUMPDEST DIV SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3238 JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3B9E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3BB5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3BCD DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x3BFD PUSH32 0x0 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP1 DUP10 AND EQ PUSH2 0x3C9E JUMPI DUP3 DUP5 PUSH2 0x3CA1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3CFF DUP3 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH2 0x3D77 DUP7 DUP4 DUP4 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3D54 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x397F JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3DA1 JUMPI DUP3 PUSH1 0x0 PUSH2 0x3DA5 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP13 MLOAD SUB DUP11 LT PUSH2 0x3DBC JUMPI DUP11 PUSH2 0x3DF0 JUMP JUMPDEST PUSH2 0x3DF0 PUSH32 0x0 DUP10 DUP15 DUP14 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x24 DUP3 ADD DUP8 DUP2 MSTORE PUSH1 0x44 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x64 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x84 DUP6 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0xA4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP8 POP SWAP1 DUP13 AND SWAP6 PUSH4 0x22C0D9F SWAP6 DUP11 SWAP6 DUP11 SWAP6 DUP11 SWAP6 SWAP2 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH1 0xC4 DUP7 ADD SWAP3 SWAP1 SWAP2 DUP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E7A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E62 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3EA7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3EDD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP12 ADD SWAP11 POP PUSH2 0x3B83 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3F86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x456E PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3F96 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x3FD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x3FE2 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST DUP2 PUSH2 0x3FE9 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4046 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x454C PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x4066 JUMPI DUP3 DUP5 PUSH2 0x4069 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x40C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xE6A43905 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x414A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x415E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4227 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH4 0x64E329CB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC9C65396 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x420E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4255 PUSH32 0x0 DUP12 DUP12 PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x4267 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4277 JUMPI DUP8 SWAP4 POP DUP7 SWAP3 POP PUSH2 0x4337 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4284 DUP10 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP8 DUP2 GT PUSH2 0x42D7 JUMPI DUP6 DUP2 LT ISZERO PUSH2 0x42CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 SWAP5 POP SWAP3 POP DUP3 PUSH2 0x4335 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42E4 DUP10 DUP5 DUP7 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP10 DUP2 GT ISZERO PUSH2 0x42F0 JUMPI INVALID JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x432F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 POP DUP8 SWAP4 POP JUMPDEST POP JUMPDEST POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4353 DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x4364 DUP9 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x439C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x43B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x43F9 JUMPI DUP1 DUP3 PUSH2 0x43FC JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4418 DUP5 DUP5 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x4426 DUP6 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x445E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4472 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x44B4 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x44B1 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455850495245440000 STOP STOP STOP STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E56414C49445F50 COINBASE SLOAD 0x48 STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A204554485F54 MSTORE COINBASE 0x4E MSTORE8 CHAINID GASLIMIT MSTORE 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F TIMESTAMP 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455843455353495645 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x49 CALL 0x21 CALLVALUE 0xB9 EXTCODESIZE 0xE9 CREATE PUSH18 0xE2D709D91DD1986FCB03120573D2FCE354A1 OR SGT SWAP7 SWAP5 NUMBER PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "313:17960:5:-:0;;;606:109;5:9:-1;2:2;;;27:1;24;17:12;2:2;606:109:5;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;606:109:5;;;;;;;-1:-1:-1;;;;;;668:18:5;;;;;;;;696:12;;;;;313:17960;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "5390": [ - { - "length": 32, - "start": 3739 - }, - { - "length": 32, - "start": 3954 - }, - { - "length": 32, - "start": 4337 - }, - { - "length": 32, - "start": 4394 - }, - { - "length": 32, - "start": 4709 - }, - { - "length": 32, - "start": 5187 - }, - { - "length": 32, - "start": 5406 - }, - { - "length": 32, - "start": 5774 - }, - { - "length": 32, - "start": 7192 - }, - { - "length": 32, - "start": 7557 - }, - { - "length": 32, - "start": 7899 - }, - { - "length": 32, - "start": 8900 - }, - { - "length": 32, - "start": 9501 - }, - { - "length": 32, - "start": 10005 - }, - { - "length": 32, - "start": 10046 - }, - { - "length": 32, - "start": 10094 - }, - { - "length": 32, - "start": 10459 - }, - { - "length": 32, - "start": 10807 - }, - { - "length": 32, - "start": 11572 - }, - { - "length": 32, - "start": 11934 - }, - { - "length": 32, - "start": 13961 - }, - { - "length": 32, - "start": 14028 - }, - { - "length": 32, - "start": 15319 - }, - { - "length": 32, - "start": 15809 - }, - { - "length": 32, - "start": 16641 - }, - { - "length": 32, - "start": 16815 - }, - { - "length": 32, - "start": 16943 - } - ], - "5393": [ - { - "length": 32, - "start": 351 - }, - { - "length": 32, - "start": 3312 - }, - { - "length": 32, - "start": 3371 - }, - { - "length": 32, - "start": 3597 - }, - { - "length": 32, - "start": 4139 - }, - { - "length": 32, - "start": 5045 - }, - { - "length": 32, - "start": 5440 - }, - { - "length": 32, - "start": 6407 - }, - { - "length": 32, - "start": 6657 - }, - { - "length": 32, - "start": 6839 - }, - { - "length": 32, - "start": 7045 - }, - { - "length": 32, - "start": 7371 - }, - { - "length": 32, - "start": 7507 - }, - { - "length": 32, - "start": 8075 - }, - { - "length": 32, - "start": 8206 - }, - { - "length": 32, - "start": 8381 - }, - { - "length": 32, - "start": 8585 - }, - { - "length": 32, - "start": 8734 - }, - { - "length": 32, - "start": 8850 - }, - { - "length": 32, - "start": 10128 - }, - { - "length": 32, - "start": 10755 - }, - { - "length": 32, - "start": 10841 - }, - { - "length": 32, - "start": 10893 - }, - { - "length": 32, - "start": 11009 - }, - { - "length": 32, - "start": 11425 - }, - { - "length": 32, - "start": 11748 - }, - { - "length": 32, - "start": 11884 - } - ] - }, - "linkReferences": {}, - "object": "60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a264697066735822122049f12134b93be9f071e2d709d91dd1986fcb03120573d2fce354a1171396944364736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8803DBEE GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xA1C JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0xA31 JUMPI DUP1 PUSH4 0xDED9382A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8E33700 EQ PUSH2 0xB59 JUMPI DUP1 PUSH4 0xF305D719 EQ PUSH2 0xBD9 JUMPI DUP1 PUSH4 0xFB3BDB41 EQ PUSH2 0xC1F JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x8803DBEE EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xAF2979EB EQ PUSH2 0x8E8 JUMPI DUP1 PUSH4 0xB6F9DE95 EQ PUSH2 0x93B JUMPI DUP1 PUSH4 0xBAA2ABDE EQ PUSH2 0x9BF JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x52707D8C GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x52707D8C EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0x571FD012 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x5B0D5984 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x5C11D795 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x791AC947 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0x7FF36AB5 EQ PUSH2 0x767 JUMPI PUSH2 0x188 JUMP JUMPDEST DUP1 PUSH4 0x2751CEC EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x18CBAFE5 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x2195995C EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x38ED1739 EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0x4A25D94A EQ PUSH2 0x4A8 JUMPI PUSH2 0x188 JUMP JUMPDEST CALLDATASIZE PUSH2 0x188 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x186 JUMPI INVALID JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B3 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x10EA SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x160 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH2 0x100 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x140 ADD CALLDATALOAD PUSH2 0x1120 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x121A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1365 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x1508 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x5EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x1516 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x65E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x6B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x6F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x71A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x72C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x18B9 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x77D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x79E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x7B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1B3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x80E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1E90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x1FAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x1FC2 JUMP JUMPDEST PUSH2 0x186 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x9E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x24CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x896 PUSH2 0x2713 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x2737 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0xB0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x2764 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x2878 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0xBBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0xBEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x29B4 JUMP JUMPDEST PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xC35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xC56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xC89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2C59 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xCEA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP10 PUSH32 0x0 DUP11 DUP11 DUP11 ADDRESS DUP11 PUSH2 0x24CF JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP PUSH2 0xD29 DUP10 DUP7 DUP6 PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xDB1 DUP6 DUP4 PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0xE03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0xE3D JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEF4 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0xF07 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFEA DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0xFD0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF9E JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x33BD JUMP JUMPDEST DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFDD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x347D JUMP JUMPDEST PUSH2 0x1029 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1068 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x10D2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3145 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3820 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1150 PUSH32 0x0 DUP16 DUP16 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x115F JUMPI DUP13 PUSH2 0x1163 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1200 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 PUSH2 0x24CF JUMP JUMPDEST DUP1 SWAP5 POP DUP2 SWAP6 POP POP POP POP POP SWAP12 POP SWAP12 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1260 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x12BE PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x12D1 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1326 DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xF5C JUMPI INVALID JUMPDEST PUSH2 0x10DF DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x13AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x13E5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x143E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x149C PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x14AC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0xF4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x397F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14FF DUP6 DUP6 DUP6 DUP6 PUSH2 0x3A80 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1564 PUSH32 0x0 DUP14 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x1573 JUMPI DUP12 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1613 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x1FC2 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1668 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x16DD DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x16D7 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xFBB JUMPI INVALID JUMPDEST DUP11 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x16EF JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x177E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP9 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x17C0 SWAP3 SWAP1 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1872 DUP3 DUP9 DUP9 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x17D5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x184E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST LT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x18FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1937 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1990 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19A0 DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1678 JUMPI INVALID JUMPDEST PUSH2 0x19DE DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP7 DUP2 LT ISZERO PUSH2 0x1AB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x18AF DUP5 DUP3 PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1B83 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1BBA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C13 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C71 PUSH32 0x0 CALLVALUE DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x323D SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1C84 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46D3 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1D05 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1DB1 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1DBE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E29 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x1E47 JUMPI INVALID JUMPDEST PUSH2 0x1E86 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1ED6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1F34 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1F44 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FBA DUP5 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2008 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2037 DUP9 PUSH32 0x0 DUP10 DUP10 DUP10 ADDRESS DUP10 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0x20BB SWAP3 POP DUP11 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x209E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2FDB JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2135 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10DF DUP5 DUP4 PUSH2 0x3145 JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x21BE JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2217 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLVALUE SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x228B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x22F0 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x236A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2372 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2384 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP10 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP10 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x2455 SWAP3 SWAP1 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x3B80 SWAP2 POP POP JUMP JUMPDEST DUP8 PUSH2 0x1872 DUP3 DUP10 DUP10 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x246A JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2543 PUSH32 0x0 DUP13 DUP13 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH4 0x23B872DD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x259E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x226BF2D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 SWAP3 DUP7 AND SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2615 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2629 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x263F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x2659 DUP15 DUP15 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x267C JUMPI DUP2 DUP4 PUSH2 0x267F JUMP JUMPDEST DUP3 DUP3 JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP11 DUP8 LT ISZERO PUSH2 0x26C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP7 LT ISZERO PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1117 PUSH32 0x0 DUP5 DUP5 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B4 PUSH32 0x0 DUP15 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0x27C3 JUMPI DUP13 PUSH2 0x27C7 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x283D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2863 DUP15 DUP15 DUP15 DUP15 DUP15 DUP15 PUSH2 0xCA3 JUMP JUMPDEST SWAP1 SWAP16 SWAP1 SWAP15 POP SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x28C1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28CF DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2901 PUSH32 0x0 DUP15 DUP15 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x290F DUP14 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH2 0x291B DUP13 CALLER DUP4 DUP8 PUSH2 0x347D JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2973 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2987 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x299D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 SWAP14 SWAP4 SWAP13 POP SWAP4 SWAP11 POP SWAP2 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x29FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A2B DUP11 PUSH32 0x0 DUP12 CALLVALUE DUP13 DUP13 PUSH2 0x40D0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2A7D PUSH32 0x0 DUP13 PUSH32 0x0 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x2A8B DUP12 CALLER DUP4 DUP9 PUSH2 0x347D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2AE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2BB1 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP CALLVALUE DUP5 LT ISZERO PUSH2 0x2C4B JUMPI PUSH2 0x2C4B CALLER DUP6 CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2C9F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4590 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2CD6 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D2F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45B0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D8D PUSH32 0x0 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3820 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP CALLVALUE DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D9D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x2DE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46FB PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2E1E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2ECA PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x16BA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2ED7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2F60 JUMPI INVALID JUMPDEST PUSH2 0x2F9F DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x35DA SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FAC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE GT ISZERO PUSH2 0x1E86 JUMPI PUSH2 0x1E86 CALLER DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2FCC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE SUB PUSH2 0x3145 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3058 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3039 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30BA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30BF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x30ED JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x30ED JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x30EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x313E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3191 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3172 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x31F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x31F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3238 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4641 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3296 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x32AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x32D8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x32E9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x333B DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3317 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3391 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x334E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x338C DUP12 DUP11 DUP10 DUP2 MLOAD DUP2 LT PUSH2 0x3368 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x440B JUMP JUMPDEST PUSH2 0x397F JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x33A0 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x32F8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x33CC DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3502 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3564 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3569 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3597 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3597 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46AF PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x35F8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x360F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3627 DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP8 DUP6 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x363B JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3669 JUMPI DUP3 PUSH1 0x0 PUSH2 0x366D JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP11 MLOAD SUB DUP9 LT PUSH2 0x3684 JUMPI DUP9 PUSH2 0x36C5 JUMP JUMPDEST PUSH2 0x36C5 PUSH32 0x0 DUP8 DUP13 DUP12 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH2 0x36F2 PUSH32 0x0 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x372F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x37A0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3788 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x37CD JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP10 ADD SWAP9 POP PUSH2 0x35DD SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3879 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A20494E56414C49445F504154480000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x3891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x38BB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x38CF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x33B5 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3911 DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x38FD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x332E JUMPI INVALID JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x395A DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3924 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3955 DUP12 DUP11 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3941 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0x337F JUMPI INVALID JUMPDEST PUSH2 0x3A80 JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3969 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x38E1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x39BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4687 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x39CF JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3A0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A2E PUSH2 0x3A21 PUSH2 0x2710 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A42 DUP3 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3A68 DUP4 PUSH2 0x3A5C DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 PUSH2 0x3A73 JUMPI INVALID JUMPDEST DIV SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 GT PUSH2 0x3AC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4618 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 GT DUP1 ISZERO PUSH2 0x3AD0 JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST PUSH2 0x3B0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3B2F PUSH2 0x2710 PUSH2 0x3B23 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3B58 PUSH2 0x3B48 PUSH2 0x2710 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST PUSH2 0x3B23 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3EF6 AND JUMP JUMPDEST SWAP1 POP PUSH2 0x3B75 PUSH1 0x1 DUP3 DUP5 DUP2 PUSH2 0x3B68 JUMPI INVALID JUMPDEST DIV SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x44FC AND JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3238 JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3B9E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3BB5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3BCD DUP4 DUP4 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x3BFD PUSH32 0x0 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP1 DUP10 AND EQ PUSH2 0x3C9E JUMPI DUP3 DUP5 PUSH2 0x3CA1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3CFF DUP3 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH2 0x3D77 DUP7 DUP4 DUP4 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3D54 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x397F JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3DA1 JUMPI DUP3 PUSH1 0x0 PUSH2 0x3DA5 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP13 MLOAD SUB DUP11 LT PUSH2 0x3DBC JUMPI DUP11 PUSH2 0x3DF0 JUMP JUMPDEST PUSH2 0x3DF0 PUSH32 0x0 DUP10 DUP15 DUP14 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x36B8 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x24 DUP3 ADD DUP8 DUP2 MSTORE PUSH1 0x44 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x64 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x84 DUP6 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0xA4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP8 POP SWAP1 DUP13 AND SWAP6 PUSH4 0x22C0D9F SWAP6 DUP11 SWAP6 DUP11 SWAP6 DUP11 SWAP6 SWAP2 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH1 0xC4 DUP7 ADD SWAP3 SWAP1 SWAP2 DUP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E7A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E62 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3EA7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3EDD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP12 ADD SWAP11 POP PUSH2 0x3B83 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3F86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x456E PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3F96 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x3FD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45F3 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x3FE2 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x4499 AND JUMP JUMPDEST DUP2 PUSH2 0x3FE9 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4046 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x454C PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x4066 JUMPI DUP3 DUP5 PUSH2 0x4069 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x40C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xE6A43905 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x414A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x415E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x4227 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH4 0x64E329CB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC9C65396 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x420E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4255 PUSH32 0x0 DUP12 DUP12 PUSH2 0x4344 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x4267 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4277 JUMPI DUP8 SWAP4 POP DUP7 SWAP3 POP PUSH2 0x4337 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4284 DUP10 DUP5 DUP5 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP8 DUP2 GT PUSH2 0x42D7 JUMPI DUP6 DUP2 LT ISZERO PUSH2 0x42CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4664 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 SWAP5 POP SWAP3 POP DUP3 PUSH2 0x4335 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42E4 DUP10 DUP5 DUP7 PUSH2 0x3F46 JUMP JUMPDEST SWAP1 POP DUP10 DUP2 GT ISZERO PUSH2 0x42F0 JUMPI INVALID JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x432F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D0 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 POP DUP8 SWAP4 POP JUMPDEST POP JUMPDEST POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4353 DUP6 DUP6 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x4364 DUP9 DUP9 DUP9 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x439C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x43B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x43F9 JUMPI DUP1 DUP3 PUSH2 0x43FC JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4418 DUP5 DUP5 PUSH2 0x3FF2 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x4426 DUP6 DUP6 DUP6 PUSH2 0x33BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x445E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4472 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x44B4 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x44B1 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x111A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455850495245440000 STOP STOP STOP STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E56414C49445F50 COINBASE SLOAD 0x48 STOP STOP STOP STOP STOP STOP DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A204554485F54 MSTORE COINBASE 0x4E MSTORE8 CHAINID GASLIMIT MSTORE 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F TIMESTAMP 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x7761704C6962726172793A20494E535546464943 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x776170526F757465723A20494E53554646494349 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD DIFFICULTY PC PUSH20 0x776170526F757465723A20455843455353495645 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x49 CALL 0x21 CALLVALUE 0xB9 EXTCODESIZE 0xE9 CREATE PUSH18 0xE2D709D91DD1986FCB03120573D2FCE354A1 OR SGT SWAP7 SWAP5 NUMBER PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "313:17960:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;765:10;-1:-1:-1;;;;;779:4:5;765:18;;758:26;;;;313:17960;;12:1:-1;9;2:12;4773:653:5;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4773:653:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;4773:653:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11706:822;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11706:822:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;11706:822:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;11706:822:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;11706:822:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11706:822:5;;-1:-1:-1;11706:822:5;-1:-1:-1;;;;;;11706:822:5;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11706:822:5;;;;;;;;;;;;;;;;;18029:242;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18029:242:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18029:242:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;18029:242:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;18029:242:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18029:242:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18029:242:5;;-1:-1:-1;18029:242:5;;-1:-1:-1;;;;;18029:242:5:i;5431:657::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5431:657:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;5431:657:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9025:606::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9025:606:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9025:606:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;9025:606:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9025:606:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9025:606:5;;-1:-1:-1;9025:606:5;-1:-1:-1;;;;;;9025:606:5;;;;;;;;:::i;10901:800::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10901:800:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10901:800:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;10901:800:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10901:800:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10901:800:5;;-1:-1:-1;10901:800:5;-1:-1:-1;;;;;;10901:800:5;;;;;;;;:::i;17222:274::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17222:274:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;17222:274:5;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17502:273;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17502:273:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;17502:273:5;;;;;;;;;;;;;;;;;:::i;7504:697::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7504:697:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;7504:697:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14658:692::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14658:692:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;14658:692:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;14658:692:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;14658:692:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14658:692:5;;-1:-1:-1;14658:692:5;-1:-1:-1;;;;;;14658:692:5;;;;;;;;:::i;16179:813::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16179:813:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;16179:813:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;16179:813:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;16179:813:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16179:813:5;;-1:-1:-1;16179:813:5;-1:-1:-1;;;;;;16179:813:5;;;;;;;;:::i;10225:671::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10225:671:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;10225:671:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10225:671:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10225:671:5;;-1:-1:-1;10225:671:5;-1:-1:-1;;;;;;10225:671:5;;;;;;;;:::i;9636:584::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9636:584:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9636:584:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;9636:584:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9636:584:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9636:584:5;;-1:-1:-1;9636:584:5;-1:-1:-1;;;;;;9636:584:5;;;;;;;;:::i;435:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;435:38:5;;;:::i;:::-;;;;-1:-1:-1;;;;;435:38:5;;;;;;;;;;;;;;17033:183;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17033:183:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17033:183:5;;;;;;;;;;;;:::i;6819:680::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6819:680:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;6819:680:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15355:819::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;15355:819:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;15355:819:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;15355:819:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15355:819:5;;-1:-1:-1;15355:819:5;-1:-1:-1;;;;;;15355:819:5;;;;;;;;:::i;3937:831::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3937:831:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;3937:831:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;388:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;388:41:5;;;:::i;17781:242::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17781:242:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17781:242:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;17781:242:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;17781:242:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17781:242:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17781:242:5;;-1:-1:-1;17781:242:5;;-1:-1:-1;;;;;17781:242:5:i;6093:650::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6093:650:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;6093:650:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2230:717::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2230:717:5;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2230:717:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2952:945;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2952:945:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12533:782::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;12533:782:5;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;12533:782:5;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;12533:782:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;12533:782:5;;-1:-1:-1;12533:782:5;-1:-1:-1;;;;;;12533:782:5;;;;;;;;:::i;4773:653::-;5003:16;5021:14;4984:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;5074:188:::1;5103:5;5122:4;5140:9;5163:14;5191:12;5225:4;5244:8;5074:15;:188::i;:::-;5047:215:::0;;-1:-1:-1;5047:215:5;-1:-1:-1;5272:51:5::1;5300:5:::0;5307:2;5047:215;5272:27:::1;:51::i;:::-;5339:4;-1:-1:-1::0;;;;;5333:20:5::1;;5354:9;5333:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;5333:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;5333:31:5;;;;5374:45;5405:2;5409:9;5374:30;:45::i;:::-;4773:653:::0;;;;;;;;;;:::o;11706:822::-;11915:21;11888:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;11985:4:5::1;11960:29;:4:::0;;-1:-1:-1;;11965:15:5;;11960:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;11960:21:5::1;-1:-1:-1::0;;;;;11960:29:5::1;;11952:68;;;::::0;;-1:-1:-1;;;11952:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;11952:68:5;;;;;;;;;;;;;::::1;;12040:52;12068:7;12077:8;12087:4;;12040:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12040:27:5::1;::::0;-1:-1:-1;;;12040:52:5:i:1;:::-;12030:62;;12141:12;12110:7;12135:1;12118:7;:14;:18;12110:27;;;;;;;;;;;;;;:43;;12102:96;;;;-1:-1:-1::0;;;12102:96:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12208:136;12253:4;;12258:1;12253:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12253:7:5::1;12262:10;12274:48;12296:7;12305:4;;12310:1;12305:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12305:7:5::1;12314:4;;12319:1;12314:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12314:7:5::1;12274:21;:48::i;:::-;12324:7;12332:1;12324:10;;;;;;;;;;;;;;12208:31;:136::i;:::-;12354:35;12360:7;12369:4;;12354:35;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12383:4:5::1;::::0;-1:-1:-1;12354:5:5::1;::::0;-1:-1:-1;;12354:35:5:i:1;:::-;12405:4;-1:-1:-1::0;;;;;12399:20:5::1;;12420:7;12445:1;12428:7;:14;:18;12420:27;;;;;;;;;;;;;;12399:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12399:49:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12399:49:5;;;;12458:63;12489:2;12493:7;12518:1;12501:7;:14;:18;12493:27;;;;;;;;;;;;;;12458:30;:63::i;:::-;11706:822:::0;;;;;;;;;:::o;18029:242::-;18168:21;18212:52;18239:7;18248:9;18259:4;18212:26;:52::i;:::-;18205:59;;18029:242;;;;;:::o;5431:657::-;5728:12;5742;5766;5781:46;5803:7;5812:6;5820;5781:21;:46::i;:::-;5766:61;;5837:10;5850;:33;;5874:9;5850:33;;;-1:-1:-1;;5850:33:5;5893:77;;;-1:-1:-1;;;5893:77:5;;5918:10;5893:77;;;;5938:4;5893:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5837:46;;-1:-1:-1;;;;;;5893:24:5;;;;;:77;;;;;-1:-1:-1;;5893:77:5;;;;;;;;-1:-1:-1;5893:24:5;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;5893:77:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5893:77:5;;;;6001:80;6017:6;6025;6033:9;6044:10;6056;6068:2;6072:8;6001:15;:80::i;:::-;5980:101;;;;;;;;5431:657;;;;;;;;;;;;;;;;:::o;9025:606::-;9243:21;9224:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;9286:52:::1;9314:7;9323:8;9333:4;;9286:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9286:27:5::1;::::0;-1:-1:-1;;;9286:52:5:i:1;:::-;9276:62;;9387:12;9356:7;9381:1;9364:7;:14;:18;9356:27;;;;;;;;;;;;;;:43;;9348:96;;;;-1:-1:-1::0;;;9348:96:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9454:136;9499:4;;9504:1;9499:7;;;;;;9454:136;9600:24;9606:7;9615:4;;9600:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9621:2:5;;-1:-1:-1;9600:5:5::1;::::0;-1:-1:-1;;9600:24:5:i:1;10901:800::-:0;11110:21;11083:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;11180:4:5::1;11155:29;:4:::0;;-1:-1:-1;;11160:15:5;;11155:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;11155:21:5::1;-1:-1:-1::0;;;;;11155:29:5::1;;11147:68;;;::::0;;-1:-1:-1;;;11147:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;11147:68:5;;;;;;;;;;;;;::::1;;11235:52;11262:7;11271:9;11282:4;;11235:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;11235:26:5::1;::::0;-1:-1:-1;;;11235:52:5:i:1;:::-;11225:62;;11319:11;11305:7;11313:1;11305:10;;;;;;;;;;;;;;:25;;11297:74;;;;-1:-1:-1::0;;;11297:74:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17222:274:::0;17384:14;17421:68;17448:8;17458:9;17469:10;17481:7;17421:26;:68::i;:::-;17414:75;17222:274;-1:-1:-1;;;;;17222:274:5:o;17502:273::-;17664:13;17700:68;17726:9;17737;17748:10;17760:7;17700:25;:68::i;7504:697::-;7814:14;7840:12;7855:43;7877:7;7886:5;7893:4;7855:21;:43::i;:::-;7840:58;;7908:10;7921;:33;;7945:9;7921:33;;;-1:-1:-1;;7921:33:5;7964:77;;;-1:-1:-1;;;7964:77:5;;7989:10;7964:77;;;;8009:4;7964:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7908:46;;-1:-1:-1;;;;;;7964:24:5;;;;;:77;;;;;-1:-1:-1;;7964:77:5;;;;;;;;-1:-1:-1;7964:24:5;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;7964:77:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7964:77:5;;;;8063:131;8124:5;8131:9;8142:14;8158:12;8172:2;8176:8;8063:47;:131::i;:::-;8051:143;7504:697;-1:-1:-1;;;;;;;;;;;;;7504:697:5:o;14658:692::-;14886:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;14906:134:::1;14951:4;;14956:1;14951:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;14951:7:5::1;14960:10;14972:48;14994:7;15003:4;;15008:1;15003:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;15003:7:5::1;15012:4;;15017:1;15012:7;;;;;;14972:48;15022:8;14906:31;:134::i;:::-;15050:18;15078:4:::0;;-1:-1:-1;;15083:15:5;;15078:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15078:21:5::1;-1:-1:-1::0;;;;;15071:39:5::1;;15111:2;15071:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15071:43:5::1;-1:-1:-1::0;;;;;15071:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15071:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15071:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15071:43:5;15124:44:::1;::::0;;15071:43:::1;15124:44:::0;;::::1;::::0;;;;;;;;;;;15071:43;;-1:-1:-1;15124:44:5::1;::::0;;;15159:4;;;;;;15124:44;::::1;::::0;15159:4;;15124:44;15159:4;15124:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;15165:2:5;;-1:-1:-1;15124:34:5::1;::::0;-1:-1:-1;;15124:44:5:i:1;:::-;15265:12:::0;15199:62:::1;15247:13:::0;15206:4;;-1:-1:-1;;15211:15:5;;15206:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15206:21:5::1;-1:-1:-1::0;;;;;15199:39:5::1;;15239:2;15199:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15199:43:5::1;-1:-1:-1::0;;;;;15199:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15199:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15199:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15199:43:5;;:62:::1;:47;:62;:::i;:::-;:78;;15178:165;;;;-1:-1:-1::0;;;15178:165:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;592:1;14658:692:::0;;;;;;;:::o;16179:813::-;16436:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;16493:4:5::1;16468:29;:4:::0;;-1:-1:-1;;16473:15:5;;16468:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16468:21:5::1;-1:-1:-1::0;;;;;16468:29:5::1;;16460:68;;;::::0;;-1:-1:-1;;;16460:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;16460:68:5;;;;;;;;;;;;;::::1;;16538:134;16583:4;;16588:1;16583:7;;;;;;16538:134;16682:55;16717:4;;16682:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;16731:4:5::1;::::0;-1:-1:-1;16682:34:5::1;::::0;-1:-1:-1;;16682:55:5:i:1;:::-;16764:37;::::0;;-1:-1:-1;;;16764:37:5;;16795:4:::1;16764:37;::::0;::::1;::::0;;;16747:14:::1;::::0;-1:-1:-1;;;;;16771:4:5::1;16764:22;::::0;::::1;::::0;:37;;;;;::::1;::::0;;;;;;;;;:22;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;16764:37:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16764:37:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;16764:37:5;;-1:-1:-1;16819:25:5;;::::1;;16811:78;;;;-1:-1:-1::0;;;16811:78:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16905:4;-1:-1:-1::0;;;;;16899:20:5::1;;16920:9;16899:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16899:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16899:31:5;;;;16940:45;16971:2;16975:9;16940:30;:45::i;10225:671::-:0;10435:21;10408:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;10491:4:::1;-1:-1:-1::0;;;;;10480:15:5::1;:4;;10485:1;10480:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;10480:7:5::1;-1:-1:-1::0;;;;;10480:15:5::1;;10472:54;;;::::0;;-1:-1:-1;;;10472:54:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;10472:54:5;;;;;;;;;;;;;::::1;;10546:53;10574:7;10583:9;10594:4;;10546:53;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10546:27:5::1;::::0;-1:-1:-1;;;10546:53:5:i:1;:::-;10536:63;;10648:12;10617:7;10642:1;10625:7;:14;:18;10617:27;;;;;;;;;;;;;;:43;;10609:96;;;;-1:-1:-1::0;;;10609:96:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10721:4;-1:-1:-1::0;;;;;10715:19:5::1;;10742:7;10750:1;10742:10;;;;;;;;;;;;;;10715:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10715:40:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10715:40:5;;;;;10778:4;-1:-1:-1::0;;;;;10772:20:5::1;;10793:48;10815:7;10824:4;;10829:1;10824:7;;;;;;10793:48;10843:7;10851:1;10843:10;;;;;;;;;;;;;;10772:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;10772:82:5::1;-1:-1:-1::0;;;;;10772:82:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10772:82:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10772:82:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;10772:82:5;10765:90:::1;;;;10865:24;10871:7;10880:4;;10865:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10886:2:5;;-1:-1:-1;10865:5:5::1;::::0;-1:-1:-1;;10865:24:5:i:1;:::-;10225:671:::0;;;;;;;;:::o;9636:584::-;9854:21;9835:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;9897:52:::1;9924:7;9933:9;9944:4;;9897:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9897:26:5::1;::::0;-1:-1:-1;;;9897:52:5:i:1;:::-;9887:62;;9981:11;9967:7;9975:1;9967:10;;;;;;;;;;;;;;:25;;9959:74;;;;-1:-1:-1::0;;;9959:74:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;435:38:::0;;;:::o;17033:183::-;17130:12;17161:48;17181:7;17190:8;17200;17161:19;:48::i;:::-;17154:55;17033:183;-1:-1:-1;;;;17033:183:5:o;6819:680::-;7078:14;7059:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;7120:188:::1;7149:5;7168:4;7186:9;7209:14;7237:12;7271:4;7290:8;7120:15;:188::i;:::-;7357:38;::::0;;-1:-1:-1;;;7357:38:5;;7389:4:::1;7357:38;::::0;::::1;::::0;;;7104:204;;-1:-1:-1;7318:78:5::1;::::0;-1:-1:-1;7346:5:5;;7353:2;;-1:-1:-1;;;;;7357:23:5;::::1;::::0;::::1;::::0;:38;;;;;::::1;::::0;;;;;;;;;:23;:38;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;7357:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7357:38:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;7357:38:5;7318:27:::1;:78::i;:::-;7412:4;-1:-1:-1::0;;;;;7406:20:5::1;;7427:9;7406:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;7406:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7406:31:5;;;;7447:45;7478:2;7482:9;7447:30;:45::i;15355:819::-:0;15605:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;15648:4:::1;-1:-1:-1::0;;;;;15637:15:5::1;:4;;15642:1;15637:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;15637:7:5::1;-1:-1:-1::0;;;;;15637:15:5::1;;15629:54;;;::::0;;-1:-1:-1;;;15629:54:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;15629:54:5;;;;;;;;;;;;;::::1;;15693:13;15709:9;15693:25;;15734:4;-1:-1:-1::0;;;;;15728:19:5::1;;15755:8;15728:38;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15728:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15728:38:5;;;;;15789:4;-1:-1:-1::0;;;;;15783:20:5::1;;15804:48;15826:7;15835:4;;15840:1;15835:7;;;;;;15804:48;15854:8;15783:80;;;;;;;;;;;;;-1:-1:-1::0;;;;;15783:80:5::1;-1:-1:-1::0;;;;;15783:80:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15783:80:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15783:80:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15783:80:5;15776:88:::1;;;;15874:18;15902:4:::0;;-1:-1:-1;;15907:15:5;;15902:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15902:21:5::1;-1:-1:-1::0;;;;;15895:39:5::1;;15935:2;15895:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15895:43:5::1;-1:-1:-1::0;;;;;15895:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15895:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15895:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15895:43:5;15948:44:::1;::::0;;15895:43:::1;15948:44:::0;;::::1;::::0;;;;;;;;;;;15895:43;;-1:-1:-1;15948:44:5::1;::::0;;;15983:4;;;;;;15948:44;::::1;::::0;15983:4;;15948:44;15983:4;15948:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;15989:2:5;;-1:-1:-1;15948:34:5::1;::::0;-1:-1:-1;;15948:44:5:i:1;:::-;16089:12:::0;16023:62:::1;16071:13:::0;16030:4;;-1:-1:-1;;16035:15:5;;16030:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16030:21:5::1;-1:-1:-1::0;;;;;16023:39:5::1;;16063:2;16023:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;16023:43:5::1;-1:-1:-1::0;;;;;16023:43:5::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;3937:831:5::0;4183:12;4197;4164:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;4221:12:::1;4236:46;4258:7;4267:6;4275;4236:21;:46::i;:::-;4292:59;::::0;;-1:-1:-1;;;4292:59:5;;4323:10:::1;4292:59;::::0;::::1;::::0;-1:-1:-1;;;;;4292:30:5;::::1;:59:::0;;;;;;;;;;;;;;4221:61;;-1:-1:-1;4292:30:5;;::::1;::::0;:59;;;;;::::1;::::0;;;;;;;;;-1:-1:-1;4292:30:5;:59;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4292:59:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4292:59:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;4418:26:5::1;::::0;;-1:-1:-1;;;4418:26:5;;-1:-1:-1;;;;;4418:26:5;;::::1;;::::0;::::1;::::0;;;4388:12:::1;::::0;;;4418:22;;::::1;::::0;::::1;::::0;:26;;;;;;;;;;;4388:12;4418:22;:26;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4418:26:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4418:26:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;4418:26:5;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;4418:26:5;-1:-1:-1;4455:14:5::1;4474:40;4499:6:::0;4507;4474:24:::1;:40::i;:::-;4454:60;;;4555:6;-1:-1:-1::0;;;;;4545:16:5::1;:6;-1:-1:-1::0;;;;;4545:16:5::1;;:58;;4586:7;4595;4545:58;;;4565:7;4574;4545:58;4524:79:::0;;-1:-1:-1;4524:79:5;-1:-1:-1;4621:21:5;;::::1;;4613:69;;;;-1:-1:-1::0;;;4613:69:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4711:10;4700:7;:21;;4692:69;;;;-1:-1:-1::0;;;4692:69:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;592:1;;;;3937:831:::0;;;;;;;;;;;:::o;388:41::-;;;:::o;17781:242::-;17920:21;17964:52;17992:7;18001:8;18011:4;17964:27;:52::i;6093:650::-;6374:16;6392:14;6418:12;6433:43;6455:7;6464:5;6471:4;6433:21;:43::i;:::-;6418:58;;6486:10;6499;:33;;6523:9;6499:33;;;-1:-1:-1;;6499:33:5;6542:77;;;-1:-1:-1;;;6542:77:5;;6567:10;6542:77;;;;6587:4;6542:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6486:46;;-1:-1:-1;;;;;;6542:24:5;;;;;:77;;;;;-1:-1:-1;;6542:77:5;;;;;;;;-1:-1:-1;6542:24:5;:77;;;2:2:-1;;;;27:1;24;17:12;2:2;6542:77:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6542:77:5;;;;6656:80;6675:5;6682:9;6693:14;6709:12;6723:2;6727:8;6656:18;:80::i;:::-;6629:107;;;;-1:-1:-1;6093:650:5;-1:-1:-1;;;;;;;;;;;;;6093:650:5:o;2230:717::-;2509:12;2523;2537:14;2490:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;2584:85:::1;2598:6;2606;2614:14;2630;2646:10;2658;2584:13;:85::i;:::-;2563:106:::0;;-1:-1:-1;2563:106:5;-1:-1:-1;2679:12:5::1;2694:46;2716:7;2725:6:::0;2733;2694:21:::1;:46::i;:::-;2679:61;;2750:66;2782:6;2790:10;2802:4;2808:7;2750:31;:66::i;:::-;2826;2858:6;2866:10;2878:4;2884:7;2826:31;:66::i;:::-;2926:4;-1:-1:-1::0;;;;;2914:22:5::1;;2937:2;2914:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;2914:26:5::1;-1:-1:-1::0;;;;;2914:26:5::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;2914:26:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2914:26:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;2914:26:5;2230:717;;;;-1:-1:-1;2914:26:5;;-1:-1:-1;2230:717:5;;-1:-1:-1;;;;;;;;;2230:717:5:o;2952:945::-;3198:16;3216:14;3232;3179:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;3285:169:::1;3312:5;3331:4;3349:18;3381:9;3404:14;3432:12;3285:13;:169::i;:::-;3258:196:::0;;-1:-1:-1;3258:196:5;-1:-1:-1;3464:12:5::1;3479:43;3501:7;3510:5:::0;3517:4:::1;3479:21;:43::i;:::-;3464:58;;3532:69;3564:5;3571:10;3583:4;3589:11;3532:31;:69::i;:::-;3617:4;-1:-1:-1::0;;;;;3611:19:5::1;;3638:9;3611:39;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3611:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3611:39:5;;;;;3673:4;-1:-1:-1::0;;;;;3667:20:5::1;;3688:4;3694:9;3667:37;;;;;;;;;;;;;-1:-1:-1::0;;;;;3667:37:5::1;-1:-1:-1::0;;;;;3667:37:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3667:37:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3667:37:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3667:37:5;3660:45:::1;;;;3739:4;-1:-1:-1::0;;;;;3727:22:5::1;;3750:2;3727:26;;;;;;;;;;;;;-1:-1:-1::0;;;;;3727:26:5::1;-1:-1:-1::0;;;;;3727:26:5::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3727:26:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3727:26:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3727:26:5;;-1:-1:-1;3802:9:5::1;:21:::0;-1:-1:-1;3798:92:5::1;;;3825:65;3856:10;3880:9;3868;:21;3825:30;:65::i;:::-;592:1;2952:945:::0;;;;;;;;;;;:::o;12533:782::-;12740:21;12713:8;541:15;529:8;:27;;521:61;;;;;-1:-1:-1;;;521:61:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;521:61:5;;;;;;;;;;;;;;;12796:4:::1;-1:-1:-1::0;;;;;12785:15:5::1;:4;;12790:1;12785:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;12785:7:5::1;-1:-1:-1::0;;;;;12785:15:5::1;;12777:54;;;::::0;;-1:-1:-1;;;12777:54:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;12777:54:5;;;;;;;;;;;;;::::1;;12851:52;12878:7;12887:9;12898:4;;12851:52;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12851:26:5::1;::::0;-1:-1:-1;;;12851:52:5:i:1;:::-;12841:62;;12935:9;12921:7;12929:1;12921:10;;;;;;;;;;;;;;:23;;12913:72;;;;-1:-1:-1::0;;;12913:72:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13001:4;-1:-1:-1::0;;;;;12995:19:5::1;;13022:7;13030:1;13022:10;;;;;;;;;;;;;;12995:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12995:40:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12995:40:5;;;;;13058:4;-1:-1:-1::0;;;;;13052:20:5::1;;13073:48;13095:7;13104:4;;13109:1;13104:7;;;;;;13073:48;13123:7;13131:1;13123:10;;;;;;;;;;;;;;13052:82;;;;;;;;;;;;;-1:-1:-1::0;;;;;13052:82:5::1;-1:-1:-1::0;;;;;13052:82:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13052:82:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13052:82:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;13052:82:5;13045:90:::1;;;;13145:24;13151:7;13160:4;;13145:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;13166:2:5;;-1:-1:-1;13145:5:5::1;::::0;-1:-1:-1;;13145:24:5:i:1;:::-;13230:7;13238:1;13230:10;;;;;;;;;;;;;;13218:9;:22;13214:94;;;13242:66;13273:10;13297:7;13305:1;13297:10;;;;;;;;;;;;;;13285:9;:22;13242:30;:66::i;526:357:24:-:0;719:45;;;-1:-1:-1;;;;;719:45:24;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;719:45:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;708:57:24;;;;673:12;;687:17;;708:10;;;;719:45;708:57;;;25:18:-1;708:57:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;708:57:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;672:93:24;;;;783:7;:57;;;;-1:-1:-1;795:11:24;;:16;;:44;;;826:4;815:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;815:24:24;795:44;775:101;;;;;-1:-1:-1;;;775:101:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;526:357;;;;;:::o;1293:192::-;1400:12;;;1362;1400;;;;;;;;;-1:-1:-1;;;;;1379:7:24;;;1393:5;;1379:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1379:34:24;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1361:52:24;;;1431:7;1423:55;;;;-1:-1:-1;;;1423:55:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1293:192;;;:::o;3663:543:18:-;3764:21;3820:1;3805:4;:11;:16;;3797:56;;;;;-1:-1:-1;;;3797:56:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;3884:4;:11;3873:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3873:23:18;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;3873:23:18;;3863:33;;3919:8;3906:7;3914:1;3906:10;;;;;;;;;;;;;:21;;;;;3942:6;3937:263;3968:1;3954:4;:11;:15;3950:1;:19;3937:263;;;3991:14;4007:15;4026:42;4038:7;4047:4;4052:1;4047:7;;;;;;;;;;;;;;4056:4;4061:1;4065;4061:5;4056:11;;;;;;;;;;;;;;4026;:42::i;:::-;3990:78;;;;4099:90;4112:7;4120:1;4112:10;;;;;;;;;;;;;;4124:9;4135:10;4147:41;4158:7;4167:4;4172:1;4167:7;;;;;;;;;;;;;;4176:4;4181:1;4185;4181:5;4176:11;;;;;;;;;;;;;;4147:10;:41::i;:::-;4099:12;:90::i;:::-;4082:7;4090:1;4094;4090:5;4082:14;;;;;;;;;;;;;;;;;:107;-1:-1:-1;;3971:3:18;;3937:263;;;;3663:543;;;;;:::o;698:450::-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;889:398:24:-;1112:51;;;-1:-1:-1;;;;;1112:51:24;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1112:51:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1101:63:24;;;;1066:12;;1080:17;;1101:10;;;;1112:51;1101:63;;;25:18:-1;1101:63:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1101:63:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1065:99:24;;;;1182:7;:57;;;;-1:-1:-1;1194:11:24;;:16;;:44;;;1225:4;1214:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1214:24:24;1194:44;1174:106;;;;-1:-1:-1;;;1174:106:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:398;;;;;;:::o;8308:712:5:-;8414:6;8409:605;8440:1;8426:4;:11;:15;8422:1;:19;8409:605;;;8463:13;8478:14;8497:4;8502:1;8497:7;;;;;;;;;;;;;;8506:4;8511:1;8515;8511:5;8506:11;;;;;;;;;;;;;;8462:56;;;;8533:14;8552:39;8577:5;8584:6;8552:24;:39::i;:::-;8532:59;;;8605:14;8622:7;8630:1;8634;8630:5;8622:14;;;;;;;;;;;;;;8605:31;;8651:15;8668;8696:6;-1:-1:-1;;;;;8687:15:5;:5;-1:-1:-1;;;;;8687:15:5;;:61;;8729:9;8745:1;8687:61;;;8711:1;8715:9;8687:61;8650:98;;;;8762:10;8793:1;8779:4;:11;:15;8775:1;:19;:79;;8851:3;8775:79;;;8797:51;8819:7;8828:6;8836:4;8841:1;8845;8841:5;8836:11;;;;;;;;;;;;;;8797:21;:51::i;:::-;8762:92;;8880:45;8902:7;8911:5;8918:6;8880:21;:45::i;:::-;-1:-1:-1;;;;;8868:63:5;;8949:10;8961;8973:2;8987:1;8977:12;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;108:14;8977:12:5;87:42:-1;143:17;;-1:-1;8977:12:5;;8868:135;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8868:135:5;-1:-1:-1;;;;;8868:135:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8868:135:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8868:135:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8443:3:5;;;;;-1:-1:-1;8409:605:5;;-1:-1:-1;;;;;;;;8409:605:5;;;8308:712;;;:::o;4284:564:18:-;4385:21;4441:1;4426:4;:11;:16;;4418:56;;;;;-1:-1:-1;;;4418:56:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;4505:4;:11;4494:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4494:23:18;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;4494:23:18;;4484:33;;4557:9;4527:7;4552:1;4535:7;:14;:18;4527:27;;;;;;;;;;;;;;;;;:39;4590:11;;-1:-1:-1;;4590:15:18;4576:266;4607:5;;4576:266;;4634:14;4650:15;4669:42;4681:7;4690:4;4699:1;4695;:5;4690:11;;;;;;;;;;;;;;4703:4;4708:1;4703:7;;;;;;;4669:42;4633:78;;;;4742:89;4754:7;4762:1;4754:10;;;;;;;;;;;;;;4766:9;4777:10;4789:41;4800:7;4809:4;4818:1;4814;:5;4809:11;;;;;;;;;;;;;;4822:4;4827:1;4822:7;;;;;;;4789:41;4742:11;:89::i;:::-;4725:7;4737:1;4733;:5;4725:14;;;;;;;;;;;;;;;;;:106;-1:-1:-1;;;;4614:3:18;4576:266;;2430:540;2537:14;2582:1;2571:8;:12;2563:65;;;;-1:-1:-1;;;2563:65:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2658:1;2646:9;:13;:31;;;;;2676:1;2663:10;:14;2646:31;2638:81;;;;-1:-1:-1;;;2638:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2729:20;2752:38;2765:24;2770:5;2781:7;2765:24;:15;:24;:::i;:::-;2752:8;;:38;:12;:38;:::i;:::-;2729:61;-1:-1:-1;2800:14:18;2817:31;2729:61;2837:10;2817:31;:19;:31;:::i;:::-;2800:48;-1:-1:-1;2858:16:18;2877:41;2902:15;2877:20;:9;2891:5;2877:20;:13;:20;:::i;:::-;:24;:41;:24;:41;:::i;:::-;2858:60;;2952:11;2940:9;:23;;;;;;;2430:540;-1:-1:-1;;;;;;;;2430:540:18:o;3088:496::-;3195:13;3240:1;3228:9;:13;3220:67;;;;-1:-1:-1;;;3220:67:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3317:1;3305:9;:13;:31;;;;;3335:1;3322:10;:14;3305:31;3297:81;;;;-1:-1:-1;;;3297:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3388:14;3405:35;3434:5;3405:24;:9;3419;3405:24;:13;:24;:::i;:::-;:28;:35;:28;:35;:::i;:::-;3388:52;-1:-1:-1;3450:16:18;3469:55;3499:24;3504:5;3515:7;3499:24;:15;:24;:::i;:::-;3469:25;:10;3484:9;3469:25;:14;:25;:::i;:55::-;3450:74;;3545:32;3575:1;3558:11;3546:9;:23;;;;;;;3545:32;:29;:32;:::i;:::-;3534:43;3088:496;-1:-1:-1;;;;;;;3088:496:18:o;13458:1195:5:-;13570:6;13565:1082;13596:1;13582:4;:11;:15;13578:1;:19;13565:1082;;;13619:13;13634:14;13653:4;13658:1;13653:7;;;;;;;;;;;;;;13662:4;13667:1;13671;13667:5;13662:11;;;;;;;;;;;;;;13618:56;;;;13689:14;13708:39;13733:5;13740:6;13708:24;:39::i;:::-;13688:59;;;13761:16;13792:45;13814:7;13823:5;13830:6;13792:21;:45::i;:::-;13761:77;;13852:16;13882:17;13968:13;13983;14001:4;-1:-1:-1;;;;;14001:16:5;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14001:18:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14001:18:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14001:18:5;;;;;;;-1:-1:-1;;;;;13967:52:5;;;;-1:-1:-1;13967:52:5;;-1:-1:-1;14034:17:5;;-1:-1:-1;;;;;14075:15:5;;;;;;;:61;;14117:8;14127;14075:61;;;14094:8;14104;14075:61;14033:103;;;;14164:56;14207:12;14171:5;-1:-1:-1;;;;;14164:23:5;;14196:4;14164:38;;;;;;;;;;;;;-1:-1:-1;;;;;14164:38:5;-1:-1:-1;;;;;14164:38:5;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;14164:56:5;14150:70;;14249:84;14276:11;14289:12;14303:13;14318:4;-1:-1:-1;;;;;14318:12:5;;:14;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14318:14:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14318:14:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14318:14:5;14249:84;;:26;:84::i;:::-;14234:99;;13565:1082;;;;14362:15;14379;14407:6;-1:-1:-1;;;;;14398:15:5;:5;-1:-1:-1;;;;;14398:15:5;;:67;;14443:12;14462:1;14398:67;;;14422:1;14426:12;14398:67;14361:104;;;;14479:10;14510:1;14496:4;:11;:15;14492:1;:19;:79;;14568:3;14492:79;;;14514:51;14536:7;14545:6;14553:4;14558:1;14562;14558:5;14553:11;;;;;;;14514:51;14623:12;;;14633:1;14623:12;;;;;;;;;;-1:-1:-1;;;14585:51:5;;;;;;;;;;;;;;-1:-1:-1;;;;;14585:51:5;;;;;;;;;;;;;;;;;;;;;;14479:92;;-1:-1:-1;14585:9:5;;;;;;14595:10;;14607;;14479:92;;14623:12;;14585:51;;;;;;;;14623:12;;14585:51;;;;14623:12;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14585:51:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14585:51:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13599:3:5;;;;;-1:-1:-1;13565:1082:5;;-1:-1:-1;;;;;;;;;;13565:1082:5;286:127:23;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;2000:311:18;2082:12;2124:1;2114:7;:11;2106:58;;;;-1:-1:-1;;;2106:58:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2193:1;2182:8;:12;:28;;;;;2209:1;2198:8;:12;2182:28;2174:78;;;;-1:-1:-1;;;2174:78:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2296:8;2272:21;:7;2284:8;2272:21;:11;:21;:::i;:::-;:32;;;;;;;2000:311;-1:-1:-1;;;;2000:311:18:o;270:339::-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;883:1342:5:-;1187:47;;;-1:-1:-1;;;1187:47:5;;-1:-1:-1;;;;;1187:47:5;;;;;;;;;;;;;;;;1094:12;;;;;;1202:7;1187:31;;;;;;:47;;;;;;;;;;;;;;;:31;:47;;;2:2:-1;;;;27:1;24;17:12;2:2;1187:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1187:47:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1187:47:5;-1:-1:-1;;;;;1187:61:5;;1183:142;;;1264:50;;;-1:-1:-1;;;1264:50:5;;-1:-1:-1;;;;;1264:50:5;;;;;;;;;;;;;;;;1279:7;1264:34;;;;;;:50;;;;;;;;;;;;;;;-1:-1:-1;1264:34:5;:50;;;2:2:-1;;;;27:1;24;17:12;2:2;1264:50:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1264:50:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;1183:142:5;1335:13;1350;1367:50;1393:7;1402:6;1410;1367:25;:50::i;:::-;1334:83;;;;1431:8;1443:1;1431:13;:30;;;;-1:-1:-1;1448:13:5;;1431:30;1427:792;;;1499:14;;-1:-1:-1;1515:14:5;;-1:-1:-1;1427:792:5;;;1561:19;1583:55;1603:14;1619:8;1629;1583:19;:55::i;:::-;1561:77;;1674:14;1656;:32;1652:557;;1734:10;1716:14;:28;;1708:76;;;;-1:-1:-1;;;1708:76:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1824:14;;-1:-1:-1;1840:14:5;-1:-1:-1;1840:14:5;1652:557;;;1894:19;1916:55;1936:14;1952:8;1962;1916:19;:55::i;:::-;1894:77;;2014:14;1996;:32;;1989:40;;;;2073:10;2055:14;:28;;2047:76;;;;-1:-1:-1;;;2047:76:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:14;-1:-1:-1;2179:14:5;;-1:-1:-1;1652:557:5;1427:792;;883:1342;;;;;;;;;;;:::o;1203:384:18:-;1296:13;1311;1337:14;1356:26;1367:6;1375;1356:10;:26::i;:::-;1336:46;;;1393:13;1408;1438:32;1446:7;1455:6;1463;1438:7;:32::i;:::-;-1:-1:-1;;;;;1426:57:18;;:59;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1426:59:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1426:59:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1426:59:18;;;;;;;-1:-1:-1;;;;;1392:93:18;;;;-1:-1:-1;1392:93:18;;-1:-1:-1;;;;;;1518:16:18;;;;;;;:62;;1561:8;1571;1518:62;;;1538:8;1548;1518:62;1495:85;;;;-1:-1:-1;1203:384:18;-1:-1:-1;;;;;;;1203:384:18:o;1646:244::-;1738:12;1763:14;1782:26;1793:6;1801;1782:10;:26::i;:::-;1762:46;;;1840:32;1848:7;1857:6;1865;1840:7;:32::i;:::-;-1:-1:-1;;;;;1828:53:18;;:55;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1828:55:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1828:55:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1828:55:18;1818:65;;;1646:244;-1:-1:-1;;;;;1646:244:18:o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;;;154:126;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - }, - { - "internalType": "address", - "name": "_WETH", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "60c060405234801561001057600080fd5b50604051620048d9380380620048d98339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614754620001856000398061015f5280610cf05280610d2b5280610e0d528061102b52806113b5528061154052806119075280611a015280611ab75280611b855280611ccb5280611d535280611f8b528061200e52806120bd5280612189528061221e528061229252806127905280612a035280612a595280612a8d5280612b015280612ca15280612de45280612e6c525080610e9b5280610f7252806110f1528061112a52806112655280611443528061151e528061168e5280611c185280611d855280611edb52806122c4528061251d5280612715528061273e528061276e52806128db5280612a375280612d345280612e9e528061368952806136cc5280613bd75280613dc1528061410152806141af528061422f52506147546000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a1c578063d06ca61f14610a31578063ded9382a14610ae6578063e8e3370014610b59578063f305d71914610bd9578063fb3bdb4114610c1f57610188565b80638803dbee146107eb578063ad5c464814610881578063ad615dec146108b2578063af2979eb146108e8578063b6f9de951461093b578063baa2abde146109bf57610188565b806352707d8c1161010857806352707d8c1461053e578063571fd0121461058c5780635b0d5984146105c85780635c11d7951461063b578063791ac947146106d15780637ff36ab51461076757610188565b806302751cec1461018d57806318cbafe5146101f95780631f00ca74146102df5780632195995c1461039457806338ed1739146104125780634a25d94a146104a857610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610ca3565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061028f600480360360a081101561021c57600080fd5b813591602081013591810190606081016040820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b91935091506001600160a01b038135169060200135610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102cb5781810151838201526020016102b3565b505050509050019250505060405180910390f35b3480156102eb57600080fd5b5061028f6004803603604081101561030257600080fd5b81359190810190604081016020820135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110ea945050505050565b3480156103a057600080fd5b506101e060048036036101608110156103b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611120565b34801561041e57600080fd5b5061028f600480360360a081101561043557600080fd5b813591602081013591810190606081016040820135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460208302840111600160201b8311171561048e57600080fd5b91935091506001600160a01b03813516906020013561121a565b3480156104b457600080fd5b5061028f600480360360a08110156104cb57600080fd5b813591602081013591810190606081016040820135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b91935091506001600160a01b038135169060200135611365565b34801561054a57600080fd5b5061057a6004803603608081101561056157600080fd5b50803590602081013590604081013590606001356114f1565b60408051918252519081900360200190f35b34801561059857600080fd5b5061057a600480360360808110156105af57600080fd5b5080359060208101359060408101359060600135611508565b3480156105d457600080fd5b5061057a60048036036101408110156105ec57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611516565b34801561064757600080fd5b50610186600480360360a081101561065e57600080fd5b813591602081013591810190606081016040820135600160201b81111561068457600080fd5b82018360208201111561069657600080fd5b803590602001918460208302840111600160201b831117156106b757600080fd5b91935091506001600160a01b038135169060200135611624565b3480156106dd57600080fd5b50610186600480360360a08110156106f457600080fd5b813591602081013591810190606081016040820135600160201b81111561071a57600080fd5b82018360208201111561072c57600080fd5b803590602001918460208302840111600160201b8311171561074d57600080fd5b91935091506001600160a01b0381351690602001356118b9565b61028f6004803603608081101561077d57600080fd5b81359190810190604081016020820135600160201b81111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111600160201b831117156107d157600080fd5b91935091506001600160a01b038135169060200135611b3d565b3480156107f757600080fd5b5061028f600480360360a081101561080e57600080fd5b813591602081013591810190606081016040820135600160201b81111561083457600080fd5b82018360208201111561084657600080fd5b803590602001918460208302840111600160201b8311171561086757600080fd5b91935091506001600160a01b038135169060200135611e90565b34801561088d57600080fd5b50610896611f89565b604080516001600160a01b039092168252519081900360200190f35b3480156108be57600080fd5b5061057a600480360360608110156108d557600080fd5b5080359060208101359060400135611fad565b3480156108f457600080fd5b5061057a600480360360c081101561090b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fc2565b6101866004803603608081101561095157600080fd5b81359190810190604081016020820135600160201b81111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460208302840111600160201b831117156109a557600080fd5b91935091506001600160a01b038135169060200135612143565b3480156109cb57600080fd5b506101e0600480360360e08110156109e257600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124cf565b348015610a2857600080fd5b50610896612713565b348015610a3d57600080fd5b5061028f60048036036040811015610a5457600080fd5b81359190810190604081016020820135600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460208302840111600160201b83111715610aa857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612737945050505050565b348015610af257600080fd5b506101e06004803603610140811015610b0a57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135612764565b348015610b6557600080fd5b50610bbb6004803603610100811015610b7d57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612878565b60408051938452602084019290925282820152519081900360600190f35b610bbb600480360360c0811015610bef57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356129b4565b61028f60048036036080811015610c3557600080fd5b81359190810190604081016020820135600160201b811115610c5657600080fd5b820183602082011115610c6857600080fd5b803590602001918460208302840111600160201b83111715610c8957600080fd5b91935091506001600160a01b038135169060200135612c59565b6000808242811015610cea576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b610d19897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124cf565b9093509150610d29898685612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b50505050610db18583613145565b50965096945050505050565b60608142811015610e03576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e3d57fe5b905060200201356001600160a01b03166001600160a01b031614610e96576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b610ef47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110610f0757fe5b60200260200101511015610f4c5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b610fea86866000818110610f5c57fe5b905060200201356001600160a01b031633610fd07f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610f9e57fe5b905060200201356001600160a01b03168b8b6001818110610fbb57fe5b905060200201356001600160a01b03166133bd565b85600081518110610fdd57fe5b602002602001015161347d565b611029828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506135da915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061106857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506110df84836001855103815181106110d257fe5b6020026020010151613145565b509695505050505050565b60606111177f00000000000000000000000000000000000000000000000000000000000000008484613820565b90505b92915050565b60008060006111507f00000000000000000000000000000000000000000000000000000000000000008f8f6133bd565b905060008761115f578c611163565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506112008f8f8f8f8f8f8f6124cf565b809450819550505050509b509b9950505050505050505050565b60608142811015611260576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6112be7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b915086826001845103815181106112d157fe5b602002602001015110156113165760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b61132686866000818110610f5c57fe5b6110df828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b606081428110156113ab576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113e557fe5b905060200201356001600160a01b03166001600160a01b03161461143e576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b61149c7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b915086826000815181106114ac57fe5b60200260200101511115610f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b60006114ff8585858561397f565b95945050505050565b60006114ff85858585613a80565b6000806115647f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050600086611573578b611577565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506116138d8d8d8d8d8d611fc2565b9d9c50505050505050505050505050565b8042811015611668576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6116dd8585600081811061167857fe5b905060200201356001600160a01b0316336116d77f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b905060200201356001600160a01b03168a8a6001818110610fbb57fe5b8a61347d565b6000858560001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561175457600080fd5b505afa158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b505160408051602088810282810182019093528882529293506117c0929091899189918291850190849080828437600092019190915250889250613b80915050565b8661187282888860001981018181106117d557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b505afa15801561184e573d6000803e3d6000fd5b505050506040513d602081101561186457600080fd5b50519063ffffffff613ef616565b10156118af5760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b5050505050505050565b80428110156118fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061193757fe5b905060200201356001600160a01b03166001600160a01b031614611990576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b6119a08585600081811061167857fe5b6119de858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b80915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b5051905086811015611ab55760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b1b57600080fd5b505af1158015611b2f573d6000803e3d6000fd5b505050506118af8482613145565b60608142811015611b83576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611bba57fe5b905060200201356001600160a01b03166001600160a01b031614611c13576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b611c717f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061323d92505050565b91508682600184510381518110611c8457fe5b60200260200101511015611cc95760405162461bcd60e51b81526004018080602001828103825260288152602001806146d36028913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611d0557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611db17f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110611dbe57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611e1557600080fd5b505af1158015611e29573d6000803e3d6000fd5b505050506040513d6020811015611e3f57600080fd5b5051611e4757fe5b611e86828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b5095945050505050565b60608142811015611ed6576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b611f347f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91508682600081518110611f4457fe5b602002602001015111156113165760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611fba848484613f46565b949350505050565b60008142811015612008576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612037887f000000000000000000000000000000000000000000000000000000000000000089898930896124cf565b604080516370a0823160e01b815230600482015290519194506120bb92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d60208110156120b457600080fd5b5051612fdb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506110df8483613145565b8042811015612187576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121be57fe5b905060200201356001600160a01b03166001600160a01b031614612217576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122f07f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d602081101561236a57600080fd5b505161237257fe5b60008686600019810181811061238457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d602081101561241357600080fd5b505160408051602089810282810182019093528982529293506124559290918a918a918291850190849080828437600092019190915250899250613b80915050565b87611872828989600019810181811061246a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b6000808242811015612516576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b60006125437f00000000000000000000000000000000000000000000000000000000000000008c8c6133bd565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561259e57600080fd5b505af11580156125b2573d6000803e3d6000fd5b505050506040513d60208110156125c857600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506040513d604081101561263f57600080fd5b508051602090910151909250905060006126598e8e613ff2565b509050806001600160a01b03168e6001600160a01b03161461267c57818361267f565b82825b90975095508a8710156126c35760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b898610156127025760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111177f0000000000000000000000000000000000000000000000000000000000000000848461323d565b60008060006127b47f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006133bd565b90506000876127c3578c6127c7565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561283d57600080fd5b505af1158015612851573d6000803e3d6000fd5b505050506128638e8e8e8e8e8e610ca3565b909f909e509c50505050505050505050505050565b600080600083428110156128c1576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b6128cf8c8c8c8c8c8c6140d0565b909450925060006129017f00000000000000000000000000000000000000000000000000000000000000008e8e6133bd565b905061290f8d33838861347d565b61291b8c33838761347d565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561297357600080fd5b505af1158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129fd576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b612a2b8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c6140d0565b90945092506000612a7d7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006133bd565b9050612a8b8b33838861347d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b5051612bb157fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051925034841015612c4b57612c4b33853403613145565b505096509650969350505050565b60608142811015612c9f576040805162461bcd60e51b81526020600482015260156024820152600080516020614590833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cd657fe5b905060200201356001600160a01b03166001600160a01b031614612d2f576040805162461bcd60e51b815260206004820152601a60248201526000805160206145b0833981519152604482015290519081900360640190fd5b612d8d7f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061382092505050565b91503482600081518110612d9d57fe5b60200260200101511115612de25760405162461bcd60e51b81526004018080602001828103825260248152602001806146fb6024913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e1e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eca7f0000000000000000000000000000000000000000000000000000000000000000898960008181106116ba57fe5b84600081518110612ed757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051612f6057fe5b612f9f828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506135da915050565b81600081518110612fac57fe5b6020026020010151341115611e8657611e863383600081518110612fcc57fe5b60200260200101513403613145565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130585780518252601f199092019160209182019101613039565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130ba576040519150601f19603f3d011682016040523d82523d6000602084013e6130bf565b606091505b50915091508180156130ed5750805115806130ed57508080602001905160208110156130ea57600080fd5b50515b61313e576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131915780518252601f199092019160209182019101613172565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50509050806132385760405162461bcd60e51b81526004018080602001828103825260238152602001806146416023913960400191505060405180910390fd5b505050565b6060600282511015613296576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156132ae57600080fd5b506040519080825280602002602001820160405280156132d8578160200160208202803683370190505b50905082816000815181106132e957fe5b60200260200101818152505060005b60018351038110156133b55760008061333b8786858151811061331757fe5b602002602001015187866001018151811061332e57fe5b6020026020010151614344565b9150915061339184848151811061334e57fe5b6020026020010151838361338c8b8a898151811061336857fe5b60200260200101518b8a6001018151811061337f57fe5b602002602001015161440b565b61397f565b8484600101815181106133a057fe5b602090810291909101015250506001016132f8565b509392505050565b60008060006133cc8585613ff2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135025780518252601f1990920191602091820191016134e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613564576040519150601f19603f3d011682016040523d82523d6000602084013e613569565b606091505b5091509150818015613597575080511580613597575080806020019051602081101561359457600080fd5b50515b6135d25760405162461bcd60e51b81526004018080602001828103825260248152602001806146af6024913960400191505060405180910390fd5b505050505050565b60005b600183510381101561381a576000808483815181106135f857fe5b602002602001015185846001018151811061360f57fe5b60200260200101519150915060006136278383613ff2565b509050600087856001018151811061363b57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136695782600061366d565b6000835b91509150600060028a5103881061368457886136c5565b6136c57f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106136b857fe5b60200260200101516133bd565b90506136f27f000000000000000000000000000000000000000000000000000000000000000088886133bd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561372f576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137a0578181015183820152602001613788565b50505050905090810190601f1680156137cd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b5050600190990198506135dd975050505050505050565b50505050565b6060600282511015613879576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561389157600080fd5b506040519080825280602002602001820160405280156138bb578160200160208202803683370190505b50905082816001835103815181106138cf57fe5b60209081029190910101528151600019015b80156133b557600080613911878660018603815181106138fd57fe5b602002602001015187868151811061332e57fe5b9150915061395a84848151811061392457fe5b602002602001015183836139558b8a60018a038151811061394157fe5b60200260200101518b8a8151811061337f57fe5b613a80565b84600185038151811061396957fe5b60209081029190910101525050600019016138e1565b60008085116139bf5760405162461bcd60e51b81526004018080602001828103825260288152602001806146876028913960400191505060405180910390fd5b6000841180156139cf5750600083115b613a0a5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613a2e613a216127108563ffffffff613ef616565b879063ffffffff61449916565b90506000613a42828663ffffffff61449916565b90506000613a6883613a5c8961271063ffffffff61449916565b9063ffffffff6144fc16565b9050808281613a7357fe5b0498975050505050505050565b6000808511613ac05760405162461bcd60e51b81526004018080602001828103825260298152602001806146186029913960400191505060405180910390fd5b600084118015613ad05750600083115b613b0b5760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b6000613b2f612710613b23878963ffffffff61449916565b9063ffffffff61449916565b90506000613b58613b486127108663ffffffff613ef616565b613b23878a63ffffffff613ef616565b9050613b756001828481613b6857fe5b049063ffffffff6144fc16565b979650505050505050565b60005b600183510381101561323857600080848381518110613b9e57fe5b6020026020010151858460010181518110613bb557fe5b6020026020010151915091506000613bcd8383613ff2565b5090506000613bfd7f000000000000000000000000000000000000000000000000000000000000000085856133bd565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613c3e57600080fd5b505afa158015613c52573d6000803e3d6000fd5b505050506040513d6060811015613c6857600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613c9e578284613ca1565b83835b91509150613cff828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183a57600080fd5b9550613d778683838a6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d4057600080fd5b505afa158015613d54573d6000803e3d6000fd5b505050506040513d6020811015613d6a57600080fd5b505163ffffffff1661397f565b945050505050600080856001600160a01b0316886001600160a01b031614613da157826000613da5565b6000835b91509150600060028c51038a10613dbc578a613df0565b613df07f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106136b857fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613e7a578181015183820152602001613e62565b50505050905090810190601f168015613ea75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ec957600080fd5b505af1158015613edd573d6000803e3d6000fd5b50506001909b019a50613b839950505050505050505050565b8082038281111561111a576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613f865760405162461bcd60e51b815260040180806020018281038252602281526020018061456e6022913960400191505060405180910390fd5b600083118015613f965750600082115b613fd15760405162461bcd60e51b81526004018080602001828103825260258152602001806145f36025913960400191505060405180910390fd5b82613fe2858463ffffffff61449916565b81613fe957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140465760405162461bcd60e51b815260040180806020018281038252602281526020018061454c6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610614066578284614069565b83835b90925090506001600160a01b0382166140c9576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b50516001600160a01b0316141561422757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156141fa57600080fd5b505af115801561420e573d6000803e3d6000fd5b505050506040513d602081101561422457600080fd5b50505b6000806142557f00000000000000000000000000000000000000000000000000000000000000008b8b614344565b91509150816000148015614267575080155b1561427757879350869250614337565b6000614284898484613f46565b90508781116142d757858110156142cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806146646023913960400191505060405180910390fd5b889450925082614335565b60006142e4898486613f46565b9050898111156142f057fe5b8781101561432f5760405162461bcd60e51b81526004018080602001828103825260238152602001806145d06023913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008060006143538585613ff2565b5090506000806143648888886133bd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561439c57600080fd5b505afa1580156143b0573d6000803e3d6000fd5b505050506040513d60608110156143c657600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b03878116908416146143f95780826143fc565b81815b90999098509650505050505050565b6000806144188484613ff2565b5090506144268585856133bd565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561445e57600080fd5b505afa158015614472573d6000803e3d6000fd5b505050506040513d602081101561448857600080fd5b505163ffffffff1695945050505050565b60008115806144b4575050808202828282816144b157fe5b04145b61111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b8082018281101561111a576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534458737761704c6962726172793a20494e53554646494349454e545f414d4f554e54445873776170526f757465723a20455850495245440000000000000000000000445873776170526f757465723a20494e56414c49445f50415448000000000000445873776170526f757465723a20494e53554646494349454e545f415f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f4c49515549444954594458737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544445873776170526f757465723a20494e53554646494349454e545f425f414d4f554e544458737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544445873776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54445873776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a264697066735822122049f12134b93be9f071e2d709d91dd1986fcb03120573d2fce354a1171396944364736f6c63430006060033" -} \ No newline at end of file diff --git a/build/DeflatingERC20.json b/build/DeflatingERC20.json deleted file mode 100644 index 8796e35d..00000000 --- a/build/DeflatingERC20.json +++ /dev/null @@ -1,664 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_totalSupply", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051610bc0380380610bc08339818101604052602081101561003357600080fd5b50516040514690806052610b6e8239604080519182900360520182208282018252601483527f4465666c6174696e67205465737420546f6b656e0000000000000000000000006020938401528151808301835260018152603160f81b908401528151808401919091527ff89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061012633836001600160e01b0361012d16565b505061022d565b610146816000546101cf60201b6108ad1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101779183906108ad6101cf821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610227576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b6109328061023c6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610340565b604080519115158252519081900360200190f35b610199610357565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b0381358116916020810135909116906040013561035d565b6101996103f7565b6101f161041b565b6040805160ff9092168252519081900360200190f35b610199610420565b6101996004803603602081101561022557600080fd5b50356001600160a01b0316610426565b6101996004803603602081101561024b57600080fd5b50356001600160a01b0316610438565b6100dc61044a565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610469565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610476565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610661565b604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b600061034d33848461067e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103e2576001600160a01b03841660009081526002602090815260408083203384529091529020546103bd908363ffffffff6106e016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103ed848484610730565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016211151560ea1b81525081565b600061034d338484610730565b428410156104b5576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106065750886001600160a01b0316816001600160a01b0316145b61064b576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61065689898961067e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610351576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6064810461073e848261080f565b6000610750838363ffffffff6106e016565b6001600160a01b03861660009081526001602052604090205490915061077c908263ffffffff6106e016565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546107b1908263ffffffff6108ad16565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b038216600090815260016020526040902054610838908263ffffffff6106e016565b6001600160a01b03831660009081526001602052604081209190915554610865908263ffffffff6106e016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b80820182811015610351576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122016b7091606a6edffc0ae575e71ef37fce15444bd4ee72a5ba37808e3efb19a3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xBC0 CODESIZE SUB DUP1 PUSH2 0xBC0 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0xB6E DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0x14 DUP4 MSTORE PUSH32 0x4465666C6174696E67205465737420546F6B656E000000000000000000000000 PUSH1 0x20 SWAP4 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xF89E31130E6FD3D87D62A1AC2770FBA58BED5A06C47CE70FA97F8218B1B2743A DUP2 DUP4 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE POP PUSH2 0x126 CALLER DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH2 0x12D AND JUMP JUMPDEST POP POP PUSH2 0x22D JUMP JUMPDEST PUSH2 0x146 DUP2 PUSH1 0x0 SLOAD PUSH2 0x1CF PUSH1 0x20 SHL PUSH2 0x8AD OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x177 SWAP2 DUP4 SWAP1 PUSH2 0x8AD PUSH2 0x1CF DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x227 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x932 DUP1 PUSH2 0x23C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2E2 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x235 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x116 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x340 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x357 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x199 PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x420 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x426 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x438 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x44A JUMP JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x469 JUMP JUMPDEST PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x476 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x2232B33630BA34B733902A32B9BA102A37B5B2B7 PUSH1 0x61 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D CALLER DUP5 DUP5 PUSH2 0x67E JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3E2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3BD SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x3ED DUP5 DUP5 DUP5 PUSH2 0x730 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x111515 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D CALLER DUP5 DUP5 PUSH2 0x730 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x606 JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x64B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x494E56414C49445F5349474E4154555245 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x656 DUP10 DUP10 DUP10 PUSH2 0x67E JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x351 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 DIV PUSH2 0x73E DUP5 DUP3 PUSH2 0x80F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x750 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x77C SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x7B1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x8AD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x838 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x865 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x351 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 AND 0xB7 MULMOD AND MOD 0xA6 0xED SELFDESTRUCT 0xC0 0xAE JUMPI 0x5E PUSH18 0xEF37FCE15444BD4EE72A5BA37808E3EFB19A CALLDATACOPY PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 ", - "sourceMap": "62:3507:25:-:0;;;864:504;5:9:-1;2:2;;;27:1;24;17:12;2:2;864:504:25;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;864:504:25;1066:95;;968:9;;1066:95;;;;;;;;;;;;;;;;1195:4;;;;;;;;;;;;;;1229:10;;;;;;;;;;-1:-1:-1;;;1229:10:25;;;;1038:272;;;;;;;;;1179:22;1038:272;;;;1219:21;1038:272;;;;;;;;;;1291:4;1038:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1038:272:25;;;;;;;1015:305;;;;;996:16;:324;-1:-1:-1;1330:31:25;1336:10;1348:12;-1:-1:-1;;;;;1330:5:25;:31;:::i;:::-;864:504;;62:3507;;1374:197;1446:22;1462:5;1446:11;;:15;;;;;;:22;;;;:::i;:::-;1432:11;:36;;;-1:-1:-1;;;;;1494:13:25;;;;:9;:13;;;;;;;;;:24;;1512:5;;1494:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1478:13:25;;;;;;:9;:13;;;;;;;;:40;;;;1533:31;;;;;;;1478:13;;;;1533:31;;;;;;;;;;1374:197;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;;;;:::o;62:3507:25:-;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610340565b604080519115158252519081900360200190f35b610199610357565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b0381358116916020810135909116906040013561035d565b6101996103f7565b6101f161041b565b6040805160ff9092168252519081900360200190f35b610199610420565b6101996004803603602081101561022557600080fd5b50356001600160a01b0316610426565b6101996004803603602081101561024b57600080fd5b50356001600160a01b0316610438565b6100dc61044a565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610469565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610476565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610661565b604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b600061034d33848461067e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103e2576001600160a01b03841660009081526002602090815260408083203384529091529020546103bd908363ffffffff6106e016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103ed848484610730565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016211151560ea1b81525081565b600061034d338484610730565b428410156104b5576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106065750886001600160a01b0316816001600160a01b0316145b61064b576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61065689898961067e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610351576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6064810461073e848261080f565b6000610750838363ffffffff6106e016565b6001600160a01b03861660009081526001602052604090205490915061077c908263ffffffff6106e016565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546107b1908263ffffffff6108ad16565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b038216600090815260016020526040902054610838908263ffffffff6106e016565b6001600160a01b03831660009081526001602052604081209190915554610865908263ffffffff6106e016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b80820182811015610351576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122016b7091606a6edffc0ae575e71ef37fce15444bd4ee72a5ba37808e3efb19a3764736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2E2 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x235 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x116 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x340 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x357 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x199 PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x420 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x426 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x438 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x44A JUMP JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x469 JUMP JUMPDEST PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x476 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x2232B33630BA34B733902A32B9BA102A37B5B2B7 PUSH1 0x61 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D CALLER DUP5 DUP5 PUSH2 0x67E JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3E2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3BD SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x3ED DUP5 DUP5 DUP5 PUSH2 0x730 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x111515 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D CALLER DUP5 DUP5 PUSH2 0x730 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x606 JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x64B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x494E56414C49445F5349474E4154555245 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x656 DUP10 DUP10 DUP10 PUSH2 0x67E JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x351 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 DIV PUSH2 0x73E DUP5 DUP3 PUSH2 0x80F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x750 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x77C SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x7B1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x8AD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x838 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x865 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6E0 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x351 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 AND 0xB7 MULMOD AND MOD 0xA6 0xED SELFDESTRUCT 0xC0 0xAE JUMPI 0x5E PUSH18 0xEF37FCE15444BD4EE72A5BA37808E3EFB19A CALLDATACOPY PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "62:3507:25:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;62:3507:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;122:52:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;122:52:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2334:144;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2334:144:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;264:24;;;:::i;:::-;;;;;;;;;;;;;;;;2626:295;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2626:295:25;;;;;;;;;;;;;;;;;:::i;550:108::-;;;:::i;223:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;409:31;;;:::i;294:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;294:41:25;-1:-1:-1;;;;;294:41:25;;:::i;664:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;664:38:25;-1:-1:-1;;;;;664:38:25;;:::i;180:37::-;;;:::i;2484:136::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2484:136:25;;;;;;;;:::i;2927:640::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2927:640:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;341:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;341:61:25;;;;;;;;;;:::i;122:52::-;;;;;;;;;;;;;;-1:-1:-1;;;122:52:25;;;;:::o;2334:144::-;2398:4;2414:36;2423:10;2435:7;2444:5;2414:8;:36::i;:::-;-1:-1:-1;2467:4:25;2334:144;;;;;:::o;264:24::-;;;;:::o;2626:295::-;-1:-1:-1;;;;;2724:15:25;;2704:4;2724:15;;;:9;:15;;;;;;;;2740:10;2724:27;;;;;;;;-1:-1:-1;;2724:39:25;2720:138;;-1:-1:-1;;;;;2809:15:25;;;;;;:9;:15;;;;;;;;2825:10;2809:27;;;;;;;;:38;;2841:5;2809:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;2779:15:25;;;;;;:9;:15;;;;;;;;2795:10;2779:27;;;;;;;:68;2720:138;2867:26;2877:4;2883:2;2887:5;2867:9;:26::i;:::-;-1:-1:-1;2910:4:25;2626:295;;;;;:::o;550:108::-;592:66;550:108;:::o;223:35::-;256:2;223:35;:::o;409:31::-;;;;:::o;294:41::-;;;;;;;;;;;;;:::o;664:38::-;;;;;;;;;;;;;:::o;180:37::-;;;;;;;;;;;;;;-1:-1:-1;;;180:37:25;;;;:::o;2484:136::-;2544:4;2560:32;2570:10;2582:2;2586:5;2560:9;:32::i;2927:640::-;3072:15;3060:8;:27;;3052:47;;;;;-1:-1:-1;;;3052:47:25;;;;;;;;;;;;-1:-1:-1;;;3052:47:25;;;;;;;;;;;;;;;3211:16;;-1:-1:-1;;;;;3306:13:25;;;3109:14;3306:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3255:77;;592:66;3255:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3255:77:25;;;;;3245:88;;;;;;-1:-1:-1;;;3149:198:25;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3149:198:25;;;;;;3126:231;;;;;;;;;3394:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3109:14;;3306:15;3394:26;;;;;-1:-1:-1;;3394:26:25;;;;;;;;;;3306:15;3394:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3394:26:25;;-1:-1:-1;;3394:26:25;;;-1:-1:-1;;;;;;;3438:30:25;;;;;;:59;;;3492:5;-1:-1:-1;;;;;3472:25:25;:16;-1:-1:-1;;;;;3472:25:25;;3438:59;3430:89;;;;;-1:-1:-1;;;3430:89:25;;;;;;;;;;;;-1:-1:-1;;;3430:89:25;;;;;;;;;;;;;;;3529:31;3538:5;3545:7;3554:5;3529:8;:31::i;:::-;2927:640;;;;;;;;;:::o;341:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1788:166::-;-1:-1:-1;;;;;1868:16:25;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1916:31;;;;;;;;;;;;;;;;;1788:166;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;1960:368:25;2061:3;2053:11;;2074:23;2080:4;2053:11;2074:5;:23::i;:::-;2107:19;2129:21;:5;2139:10;2129:21;:9;:21;:::i;:::-;-1:-1:-1;;;;;2178:15:25;;;;;;:9;:15;;;;;;2107:43;;-1:-1:-1;2178:35:25;;2107:43;2178:35;:19;:35;:::i;:::-;-1:-1:-1;;;;;2160:15:25;;;;;;;:9;:15;;;;;;:53;;;;2239:13;;;;;;;:33;;2257:14;2239:33;:17;:33;:::i;:::-;-1:-1:-1;;;;;2223:13:25;;;;;;;:9;:13;;;;;;;;;:49;;;;2287:34;;;;;;;2223:13;;2287:34;;;;;;;;;;;;;1960:368;;;;;:::o;1577:205::-;-1:-1:-1;;;;;1655:15:25;;;;;;:9;:15;;;;;;:26;;1675:5;1655:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;1637:15:25;;;;;;:9;:15;;;;;:44;;;;1705:11;:22;;1721:5;1705:22;:15;:22;:::i;:::-;1691:11;:36;;;1742:33;;;;;;;;-1:-1:-1;;;;;1742:33:25;;;;;;;;;;;;;1577:205;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_totalSupply", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "608060405234801561001057600080fd5b50604051610bc0380380610bc08339818101604052602081101561003357600080fd5b50516040514690806052610b6e8239604080519182900360520182208282018252601483527f4465666c6174696e67205465737420546f6b656e0000000000000000000000006020938401528151808301835260018152603160f81b908401528151808401919091527ff89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061012633836001600160e01b0361012d16565b505061022d565b610146816000546101cf60201b6108ad1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101779183906108ad6101cf821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610227576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b6109328061023c6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610340565b604080519115158252519081900360200190f35b610199610357565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b0381358116916020810135909116906040013561035d565b6101996103f7565b6101f161041b565b6040805160ff9092168252519081900360200190f35b610199610420565b6101996004803603602081101561022557600080fd5b50356001600160a01b0316610426565b6101996004803603602081101561024b57600080fd5b50356001600160a01b0316610438565b6100dc61044a565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610469565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610476565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610661565b604051806040016040528060148152602001732232b33630ba34b733902a32b9ba102a37b5b2b760611b81525081565b600061034d33848461067e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103e2576001600160a01b03841660009081526002602090815260408083203384529091529020546103bd908363ffffffff6106e016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103ed848484610730565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016211151560ea1b81525081565b600061034d338484610730565b428410156104b5576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106065750886001600160a01b0316816001600160a01b0316145b61064b576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61065689898961067e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610351576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6064810461073e848261080f565b6000610750838363ffffffff6106e016565b6001600160a01b03861660009081526001602052604090205490915061077c908263ffffffff6106e016565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546107b1908263ffffffff6108ad16565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b038216600090815260016020526040902054610838908263ffffffff6106e016565b6001600160a01b03831660009081526001602052604081209190915554610865908263ffffffff6106e016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b80820182811015610351576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122016b7091606a6edffc0ae575e71ef37fce15444bd4ee72a5ba37808e3efb19a3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429" -} \ No newline at end of file diff --git a/build/ERC20.json b/build/ERC20.json deleted file mode 100644 index 45448974..00000000 --- a/build/ERC20.json +++ /dev/null @@ -1,664 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_totalSupply", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051610adf380380610adf8339818101604052602081101561003357600080fd5b50516040514690806052610a8d8239604080519182900360520182208282018252600a8352692a32b9ba102a37b5b2b760b11b6020938401528151808301835260018152603160f81b908401528151808401919091527f81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061011333836001600160e01b0361011a16565b505061021a565b610133816000546101bc60201b6107df1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101649183906107df6101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610864806102296000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b03813516906020013561045e565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046b565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610656565b6040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525081565b6000610343338484610673565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106d516565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610725565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b60405180604001604052806002815260200161151560f21b81525081565b6000610343338484610725565b428410156104aa576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105c5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906105fb5750886001600160a01b0316816001600160a01b0316145b610640576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61064b898989610673565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b03831660009081526001602052604090205461074e908263ffffffff6106d516565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610783908263ffffffff6107df16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea2646970667358221220b279e8e6e98f038776553f479e59ff12ad12c96755c7bea45c684d8e4a9a3d3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xADF CODESIZE SUB DUP1 PUSH2 0xADF DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0xA8D DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xA DUP4 MSTORE PUSH10 0x2A32B9BA102A37B5B2B7 PUSH1 0xB1 SHL PUSH1 0x20 SWAP4 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x81E8AD438398AB0D4A2A7ECB159490C091BB27C67ACE5181F70084E30FADAEA2 DUP2 DUP4 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE POP PUSH2 0x113 CALLER DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH2 0x11A AND JUMP JUMPDEST POP POP PUSH2 0x21A JUMP JUMPDEST PUSH2 0x133 DUP2 PUSH1 0x0 SLOAD PUSH2 0x1BC PUSH1 0x20 SHL PUSH2 0x7DF OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x164 SWAP2 DUP4 SWAP1 PUSH2 0x7DF PUSH2 0x1BC DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x214 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x864 DUP1 PUSH2 0x229 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2E2 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x235 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x116 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x336 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x353 JUMP JUMPDEST PUSH2 0x199 PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x411 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x416 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x41C JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x42E JUMP JUMPDEST PUSH2 0xDC PUSH2 0x440 JUMP JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x45E JUMP JUMPDEST PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x46B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x656 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x2A32B9BA102A37B5B2B7 PUSH1 0xB1 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343 CALLER DUP5 DUP5 PUSH2 0x673 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3D8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3B3 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6D5 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x3E3 DUP5 DUP5 DUP5 PUSH2 0x725 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1515 PUSH1 0xF2 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343 CALLER DUP5 DUP5 PUSH2 0x725 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4AA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x5FB JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x640 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x494E56414C49445F5349474E4154555245 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x64B DUP10 DUP10 DUP10 PUSH2 0x673 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x74E SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6D5 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x783 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x7DF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 PUSH26 0xE8E6E98F038776553F479E59FF12AD12C96755C7BEA45C684D8E 0x4A SWAP11 RETURNDATASIZE CALLDATACOPY PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 ", - "sourceMap": "62:3335:26:-:0;;;844:504;5:9:-1;2:2;;;27:1;24;17:12;2:2;844:504:26;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;844:504:26;1046:95;;948:9;;1046:95;;;;;;;;;;;;;;;;1175:4;;;;;;;;-1:-1:-1;;;1175:4:26;;;;;1209:10;;;;;;;;;;-1:-1:-1;;;1209:10:26;;;;1018:272;;;;;;;;;1159:22;1018:272;;;;1199:21;1018:272;;;;;;;;;;1271:4;1018:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1018:272:26;;;;;;;995:305;;;;;976:16;:324;-1:-1:-1;1310:31:26;1316:10;1328:12;-1:-1:-1;;;;;1310:5:26;:31;:::i;:::-;844:504;;62:3335;;1354:197;1426:22;1442:5;1426:11;;:15;;;;;;:22;;;;:::i;:::-;1412:11;:36;;;-1:-1:-1;;;;;1474:13:26;;;;:9;:13;;;;;;;;;:24;;1492:5;;1474:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1458:13:26;;;;;;:9;:13;;;;;;;;:40;;;;1513:31;;;;;;;1458:13;;;;1513:31;;;;;;;;;;1354:197;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;;;;:::o;62:3335:26:-;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b03813516906020013561045e565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046b565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610656565b6040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525081565b6000610343338484610673565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106d516565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610725565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b60405180604001604052806002815260200161151560f21b81525081565b6000610343338484610725565b428410156104aa576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105c5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906105fb5750886001600160a01b0316816001600160a01b0316145b610640576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61064b898989610673565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b03831660009081526001602052604090205461074e908263ffffffff6106d516565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610783908263ffffffff6107df16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea2646970667358221220b279e8e6e98f038776553f479e59ff12ad12c96755c7bea45c684d8e4a9a3d3764736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2E2 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x235 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x116 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x336 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x353 JUMP JUMPDEST PUSH2 0x199 PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x411 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x199 PUSH2 0x416 JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x41C JUMP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x42E JUMP JUMPDEST PUSH2 0xDC PUSH2 0x440 JUMP JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x45E JUMP JUMPDEST PUSH2 0x2E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x46B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x656 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x2A32B9BA102A37B5B2B7 PUSH1 0xB1 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343 CALLER DUP5 DUP5 PUSH2 0x673 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3D8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3B3 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6D5 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x3E3 DUP5 DUP5 DUP5 PUSH2 0x725 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1515 PUSH1 0xF2 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343 CALLER DUP5 DUP5 PUSH2 0x725 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4AA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x5FB JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x640 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x494E56414C49445F5349474E4154555245 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x64B DUP10 DUP10 DUP10 PUSH2 0x673 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x74E SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6D5 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x783 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x7DF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6164642D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 PUSH26 0xE8E6E98F038776553F479E59FF12AD12C96755C7BEA45C684D8E 0x4A SWAP11 RETURNDATASIZE CALLDATACOPY PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "62:3335:26:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;62:3335:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;113:42:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;113:42:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2162:144;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2162:144:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;244:24;;;:::i;:::-;;;;;;;;;;;;;;;;2454:295;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2454:295:26;;;;;;;;;;;;;;;;;:::i;530:108::-;;;:::i;203:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;389:31;;;:::i;274:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;274:41:26;-1:-1:-1;;;;;274:41:26;;:::i;644:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;644:38:26;-1:-1:-1;;;;;644:38:26;;:::i;161:36::-;;;:::i;2312:136::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2312:136:26;;;;;;;;:::i;2755:640::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2755:640:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;321:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;321:61:26;;;;;;;;;;:::i;113:42::-;;;;;;;;;;;;;;-1:-1:-1;;;113:42:26;;;;:::o;2162:144::-;2226:4;2242:36;2251:10;2263:7;2272:5;2242:8;:36::i;:::-;-1:-1:-1;2295:4:26;2162:144;;;;;:::o;244:24::-;;;;:::o;2454:295::-;-1:-1:-1;;;;;2552:15:26;;2532:4;2552:15;;;:9;:15;;;;;;;;2568:10;2552:27;;;;;;;;-1:-1:-1;;2552:39:26;2548:138;;-1:-1:-1;;;;;2637:15:26;;;;;;:9;:15;;;;;;;;2653:10;2637:27;;;;;;;;:38;;2669:5;2637:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;2607:15:26;;;;;;:9;:15;;;;;;;;2623:10;2607:27;;;;;;;:68;2548:138;2695:26;2705:4;2711:2;2715:5;2695:9;:26::i;:::-;-1:-1:-1;2738:4:26;2454:295;;;;;:::o;530:108::-;572:66;530:108;:::o;203:35::-;236:2;203:35;:::o;389:31::-;;;;:::o;274:41::-;;;;;;;;;;;;;:::o;644:38::-;;;;;;;;;;;;;:::o;161:36::-;;;;;;;;;;;;;;-1:-1:-1;;;161:36:26;;;;:::o;2312:136::-;2372:4;2388:32;2398:10;2410:2;2414:5;2388:9;:32::i;2755:640::-;2900:15;2888:8;:27;;2880:47;;;;;-1:-1:-1;;;2880:47:26;;;;;;;;;;;;-1:-1:-1;;;2880:47:26;;;;;;;;;;;;;;;3039:16;;-1:-1:-1;;;;;3134:13:26;;;2937:14;3134:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3083:77;;572:66;3083:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3083:77:26;;;;;3073:88;;;;;;-1:-1:-1;;;2977:198:26;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2977:198:26;;;;;;2954:231;;;;;;;;;3222:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:14;;3134:15;3222:26;;;;;-1:-1:-1;;3222:26:26;;;;;;;;;;3134:15;3222:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3222:26:26;;-1:-1:-1;;3222:26:26;;;-1:-1:-1;;;;;;;3266:30:26;;;;;;:59;;;3320:5;-1:-1:-1;;;;;3300:25:26;:16;-1:-1:-1;;;;;3300:25:26;;3266:59;3258:89;;;;;-1:-1:-1;;;3258:89:26;;;;;;;;;;;;-1:-1:-1;;;3258:89:26;;;;;;;;;;;;;;;3357:31;3366:5;3373:7;3382:5;3357:8;:31::i;:::-;2755:640;;;;;;;;;:::o;321:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1768:166::-;-1:-1:-1;;;;;1848:16:26;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1896:31;;;;;;;;;;;;;;;;;1768:166;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;1940:216:26;-1:-1:-1;;;;;2033:15:26;;;;;;:9;:15;;;;;;:26;;2053:5;2033:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;2015:15:26;;;;;;;:9;:15;;;;;;:44;;;;2085:13;;;;;;;:24;;2103:5;2085:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;2069:13:26;;;;;;;:9;:13;;;;;;;;;:40;;;;2124:25;;;;;;;2069:13;;2124:25;;;;;;;;;;;;;1940:216;;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_totalSupply", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "608060405234801561001057600080fd5b50604051610adf380380610adf8339818101604052602081101561003357600080fd5b50516040514690806052610a8d8239604080519182900360520182208282018252600a8352692a32b9ba102a37b5b2b760b11b6020938401528151808301835260018152603160f81b908401528151808401919091527f81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061011333836001600160e01b0361011a16565b505061021a565b610133816000546101bc60201b6107df1790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101649183906107df6101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610864806102296000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b03813516906020013561045e565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046b565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610656565b6040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525081565b6000610343338484610673565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106d516565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610725565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b60405180604001604052806002815260200161151560f21b81525081565b6000610343338484610725565b428410156104aa576040805162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105c5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906105fb5750886001600160a01b0316816001600160a01b0316145b610640576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b61064b898989610673565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b03831660009081526001602052604090205461074e908263ffffffff6106d516565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610783908263ffffffff6107df16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea2646970667358221220b279e8e6e98f038776553f479e59ff12ad12c96755c7bea45c684d8e4a9a3d3764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429" -} \ No newline at end of file diff --git a/build/ExampleOracleSimple.json b/build/ExampleOracleSimple.json deleted file mode 100644 index 65c3e6ce..00000000 --- a/build/ExampleOracleSimple.json +++ /dev/null @@ -1,361 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blockTimestampLast", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price0Average", - "outputs": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1Average", - "outputs": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60e06040523480156200001157600080fd5b5060405162000f9a38038062000f9a833981810160405260608110156200003757600080fd5b508051602080830151604090930151919291906000906200006790859085908590620007996200037d821b17901c565b9050806001600160a01b03166080816001600160a01b031660601b81525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015620000c057600080fd5b505afa158015620000d5573d6000803e3d6000fd5b505050506040513d6020811015620000ec57600080fd5b505160601b6001600160601b03191660a0526040805163d21220a760e01b815290516001600160a01b0383169163d21220a7916004808301926020929190829003018186803b1580156200013f57600080fd5b505afa15801562000154573d6000803e3d6000fd5b505050506040513d60208110156200016b57600080fd5b505160601b6001600160601b03191660c05260408051635909c0d560e01b815290516001600160a01b03831691635909c0d5916004808301926020929190829003018186803b158015620001be57600080fd5b505afa158015620001d3573d6000803e3d6000fd5b505050506040513d6020811015620001ea57600080fd5b505160005560408051635a3d549360e01b815290516001600160a01b03831691635a3d5493916004808301926020929190829003018186803b1580156200023057600080fd5b505afa15801562000245573d6000803e3d6000fd5b505050506040513d60208110156200025c57600080fd5b505160015560408051630240bc6b60e21b8152905160009182916001600160a01b03851691630902f1ac916004808301926060929190829003018186803b158015620002a757600080fd5b505afa158015620002bc573d6000803e3d6000fd5b505050506040513d6060811015620002d357600080fd5b50805160208201516040909201516002805463ffffffff191663ffffffff909216919091179055925090506001600160701b038216158015906200031f57506001600160701b03811615155b62000371576040805162461bcd60e51b815260206004820181905260248201527f4578616d706c654f7261636c6553696d706c653a204e4f5f5245534552564553604482015290519081900360640190fd5b5050505050506200053d565b600080806200039685856001600160e01b036200045a16565b604080516001600160601b0319606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b03161415620004b05760405162461bcd60e51b815260040180806020018281038252602281526020018062000f786022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610620004d2578284620004d5565b83835b90925090506001600160a01b03821662000536576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60805160601c60a05160601c60c05160601c6109fb6200057d60003980610220528061044452508061017e52806101a45250806102f252506109fb6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a2e6204511610066578063a2e6204514610139578063a6bb453914610143578063b4d1d7951461014b578063c5700a0214610153578063d21220a7146101745761009e565b80630dfe1681146100a35780633ddac953146100c75780635909c0d5146101055780635a3d54931461010d5780635e6aaf2c14610115575b600080fd5b6100ab61017c565b604080516001600160a01b039092168252519081900360200190f35b6100f3600480360360408110156100dd57600080fd5b506001600160a01b0381351690602001356101a0565b60408051918252519081900360200190f35b6100f36102cd565b6100f36102d3565b61011d6102d9565b604080516001600160e01b039092168252519081900360200190f35b6101416102e8565b005b61011d610420565b6100f361042f565b61015b610436565b6040805163ffffffff9092168252519081900360200190f35b6100ab610442565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561021e5760408051602081019091526003546001600160e01b0316815261020e90610209908463ffffffff61046616565b6104e4565b6001600160901b031690506102c7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461028e5760405162461bcd60e51b815260040180806020018281038252602281526020018061095a6022913960400191505060405180910390fd5b60408051602081019091526004546001600160e01b031681526102bb90610209908463ffffffff61046616565b6001600160901b031690505b92915050565b60005481565b60015481565b6004546001600160e01b031681565b60008060006103167f00000000000000000000000000000000000000000000000000000000000000006104eb565b600254929550909350915063ffffffff9081168203906201518090821610156103705760405162461bcd60e51b815260040180806020018281038252602781526020018061097c6027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161038e57fe5b046001600160e01b039081169091529051600380546001600160e01b031916919092161790556040805160208101909152600154819063ffffffff8416908603816103d557fe5b046001600160e01b039081169091529051600480546001600160e01b03191691909216179055506000929092556001556002805463ffffffff191663ffffffff909216919091179055565b6003546001600160e01b031681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61046e610774565b600082158061049457505082516001600160e01b03168281029083828161049157fe5b04145b6104cf5760405162461bcd60e51b81526004018080602001828103825260238152602001806109a36023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006104f86106ba565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561053357600080fd5b505afa158015610547573d6000803e3d6000fd5b505050506040513d602081101561055d57600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156105a357600080fd5b505afa1580156105b7573d6000803e3d6000fd5b505050506040513d60208110156105cd57600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d606081101561064357600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146106b05780840363ffffffff811661067d84866106c4565b516001600160e01b031602969096019563ffffffff811661069e85856106c4565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b6106cc610787565b6000826001600160701b03161161072a576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b168161075f57fe5b046001600160e01b0316815250905092915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b60008060006107a88585610859565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b031614156108ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806109386022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106108cd5782846108d0565b83835b90925090506001600160a01b038216610930576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b925092905056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c41505345444669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a2646970667358221220614600884faa860395e79ad314618ada59a3ac38515e96d4b7daacce9265e57664736f6c634300060600334458737761704c6962726172793a204944454e544943414c5f414444524553534553", - "opcodes": "PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xF9A CODESIZE SUB DUP1 PUSH3 0xF9A DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x60 DUP2 LT ISZERO PUSH3 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD SWAP2 SWAP3 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH3 0x67 SWAP1 DUP6 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH3 0x799 PUSH3 0x37D DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 SHL DUP2 MSTORE POP POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0xD5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0xA0 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0xD21220A7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0xD21220A7 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x154 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0xC0 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x5909C0D5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0x5909C0D5 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x1BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x1D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x0 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x245 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x2A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x2BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH3 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH3 0x31F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND ISZERO ISZERO JUMPDEST PUSH3 0x371 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C654F7261636C6553696D706C653A204E4F5F5245534552564553 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP POP PUSH3 0x53D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH3 0x396 DUP6 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH3 0x45A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH3 0x4B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH3 0xF78 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH3 0x4D2 JUMPI DUP3 DUP5 PUSH3 0x4D5 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x536 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH1 0xC0 MLOAD PUSH1 0x60 SHR PUSH2 0x9FB PUSH3 0x57D PUSH1 0x0 CODECOPY DUP1 PUSH2 0x220 MSTORE DUP1 PUSH2 0x444 MSTORE POP DUP1 PUSH2 0x17E MSTORE DUP1 PUSH2 0x1A4 MSTORE POP DUP1 PUSH2 0x2F2 MSTORE POP PUSH2 0x9FB PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA2E62045 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA2E62045 EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xA6BB4539 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0xB4D1D795 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0xC5700A02 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x174 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0xDFE1681 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x3DDAC953 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x5E6AAF2C EQ PUSH2 0x115 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x17C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x2D9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x141 PUSH2 0x2E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11D PUSH2 0x420 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x42F JUMP JUMPDEST PUSH2 0x15B PUSH2 0x436 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH2 0x442 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x21E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x20E SWAP1 PUSH2 0x209 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x466 AND JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x90 SHL SUB AND SWAP1 POP PUSH2 0x2C7 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x95A PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x2BB SWAP1 PUSH2 0x209 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x466 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x90 SHL SUB AND SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x316 PUSH32 0x0 PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 SUB SWAP1 PUSH3 0x15180 SWAP1 DUP3 AND LT ISZERO PUSH2 0x370 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x97C PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0x0 SLOAD DUP8 SUB DUP2 PUSH2 0x38E JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 SLOAD DUP2 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP7 SUB DUP2 PUSH2 0x3D5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH1 0x0 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 SSTORE PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH3 0x15180 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x46E PUSH2 0x774 JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0x494 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0x491 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x9A3 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4F8 PUSH2 0x6BA JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x533 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x547 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5B7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x62D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0x6B0 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x67D DUP5 DUP7 PUSH2 0x6C4 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x69E DUP6 DUP6 PUSH2 0x6C4 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0x6CC PUSH2 0x787 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0x72A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0x75F JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x7A8 DUP6 DUP6 PUSH2 0x859 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x8AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x938 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x8CD JUMPI DUP3 DUP5 PUSH2 0x8D0 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x930 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 GASLIMIT PUSH25 0x616D706C654F7261636C6553696D706C653A20494E56414C49 DIFFICULTY 0x5F SLOAD 0x4F 0x4B GASLIMIT 0x4E GASLIMIT PUSH25 0x616D706C654F7261636C6553696D706C653A20504552494F44 0x5F 0x4E 0x4F SLOAD 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH2 0x4600 DUP9 0x4F 0xAA DUP7 SUB SWAP6 0xE7 SWAP11 0xD3 EQ PUSH2 0x8ADA MSIZE LOG3 0xAC CODESIZE MLOAD 0x5E SWAP7 0xD4 0xB7 0xDA 0xAC 0xCE SWAP3 PUSH6 0xE57664736F6C PUSH4 0x43000606 STOP CALLER DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 ", - "sourceMap": "483:2623:7:-:0;;;915:734;5:9:-1;2:2;;;27:1;24;17:12;2:2;915:734:7;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;915:734:7;;;;;;;;;;;;;;;;993:17;;1025:46;;915:734;;;;;;1025:21;;;;;:46;;:::i;:::-;993:79;;1089:5;-1:-1:-1;;;;;1082:12:7;;;-1:-1:-1;;;;;1082:12:7;;;;;;;1113:5;-1:-1:-1;;;;;1113:12:7;;:14;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1113:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1113:14:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1113:14:7;1104:23;;-1:-1:-1;;;;;;1104:23:7;;;1146:14;;;-1:-1:-1;;;1146:14:7;;;;-1:-1:-1;;;;;1146:12:7;;;;;:14;;;;;1113;;1146;;;;;;;:12;:14;;;2:2:-1;;;;27:1;24;17:12;2:2;1146:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1146:14:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1146:14:7;1137:23;;-1:-1:-1;;;;;;1137:23:7;;;1193:28;;;-1:-1:-1;;;1193:28:7;;;;-1:-1:-1;;;;;1193:26:7;;;;;:28;;;;;1146:14;;1193:28;;;;;;;:26;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;1193:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1193:28:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1193:28:7;1170:20;:51;1307:28;;;-1:-1:-1;;;1307:28:7;;;;-1:-1:-1;;;;;1307:26:7;;;;;:28;;;;;1193;;1307;;;;;;;:26;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;1307:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1307:28:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1307:28:7;1284:20;:51;1493:19;;;-1:-1:-1;;;1493:19:7;;;;1398:16;;;;-1:-1:-1;;;;;1493:17:7;;;;;:19;;;;;;;;;;;;;;:17;:19;;;2:2:-1;;;;27:1;24;17:12;2:2;1493:19:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1493:19:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1493:19:7;;;;;;;;;;;1471:18;1450:62;;-1:-1:-1;;1450:62:7;;;;;;;;;;;1493:19;-1:-1:-1;1493:19:7;-1:-1:-1;;;;;;1530:13:7;;;;;;:30;;-1:-1:-1;;;;;;1547:13:7;;;;1530:30;1522:75;;;;;-1:-1:-1;;;1522:75:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;915:734;;;;;;483:2623;;698:450:18;787:12;;;846:26;857:6;865;-1:-1:-1;;;;;846:10:18;:26;:::i;:::-;994:32;;;-1:-1:-1;;;;;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;912:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;270:339::-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;483:2623:7:-;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "8833": [ - { - "length": 32, - "start": 754 - } - ], - "8835": [ - { - "length": 32, - "start": 382 - }, - { - "length": 32, - "start": 420 - } - ], - "8837": [ - { - "length": 32, - "start": 544 - }, - { - "length": 32, - "start": 1092 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a2e6204511610066578063a2e6204514610139578063a6bb453914610143578063b4d1d7951461014b578063c5700a0214610153578063d21220a7146101745761009e565b80630dfe1681146100a35780633ddac953146100c75780635909c0d5146101055780635a3d54931461010d5780635e6aaf2c14610115575b600080fd5b6100ab61017c565b604080516001600160a01b039092168252519081900360200190f35b6100f3600480360360408110156100dd57600080fd5b506001600160a01b0381351690602001356101a0565b60408051918252519081900360200190f35b6100f36102cd565b6100f36102d3565b61011d6102d9565b604080516001600160e01b039092168252519081900360200190f35b6101416102e8565b005b61011d610420565b6100f361042f565b61015b610436565b6040805163ffffffff9092168252519081900360200190f35b6100ab610442565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561021e5760408051602081019091526003546001600160e01b0316815261020e90610209908463ffffffff61046616565b6104e4565b6001600160901b031690506102c7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461028e5760405162461bcd60e51b815260040180806020018281038252602281526020018061095a6022913960400191505060405180910390fd5b60408051602081019091526004546001600160e01b031681526102bb90610209908463ffffffff61046616565b6001600160901b031690505b92915050565b60005481565b60015481565b6004546001600160e01b031681565b60008060006103167f00000000000000000000000000000000000000000000000000000000000000006104eb565b600254929550909350915063ffffffff9081168203906201518090821610156103705760405162461bcd60e51b815260040180806020018281038252602781526020018061097c6027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161038e57fe5b046001600160e01b039081169091529051600380546001600160e01b031916919092161790556040805160208101909152600154819063ffffffff8416908603816103d557fe5b046001600160e01b039081169091529051600480546001600160e01b03191691909216179055506000929092556001556002805463ffffffff191663ffffffff909216919091179055565b6003546001600160e01b031681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61046e610774565b600082158061049457505082516001600160e01b03168281029083828161049157fe5b04145b6104cf5760405162461bcd60e51b81526004018080602001828103825260238152602001806109a36023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006104f86106ba565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561053357600080fd5b505afa158015610547573d6000803e3d6000fd5b505050506040513d602081101561055d57600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156105a357600080fd5b505afa1580156105b7573d6000803e3d6000fd5b505050506040513d60208110156105cd57600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d606081101561064357600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146106b05780840363ffffffff811661067d84866106c4565b516001600160e01b031602969096019563ffffffff811661069e85856106c4565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b6106cc610787565b6000826001600160701b03161161072a576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b168161075f57fe5b046001600160e01b0316815250905092915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b60008060006107a88585610859565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b031614156108ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806109386022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106108cd5782846108d0565b83835b90925090506001600160a01b038216610930576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b925092905056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c41505345444669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a2646970667358221220614600884faa860395e79ad314618ada59a3ac38515e96d4b7daacce9265e57664736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA2E62045 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA2E62045 EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xA6BB4539 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0xB4D1D795 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0xC5700A02 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x174 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0xDFE1681 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x3DDAC953 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x5E6AAF2C EQ PUSH2 0x115 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x17C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x2D9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x141 PUSH2 0x2E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11D PUSH2 0x420 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x42F JUMP JUMPDEST PUSH2 0x15B PUSH2 0x436 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH2 0x442 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x21E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x20E SWAP1 PUSH2 0x209 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x466 AND JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x90 SHL SUB AND SWAP1 POP PUSH2 0x2C7 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x95A PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE PUSH2 0x2BB SWAP1 PUSH2 0x209 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x466 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x90 SHL SUB AND SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x316 PUSH32 0x0 PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP3 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 SUB SWAP1 PUSH3 0x15180 SWAP1 DUP3 AND LT ISZERO PUSH2 0x370 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x97C PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0x0 SLOAD DUP8 SUB DUP2 PUSH2 0x38E JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 SLOAD DUP2 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP7 SUB DUP2 PUSH2 0x3D5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH1 0x0 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 SSTORE PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH3 0x15180 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x46E PUSH2 0x774 JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0x494 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0x491 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x9A3 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4F8 PUSH2 0x6BA JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x533 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x547 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5B7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x62D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0x6B0 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x67D DUP5 DUP7 PUSH2 0x6C4 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x69E DUP6 DUP6 PUSH2 0x6C4 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0x6CC PUSH2 0x787 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0x72A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0x75F JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x7A8 DUP6 DUP6 PUSH2 0x859 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x8AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x938 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x8CD JUMPI DUP3 DUP5 PUSH2 0x8D0 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x930 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 GASLIMIT PUSH25 0x616D706C654F7261636C6553696D706C653A20494E56414C49 DIFFICULTY 0x5F SLOAD 0x4F 0x4B GASLIMIT 0x4E GASLIMIT PUSH25 0x616D706C654F7261636C6553696D706C653A20504552494F44 0x5F 0x4E 0x4F SLOAD 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH2 0x4600 DUP9 0x4F 0xAA DUP7 SUB SWAP6 0xE7 SWAP11 0xD3 EQ PUSH2 0x8ADA MSIZE LOG3 0xAC CODESIZE MLOAD 0x5E SWAP7 0xD4 0xB7 0xDA 0xAC 0xCE SWAP3 PUSH6 0xE57664736F6C PUSH4 0x43000606 STOP CALLER ", - "sourceMap": "483:2623:7:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;483:2623:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;624:31:7;;;:::i;:::-;;;;-1:-1:-1;;;;;624:31:7;;;;;;;;;;;;;;2747:357;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2747:357:7;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;699:35;;;:::i;740:::-;;;:::i;867:41::-;;;:::i;:::-;;;;-1:-1:-1;;;;;867:41:7;;;;;;;;;;;;;;1655:985;;;:::i;:::-;;820:41;;;:::i;547:38::-;;;:::i;781:33::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;661:31;;;:::i;624:::-;;;:::o;2747:357::-;2817:14;2856:6;-1:-1:-1;;;;;2847:15:7;:5;-1:-1:-1;;;;;2847:15:7;;2843:255;;;2890:17;;;;;;;;;:13;:17;-1:-1:-1;;;;;2890:17:7;;;:39;;:27;;2908:8;2890:27;:17;:27;:::i;:::-;:37;:39::i;:::-;-1:-1:-1;;;;;2878:51:7;;;2843:255;;;2977:6;-1:-1:-1;;;;;2968:15:7;:5;-1:-1:-1;;;;;2968:15:7;;2960:62;;;;-1:-1:-1;;;2960:62:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:17;;;;;;;;;:13;:17;-1:-1:-1;;;;;3048:17:7;;;:39;;:27;;3066:8;3048:27;:17;:27;:::i;:39::-;-1:-1:-1;;;;;3036:51:7;;;2843:255;2747:357;;;;:::o;699:35::-;;;;:::o;740:::-;;;;:::o;867:41::-;;;-1:-1:-1;;;;;867:41:7;;:::o;1655:985::-;1693:21;1716;1739;1776:58;1828:4;1776:43;:58::i;:::-;1882:18;;1692:142;;-1:-1:-1;1692:142:7;;-1:-1:-1;1692:142:7;-1:-1:-1;1882:18:7;;;;1865:35;;;577:8;2023:21;;;;;2015:73;;;;-1:-1:-1;;;2015:73:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2291:86;;;;;;;;2364:11;2320:55;;2340:20;;2321:16;:39;2320:55;;;;;;-1:-1:-1;;;;;2291:86:7;;;;;;2275:102;;:13;:102;;-1:-1:-1;;;;;;2275:102:7;;;;;;;;2403:86;;;;;;;;;-1:-1:-1;2452:20:7;2403:86;;2432:55;;;;2433:39;;2432:55;;;;;;-1:-1:-1;;;;;2403:86:7;;;;;;2387:102;;:13;:102;;-1:-1:-1;;;;;;2387:102:7;;;;;;;;-1:-1:-1;;2500:39:7;;;;-1:-1:-1;2549:39:7;2598:18;:35;;-1:-1:-1;;2598:35:7;;;;;;;;;;;1655:985::o;820:41::-;;;-1:-1:-1;;;;;820:41:7;;:::o;547:38::-;577:8;547:38;:::o;781:33::-;;;;;;:::o;661:31::-;;;:::o;1116:249:20:-;1183:16;;:::i;:::-;1211:6;1235;;;:54;;-1:-1:-1;;1281:7:20;;-1:-1:-1;;;;;1276:13:20;1250:17;;;;1271:1;1250:17;1271:1;1245:27;;;;;:44;1235:54;1227:102;;;;-1:-1:-1;;;1227:102:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1346:12;;;;;;;;;;;;;1116:249;-1:-1:-1;;;1116:249:20:o;2051:128::-;2150:7;407:3;2150:21;;2051:128::o;605:1031:19:-;689:21;712;735;785:23;:21;:23::i;:::-;768:40;;849:4;-1:-1:-1;;;;;837:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;837:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;837:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;837:40:19;906;;;-1:-1:-1;;;906:40:19;;;;837;;-1:-1:-1;;;;;;906:38:19;;;;;:40;;;;;837;;906;;;;;;;;:38;:40;;;2:2:-1;;;;27:1;24;17:12;2:2;906:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;906:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;906:40:19;1123:31;;;-1:-1:-1;;;1123:31:19;;;;906:40;;-1:-1:-1;1058:16:19;;;;;;-1:-1:-1;;;;;1123:29:19;;;;;:31;;;;;;;;;;;;;;:29;:31;;;2:2:-1;;;;27:1;24;17:12;2:2;1123:31:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1123:31:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1123:31:19;;;;;;;;;;;;;-1:-1:-1;1123:31:19;;-1:-1:-1;1123:31:19;-1:-1:-1;1168:36:19;;;;;;;;1164:466;;1288:35;;;1431:62;;;1436:39;1456:8;1466;1436:19;:39::i;:::-;:42;-1:-1:-1;;;;;1431:48:19;:62;1411:82;;;;;1557:62;;;1562:39;1582:8;1592;1562:19;:39::i;:::-;:42;-1:-1:-1;;;;;1557:48:19;:62;1537:82;;;;;-1:-1:-1;1164:466:19;605:1031;;;;;;;;:::o;381:121::-;469:25;:15;:25;;381:121::o;1517:243:20:-;1598:16;;:::i;:::-;1648:1;1634:11;-1:-1:-1;;;;;1634:15:20;;1626:51;;;;;-1:-1:-1;;;1626:51:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:59;;;;;;;;;;-1:-1:-1;;;;;1704:48:20;;-1:-1:-1;;;407:3:20;1705:32;;;;1704:48;;;;;;-1:-1:-1;;;;;1694:59:20;;;;1687:66;;1517:243;;;;:::o;483:2623:7:-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;483:2623:7;;;:::o;698:450:18:-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;270:339::-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blockTimestampLast", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price0Average", - "outputs": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1Average", - "outputs": [ - { - "internalType": "uint224", - "name": "_x", - "type": "uint224" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "60e06040523480156200001157600080fd5b5060405162000f9a38038062000f9a833981810160405260608110156200003757600080fd5b508051602080830151604090930151919291906000906200006790859085908590620007996200037d821b17901c565b9050806001600160a01b03166080816001600160a01b031660601b81525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015620000c057600080fd5b505afa158015620000d5573d6000803e3d6000fd5b505050506040513d6020811015620000ec57600080fd5b505160601b6001600160601b03191660a0526040805163d21220a760e01b815290516001600160a01b0383169163d21220a7916004808301926020929190829003018186803b1580156200013f57600080fd5b505afa15801562000154573d6000803e3d6000fd5b505050506040513d60208110156200016b57600080fd5b505160601b6001600160601b03191660c05260408051635909c0d560e01b815290516001600160a01b03831691635909c0d5916004808301926020929190829003018186803b158015620001be57600080fd5b505afa158015620001d3573d6000803e3d6000fd5b505050506040513d6020811015620001ea57600080fd5b505160005560408051635a3d549360e01b815290516001600160a01b03831691635a3d5493916004808301926020929190829003018186803b1580156200023057600080fd5b505afa15801562000245573d6000803e3d6000fd5b505050506040513d60208110156200025c57600080fd5b505160015560408051630240bc6b60e21b8152905160009182916001600160a01b03851691630902f1ac916004808301926060929190829003018186803b158015620002a757600080fd5b505afa158015620002bc573d6000803e3d6000fd5b505050506040513d6060811015620002d357600080fd5b50805160208201516040909201516002805463ffffffff191663ffffffff909216919091179055925090506001600160701b038216158015906200031f57506001600160701b03811615155b62000371576040805162461bcd60e51b815260206004820181905260248201527f4578616d706c654f7261636c6553696d706c653a204e4f5f5245534552564553604482015290519081900360640190fd5b5050505050506200053d565b600080806200039685856001600160e01b036200045a16565b604080516001600160601b0319606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b03161415620004b05760405162461bcd60e51b815260040180806020018281038252602281526020018062000f786022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610620004d2578284620004d5565b83835b90925090506001600160a01b03821662000536576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60805160601c60a05160601c60c05160601c6109fb6200057d60003980610220528061044452508061017e52806101a45250806102f252506109fb6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a2e6204511610066578063a2e6204514610139578063a6bb453914610143578063b4d1d7951461014b578063c5700a0214610153578063d21220a7146101745761009e565b80630dfe1681146100a35780633ddac953146100c75780635909c0d5146101055780635a3d54931461010d5780635e6aaf2c14610115575b600080fd5b6100ab61017c565b604080516001600160a01b039092168252519081900360200190f35b6100f3600480360360408110156100dd57600080fd5b506001600160a01b0381351690602001356101a0565b60408051918252519081900360200190f35b6100f36102cd565b6100f36102d3565b61011d6102d9565b604080516001600160e01b039092168252519081900360200190f35b6101416102e8565b005b61011d610420565b6100f361042f565b61015b610436565b6040805163ffffffff9092168252519081900360200190f35b6100ab610442565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561021e5760408051602081019091526003546001600160e01b0316815261020e90610209908463ffffffff61046616565b6104e4565b6001600160901b031690506102c7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461028e5760405162461bcd60e51b815260040180806020018281038252602281526020018061095a6022913960400191505060405180910390fd5b60408051602081019091526004546001600160e01b031681526102bb90610209908463ffffffff61046616565b6001600160901b031690505b92915050565b60005481565b60015481565b6004546001600160e01b031681565b60008060006103167f00000000000000000000000000000000000000000000000000000000000000006104eb565b600254929550909350915063ffffffff9081168203906201518090821610156103705760405162461bcd60e51b815260040180806020018281038252602781526020018061097c6027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161038e57fe5b046001600160e01b039081169091529051600380546001600160e01b031916919092161790556040805160208101909152600154819063ffffffff8416908603816103d557fe5b046001600160e01b039081169091529051600480546001600160e01b03191691909216179055506000929092556001556002805463ffffffff191663ffffffff909216919091179055565b6003546001600160e01b031681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61046e610774565b600082158061049457505082516001600160e01b03168281029083828161049157fe5b04145b6104cf5760405162461bcd60e51b81526004018080602001828103825260238152602001806109a36023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006104f86106ba565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561053357600080fd5b505afa158015610547573d6000803e3d6000fd5b505050506040513d602081101561055d57600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156105a357600080fd5b505afa1580156105b7573d6000803e3d6000fd5b505050506040513d60208110156105cd57600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d606081101561064357600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146106b05780840363ffffffff811661067d84866106c4565b516001600160e01b031602969096019563ffffffff811661069e85856106c4565b516001600160e01b0316029590950194505b5050509193909250565b63ffffffff421690565b6106cc610787565b6000826001600160701b03161161072a576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b168161075f57fe5b046001600160e01b0316815250905092915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b60008060006107a88585610859565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b031614156108ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806109386022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106108cd5782846108d0565b83835b90925090506001600160a01b038216610930576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b925092905056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345534578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c41505345444669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a2646970667358221220614600884faa860395e79ad314618ada59a3ac38515e96d4b7daacce9265e57664736f6c634300060600334458737761704c6962726172793a204944454e544943414c5f414444524553534553" -} \ No newline at end of file diff --git a/build/ExampleSlidingWindowOracle.json b/build/ExampleSlidingWindowOracle.json deleted file mode 100644 index ffe657bf..00000000 --- a/build/ExampleSlidingWindowOracle.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "windowSize_", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "granularity_", - "type": "uint8" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "granularity", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "name": "observationIndexOf", - "outputs": [ - { - "internalType": "uint8", - "name": "index", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "pairObservations", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price0Cumulative", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price1Cumulative", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "periodSize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "windowSize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "61010060405234801561001157600080fd5b50604051610e26380380610e268339818101604052606081101561003457600080fd5b5080516020820151604090920151909190600160ff82161161009d576040805162461bcd60e51b815260206004820181905260248201527f536c6964696e6757696e646f774f7261636c653a204752414e554c4152495459604482015290519081900360640190fd5b8160ff82168082816100ab57fe5b0460e081905202146100ee5760405162461bcd60e51b8152600401808060200182810382526030815260200180610df66030913960400191505060405180910390fd5b606083901b6001600160601b03191660805260a082905260f881901b7fff000000000000000000000000000000000000000000000000000000000000001660c05260e0516001600160a01b039093169260ff90911690610c5761019f600039806102a952806104eb528061053e528061059e5250806101c05280610448528061056a52806106925250806101e4528061024a52806102cd52508061020e52806103da52806104035250610c576000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a015514610145578063c640752d14610169578063dbaad32f14610199578063e4463eb2146101b657610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e42146100fb575b600080fd5b6100956101be565b6040805160ff9092168252519081900360200190f35b6100b36101e2565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b506001600160a01b03813581169160208101359160409091013516610206565b6101276004803603604081101561011157600080fd5b506001600160a01b038135169060200135610399565b60408051938452602084019290925282820152519081900360600190f35b61014d6103d8565b604080516001600160a01b039092168252519081900360200190f35b6101976004803603604081101561017f57600080fd5b506001600160a01b03813581169160200135166103fc565b005b610095600480360360208110156101af57600080fd5b5035610539565b6100b361059c565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102347f000000000000000000000000000000000000000000000000000000000000000086856105c0565b9050600061024182610680565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102a75760405162461bcd60e51b8152600401808060200182810382526033815260200180610b7e6033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f00000000000000000000000000000000000000000000000000000000000000000381101561032b5760405162461bcd60e51b815260040180806020018281038252602c815260200180610bb1602c913960400191505060405180910390fd5b6000806103378561070e565b509150915060006103488a896108dd565b509050896001600160a01b0316816001600160a01b0316141561038257610375856001015484868c6109bb565b9650505050505050610392565b610375856002015483868c6109bb565b9392505050565b600060205281600052604060002081815481106103b257fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104297f000000000000000000000000000000000000000000000000000000000000000084846105c0565b6001600160a01b0381166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff1681101561049a576001600160a01b0382166000908152602081905260408120805460019081018255915201610446565b5060006104a642610539565b6001600160a01b03831660009081526020819052604081208054929350909160ff84169081106104d257fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105315760008061051d8661070e565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161056557fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161059457fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105cf85856108dd565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60008061068c42610539565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff16816106c257fe5b069050600080856001600160a01b03166001600160a01b031681526020019081526020016000208160ff16815481106106f757fe5b906000526020600020906003020192505050919050565b600080600061071b610a19565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d60208110156107f057600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561083c57600080fd5b505afa158015610850573d6000803e3d6000fd5b505050506040513d606081101561086657600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146108d35780840363ffffffff81166108a08486610a23565b516001600160e01b031602969096019563ffffffff81166108c18585610a23565b516001600160e01b0316029590950194505b5050509193909250565b600080826001600160a01b0316846001600160a01b031614156109315760405162461bcd60e51b8152600401808060200182810382526022815260200180610bdd6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610951578284610954565b83835b90925090506001600160a01b0382166109b4576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60006109c5610b58565b604051806020016040528085888803816109db57fe5b046001600160e01b0316905290506109fb6109f68285610ad3565b610b51565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610a2b610b58565b6000826001600160701b031611610a89576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610abe57fe5b046001600160e01b0316815250905092915050565b610adb610b6a565b6000821580610b0157505082516001600160e01b031682810290838281610afe57fe5b04145b610b3c5760405162461bcd60e51b8152600401808060200182810382526023815260200180610bff6023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444458737761704c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a26469706673582212203fa5e3cce088b12210373c0520795a9e73e22489fc8e01e247bc1bae171d947564736f6c63430006060033536c6964696e6757696e646f774f7261636c653a2057494e444f575f4e4f545f4556454e4c595f444956495349424c45", - "opcodes": "PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xE26 CODESIZE SUB DUP1 PUSH2 0xE26 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xFF DUP3 AND GT PUSH2 0x9D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536C6964696E6757696E646F774F7261636C653A204752414E554C4152495459 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 PUSH1 0xFF DUP3 AND DUP1 DUP3 DUP2 PUSH2 0xAB JUMPI INVALID JUMPDEST DIV PUSH1 0xE0 DUP2 SWAP1 MSTORE MUL EQ PUSH2 0xEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xDF6 PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH1 0xA0 DUP3 SWAP1 MSTORE PUSH1 0xF8 DUP2 SWAP1 SHL PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0xC0 MSTORE PUSH1 0xE0 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 PUSH2 0xC57 PUSH2 0x19F PUSH1 0x0 CODECOPY DUP1 PUSH2 0x2A9 MSTORE DUP1 PUSH2 0x4EB MSTORE DUP1 PUSH2 0x53E MSTORE DUP1 PUSH2 0x59E MSTORE POP DUP1 PUSH2 0x1C0 MSTORE DUP1 PUSH2 0x448 MSTORE DUP1 PUSH2 0x56A MSTORE DUP1 PUSH2 0x692 MSTORE POP DUP1 PUSH2 0x1E4 MSTORE DUP1 PUSH2 0x24A MSTORE DUP1 PUSH2 0x2CD MSTORE POP DUP1 PUSH2 0x20E MSTORE DUP1 PUSH2 0x3DA MSTORE DUP1 PUSH2 0x403 MSTORE POP PUSH2 0xC57 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC45A0155 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x145 JUMPI DUP1 PUSH4 0xC640752D EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0xDBAAD32F EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0xE4463EB2 EQ PUSH2 0x1B6 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x556F0DC7 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8A14117A EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x8C86F1E4 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0xBFCC8E42 EQ PUSH2 0xFB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1BE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x206 JUMP JUMPDEST PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x14D PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x197 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x17F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x3FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x539 JUMP JUMPDEST PUSH2 0xB3 PUSH2 0x59C JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x234 PUSH32 0x0 DUP7 DUP6 PUSH2 0x5C0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x241 DUP3 PUSH2 0x680 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xB7E PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x2 MUL PUSH32 0x0 SUB DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBB1 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x337 DUP6 PUSH2 0x70E JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x348 DUP11 DUP10 PUSH2 0x8DD JUMP JUMPDEST POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x382 JUMPI PUSH2 0x375 DUP6 PUSH1 0x1 ADD SLOAD DUP5 DUP7 DUP13 PUSH2 0x9BB JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP PUSH2 0x392 JUMP JUMPDEST PUSH2 0x375 DUP6 PUSH1 0x2 ADD SLOAD DUP4 DUP7 DUP13 PUSH2 0x9BB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP4 POP SWAP1 SWAP2 POP DUP4 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x429 PUSH32 0x0 DUP5 DUP5 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP JUMPDEST PUSH32 0x0 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x49A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE ADD PUSH2 0x446 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x4A6 TIMESTAMP PUSH2 0x539 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF DUP5 AND SWAP1 DUP2 LT PUSH2 0x4D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 PUSH2 0x51D DUP7 PUSH2 0x70E JUMP JUMPDEST POP TIMESTAMP DUP7 SSTORE PUSH1 0x1 DUP7 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP6 ADD SSTORE POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 DUP4 DUP2 PUSH2 0x565 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH32 0x0 PUSH1 0xFF AND DUP2 DUP2 PUSH2 0x594 JUMPI INVALID JUMPDEST MOD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x5CF DUP6 DUP6 PUSH2 0x8DD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x68C TIMESTAMP PUSH2 0x539 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0xFF AND DUP3 PUSH1 0x1 ADD PUSH1 0xFF AND DUP2 PUSH2 0x6C2 JUMPI INVALID JUMPDEST MOD SWAP1 POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x6F7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x71B PUSH2 0xA19 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x756 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x76A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x83C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x850 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0x8D3 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8A0 DUP5 DUP7 PUSH2 0xA23 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8C1 DUP6 DUP6 PUSH2 0xA23 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x931 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBDD PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x951 JUMPI DUP3 DUP5 PUSH2 0x954 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C5 PUSH2 0xB58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP9 DUP9 SUB DUP2 PUSH2 0x9DB JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 MSTORE SWAP1 POP PUSH2 0x9FB PUSH2 0x9F6 DUP3 DUP6 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0xB51 JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0xA2B PUSH2 0xB58 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0xA89 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0xABE JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xADB PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0xB01 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0xAFE JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xB3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBFF PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A204D495353 0x49 0x4E SELFBALANCE 0x5F 0x48 0x49 MSTORE8 SLOAD 0x4F MSTORE 0x49 NUMBER COINBASE 0x4C 0x5F 0x4F TIMESTAMP MSTORE8 GASLIMIT MSTORE JUMP COINBASE SLOAD 0x49 0x4F 0x4E MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A20554E4558 POP GASLIMIT NUMBER SLOAD GASLIMIT DIFFICULTY 0x5F SLOAD 0x49 0x4D GASLIMIT 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH 0xA5 0xE3 0xCC 0xE0 DUP9 0xB1 0x22 LT CALLDATACOPY EXTCODECOPY SDIV KECCAK256 PUSH26 0x5A9E73E22489FC8E01E247BC1BAE171D947564736F6C63430006 MOD STOP CALLER MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A2057494E44 0x4F JUMPI 0x5F 0x4E 0x4F SLOAD 0x5F GASLIMIT JUMP GASLIMIT 0x4E 0x4C MSIZE 0x5F DIFFICULTY 0x49 JUMP 0x49 MSTORE8 0x49 TIMESTAMP 0x4C GASLIMIT ", - "sourceMap": "662:5690:8:-:0;;;1933:427;5:9:-1;2:2;;;27:1;24;17:12;2:2;1933:427:8;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1933:427:8;;;;;;;;;;;;;;2041:1;2026:16;;;;2018:61;;;;;-1:-1:-1;;;2018:61:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:11;2110:56;;;;2170:11;2110:56;2124:26;;;;;2111:39;;;;2110:56;:71;2089:166;;;;-1:-1:-1;;;2089:166:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:18;;;;-1:-1:-1;;;;;;2265:18:8;;;2293:24;;;;2327:26;;;;;;;;662:5690;;-1:-1:-1;;;;;662:5690:8;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "9059": [ - { - "length": 32, - "start": 526 - }, - { - "length": 32, - "start": 986 - }, - { - "length": 32, - "start": 1027 - } - ], - "9061": [ - { - "length": 32, - "start": 484 - }, - { - "length": 32, - "start": 586 - }, - { - "length": 32, - "start": 717 - } - ], - "9063": [ - { - "length": 32, - "start": 448 - }, - { - "length": 32, - "start": 1096 - }, - { - "length": 32, - "start": 1386 - }, - { - "length": 32, - "start": 1682 - } - ], - "9065": [ - { - "length": 32, - "start": 681 - }, - { - "length": 32, - "start": 1259 - }, - { - "length": 32, - "start": 1342 - }, - { - "length": 32, - "start": 1438 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a015514610145578063c640752d14610169578063dbaad32f14610199578063e4463eb2146101b657610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e42146100fb575b600080fd5b6100956101be565b6040805160ff9092168252519081900360200190f35b6100b36101e2565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b506001600160a01b03813581169160208101359160409091013516610206565b6101276004803603604081101561011157600080fd5b506001600160a01b038135169060200135610399565b60408051938452602084019290925282820152519081900360600190f35b61014d6103d8565b604080516001600160a01b039092168252519081900360200190f35b6101976004803603604081101561017f57600080fd5b506001600160a01b03813581169160200135166103fc565b005b610095600480360360208110156101af57600080fd5b5035610539565b6100b361059c565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102347f000000000000000000000000000000000000000000000000000000000000000086856105c0565b9050600061024182610680565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102a75760405162461bcd60e51b8152600401808060200182810382526033815260200180610b7e6033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f00000000000000000000000000000000000000000000000000000000000000000381101561032b5760405162461bcd60e51b815260040180806020018281038252602c815260200180610bb1602c913960400191505060405180910390fd5b6000806103378561070e565b509150915060006103488a896108dd565b509050896001600160a01b0316816001600160a01b0316141561038257610375856001015484868c6109bb565b9650505050505050610392565b610375856002015483868c6109bb565b9392505050565b600060205281600052604060002081815481106103b257fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104297f000000000000000000000000000000000000000000000000000000000000000084846105c0565b6001600160a01b0381166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff1681101561049a576001600160a01b0382166000908152602081905260408120805460019081018255915201610446565b5060006104a642610539565b6001600160a01b03831660009081526020819052604081208054929350909160ff84169081106104d257fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105315760008061051d8661070e565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161056557fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161059457fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105cf85856108dd565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60008061068c42610539565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff16816106c257fe5b069050600080856001600160a01b03166001600160a01b031681526020019081526020016000208160ff16815481106106f757fe5b906000526020600020906003020192505050919050565b600080600061071b610a19565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d60208110156107f057600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561083c57600080fd5b505afa158015610850573d6000803e3d6000fd5b505050506040513d606081101561086657600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146108d35780840363ffffffff81166108a08486610a23565b516001600160e01b031602969096019563ffffffff81166108c18585610a23565b516001600160e01b0316029590950194505b5050509193909250565b600080826001600160a01b0316846001600160a01b031614156109315760405162461bcd60e51b8152600401808060200182810382526022815260200180610bdd6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610951578284610954565b83835b90925090506001600160a01b0382166109b4576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60006109c5610b58565b604051806020016040528085888803816109db57fe5b046001600160e01b0316905290506109fb6109f68285610ad3565b610b51565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610a2b610b58565b6000826001600160701b031611610a89576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610abe57fe5b046001600160e01b0316815250905092915050565b610adb610b6a565b6000821580610b0157505082516001600160e01b031682810290838281610afe57fe5b04145b610b3c5760405162461bcd60e51b8152600401808060200182810382526023815260200180610bff6023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444458737761704c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a26469706673582212203fa5e3cce088b12210373c0520795a9e73e22489fc8e01e247bc1bae171d947564736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC45A0155 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x145 JUMPI DUP1 PUSH4 0xC640752D EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0xDBAAD32F EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0xE4463EB2 EQ PUSH2 0x1B6 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x556F0DC7 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8A14117A EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x8C86F1E4 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0xBFCC8E42 EQ PUSH2 0xFB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1BE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x206 JUMP JUMPDEST PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x14D PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x197 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x17F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x3FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x539 JUMP JUMPDEST PUSH2 0xB3 PUSH2 0x59C JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x234 PUSH32 0x0 DUP7 DUP6 PUSH2 0x5C0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x241 DUP3 PUSH2 0x680 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xB7E PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x2 MUL PUSH32 0x0 SUB DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBB1 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x337 DUP6 PUSH2 0x70E JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x348 DUP11 DUP10 PUSH2 0x8DD JUMP JUMPDEST POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x382 JUMPI PUSH2 0x375 DUP6 PUSH1 0x1 ADD SLOAD DUP5 DUP7 DUP13 PUSH2 0x9BB JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP PUSH2 0x392 JUMP JUMPDEST PUSH2 0x375 DUP6 PUSH1 0x2 ADD SLOAD DUP4 DUP7 DUP13 PUSH2 0x9BB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP4 POP SWAP1 SWAP2 POP DUP4 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x429 PUSH32 0x0 DUP5 DUP5 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP JUMPDEST PUSH32 0x0 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x49A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE ADD PUSH2 0x446 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x4A6 TIMESTAMP PUSH2 0x539 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF DUP5 AND SWAP1 DUP2 LT PUSH2 0x4D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 PUSH2 0x51D DUP7 PUSH2 0x70E JUMP JUMPDEST POP TIMESTAMP DUP7 SSTORE PUSH1 0x1 DUP7 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP6 ADD SSTORE POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 DUP4 DUP2 PUSH2 0x565 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH32 0x0 PUSH1 0xFF AND DUP2 DUP2 PUSH2 0x594 JUMPI INVALID JUMPDEST MOD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x5CF DUP6 DUP6 PUSH2 0x8DD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x68C TIMESTAMP PUSH2 0x539 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0xFF AND DUP3 PUSH1 0x1 ADD PUSH1 0xFF AND DUP2 PUSH2 0x6C2 JUMPI INVALID JUMPDEST MOD SWAP1 POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x6F7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x71B PUSH2 0xA19 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x756 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x76A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x5A3D5493 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x240BC6B PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x83C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x850 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0x8D3 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8A0 DUP5 DUP7 PUSH2 0xA23 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8C1 DUP6 DUP6 PUSH2 0xA23 JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x931 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBDD PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x951 JUMPI DUP3 DUP5 PUSH2 0x954 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C5 PUSH2 0xB58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP9 DUP9 SUB DUP2 PUSH2 0x9DB JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 MSTORE SWAP1 POP PUSH2 0x9FB PUSH2 0x9F6 DUP3 DUP6 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0xB51 JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0xA2B PUSH2 0xB58 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND GT PUSH2 0xA89 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0xABE JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xADB PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0xB01 JUMPI POP POP DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0xAFE JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xB3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xBFF PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A204D495353 0x49 0x4E SELFBALANCE 0x5F 0x48 0x49 MSTORE8 SLOAD 0x4F MSTORE 0x49 NUMBER COINBASE 0x4C 0x5F 0x4F TIMESTAMP MSTORE8 GASLIMIT MSTORE JUMP COINBASE SLOAD 0x49 0x4F 0x4E MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A20554E4558 POP GASLIMIT NUMBER SLOAD GASLIMIT DIFFICULTY 0x5F SLOAD 0x49 0x4D GASLIMIT 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH 0xA5 0xE3 0xCC 0xE0 DUP9 0xB1 0x22 LT CALLDATACOPY EXTCODECOPY SDIV KECCAK256 PUSH26 0x5A9E73E22489FC8E01E247BC1BAE171D947564736F6C63430006 MOD STOP CALLER ", - "sourceMap": "662:5690:8:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;662:5690:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1601:34:8;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1016:32;;;:::i;:::-;;;;;;;;;;;;;;;;5297:1053;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;5297:1053:8;;;;;;;;;;;;;;;;;:::i;1869:57::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1869:57:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;880:32;;;:::i;:::-;;;;-1:-1:-1;;;;;880:32:8;;;;;;;;;;;;;;3331:1044;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;3331:1044:8;;;;;;;;;;:::i;:::-;;2447:185;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2447:185:8;;:::i;1752:32::-;;;:::i;1601:34::-;;;:::o;1016:32::-;;;:::o;5297:1053::-;5387:14;5413:12;5428:49;5450:7;5459;5468:8;5428:21;:49::i;:::-;5413:64;;5487:36;5526:33;5554:4;5526:27;:33::i;:::-;5607:26;;5487:72;;-1:-1:-1;5589:15:8;:44;5666:10;5651:25;;;5643:89;;;;-1:-1:-1;;;5643:89:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5810:10;5823:1;5810:14;5797:10;:27;5782:11;:42;;5774:99;;;;-1:-1:-1;;;5774:99:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5885:21;5908;5934:49;5978:4;5934:43;:49::i;:::-;5884:99;;;;;5994:14;6013:43;6038:7;6047:8;6013:24;:43::i;:::-;5993:63;;;6081:7;-1:-1:-1;;;;;6071:17:8;:6;-1:-1:-1;;;;;6071:17:8;;6067:277;;;6111:92;6128:16;:33;;;6163:16;6181:11;6194:8;6111:16;:92::i;:::-;6104:99;;;;;;;;;;6067:277;6241:92;6258:16;:33;;;6293:16;6311:11;6324:8;6241:16;:92::i;5297:1053::-;;;;;;:::o;1869:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1869:57:8;;-1:-1:-1;1869:57:8;:::o;880:32::-;;;:::o;3331:1044::-;3398:12;3413:46;3435:7;3444:6;3452;3413:21;:46::i;:::-;-1:-1:-1;;;;;3556:22:8;;3547:6;3556:22;;;;;;;;;;:29;3398:61;;-1:-1:-1;3542:121:8;3591:11;3587:15;;:1;:15;3542:121;;;-1:-1:-1;;;;;3623:22:8;;:16;:22;;;;;;;;;;27:10:-1;;3623:29:8;23:18:-1;;;45:23;;3623:29:8;;3604:3;3542:121;;;;3727:22;3752:35;3771:15;3752:18;:35::i;:::-;-1:-1:-1;;;;;3831:22:8;;3797:31;3831:22;;;;;;;;;;:40;;3727:60;;-1:-1:-1;3797:31:8;;3831:40;;;;;;;;;;;;;;;;;;;;;;;4009:21;;3831:40;;-1:-1:-1;3991:15:8;:39;4058:10;4044:24;;4040:329;;;4085:21;4108;4134:49;4178:4;4134:43;:49::i;:::-;-1:-1:-1;4221:15:8;4197:39;;4250:28;;;:47;;;;4311:28;;;:47;-1:-1:-1;;4040:329:8;3331:1044;;;;;;:::o;2447:185::-;2512:11;2535:16;2566:10;2554:9;:22;;;;;;2535:41;;2613:11;2599:25;;:11;:25;;;;;;;2447:185;-1:-1:-1;;;2447:185:8:o;1752:32::-;;;:::o;698:450:18:-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o;2753:425:8:-;2826:36;2874:22;2899:35;2918:15;2899:18;:35::i;:::-;2874:60;;3031:27;3086:11;3061:36;;3062:16;3081:1;3062:20;3061:36;;;;;;;;3031:66;;3126:16;:22;3143:4;-1:-1:-1;;;;;3126:22:8;-1:-1:-1;;;;;3126:22:8;;;;;;;;;;;;3149:21;3126:45;;;;;;;;;;;;;;;;;;;;3107:64;;2753:425;;;;;:::o;605:1031:19:-;689:21;712;735;785:23;:21;:23::i;:::-;768:40;;849:4;-1:-1:-1;;;;;837:38:19;;:40;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;837:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;837:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;837:40:19;906;;;-1:-1:-1;;;906:40:19;;;;837;;-1:-1:-1;;;;;;906:38:19;;;;;:40;;;;;837;;906;;;;;;;;:38;:40;;;2:2:-1;;;;27:1;24;17:12;2:2;906:40:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;906:40:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;906:40:19;1123:31;;;-1:-1:-1;;;1123:31:19;;;;906:40;;-1:-1:-1;1058:16:19;;;;;;-1:-1:-1;;;;;1123:29:19;;;;;:31;;;;;;;;;;;;;;:29;:31;;;2:2:-1;;;;27:1;24;17:12;2:2;1123:31:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1123:31:19;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1123:31:19;;;;;;;;;;;;;-1:-1:-1;1123:31:19;;-1:-1:-1;1123:31:19;-1:-1:-1;1168:36:19;;;;;;;;1164:466;;1288:35;;;1431:62;;;1436:39;1456:8;1466;1436:19;:39::i;:::-;:42;-1:-1:-1;;;;;1431:48:19;:62;1411:82;;;;;1557:62;;;1562:39;1582:8;1592;1562:19;:39::i;:::-;:42;-1:-1:-1;;;;;1557:48:19;:62;1537:82;;;;;-1:-1:-1;1164:466:19;605:1031;;;;;;;;:::o;270:339:18:-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;4575:433:8:-;4730:14;4788:40;;:::i;:::-;4831:110;;;;;;;;4919:11;4895:20;4874:18;:41;4873:57;;;;;;-1:-1:-1;;;;;4831:110:8;;;4788:153;-1:-1:-1;4963:38:8;:26;4788:153;4980:8;4963:16;:26::i;:::-;:36;:38::i;:::-;4951:50;;;4575:433;-1:-1:-1;;;;;;4575:433:8:o;381:121:19:-;469:25;:15;:25;;381:121::o;1517:243:20:-;1598:16;;:::i;:::-;1648:1;1634:11;-1:-1:-1;;;;;1634:15:20;;1626:51;;;;;-1:-1:-1;;;1626:51:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:59;;;;;;;;;;-1:-1:-1;;;;;1704:48:20;;-1:-1:-1;;;407:3:20;1705:32;;;;1704:48;;;;;;-1:-1:-1;;;;;1694:59:20;;;;1687:66;;1517:243;;;;:::o;1116:249::-;1183:16;;:::i;:::-;1211:6;1235;;;:54;;-1:-1:-1;;1281:7:20;;-1:-1:-1;;;;;1276:13:20;1250:17;;;;1271:1;1250:17;1271:1;1245:27;;;;;:44;1235:54;1227:102;;;;-1:-1:-1;;;1227:102:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1346:12;;;;;;;;;;;;;1116:249;-1:-1:-1;;;1116:249:20:o;2051:128::-;2150:7;407:3;2150:21;;2051:128::o;662:5690:8:-;;;;;;;;;;-1:-1:-1;662:5690:8;;;:::o;:::-;;;;;;;;;;;;;;:::o" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "windowSize_", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "granularity_", - "type": "uint8" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - } - ], - "name": "consult", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "granularity", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "name": "observationIndexOf", - "outputs": [ - { - "internalType": "uint8", - "name": "index", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "pairObservations", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price0Cumulative", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "price1Cumulative", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "periodSize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "update", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "windowSize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "61010060405234801561001157600080fd5b50604051610e26380380610e268339818101604052606081101561003457600080fd5b5080516020820151604090920151909190600160ff82161161009d576040805162461bcd60e51b815260206004820181905260248201527f536c6964696e6757696e646f774f7261636c653a204752414e554c4152495459604482015290519081900360640190fd5b8160ff82168082816100ab57fe5b0460e081905202146100ee5760405162461bcd60e51b8152600401808060200182810382526030815260200180610df66030913960400191505060405180910390fd5b606083901b6001600160601b03191660805260a082905260f881901b7fff000000000000000000000000000000000000000000000000000000000000001660c05260e0516001600160a01b039093169260ff90911690610c5761019f600039806102a952806104eb528061053e528061059e5250806101c05280610448528061056a52806106925250806101e4528061024a52806102cd52508061020e52806103da52806104035250610c576000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a015514610145578063c640752d14610169578063dbaad32f14610199578063e4463eb2146101b657610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e42146100fb575b600080fd5b6100956101be565b6040805160ff9092168252519081900360200190f35b6100b36101e2565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b506001600160a01b03813581169160208101359160409091013516610206565b6101276004803603604081101561011157600080fd5b506001600160a01b038135169060200135610399565b60408051938452602084019290925282820152519081900360600190f35b61014d6103d8565b604080516001600160a01b039092168252519081900360200190f35b6101976004803603604081101561017f57600080fd5b506001600160a01b03813581169160200135166103fc565b005b610095600480360360208110156101af57600080fd5b5035610539565b6100b361059c565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102347f000000000000000000000000000000000000000000000000000000000000000086856105c0565b9050600061024182610680565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102a75760405162461bcd60e51b8152600401808060200182810382526033815260200180610b7e6033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f00000000000000000000000000000000000000000000000000000000000000000381101561032b5760405162461bcd60e51b815260040180806020018281038252602c815260200180610bb1602c913960400191505060405180910390fd5b6000806103378561070e565b509150915060006103488a896108dd565b509050896001600160a01b0316816001600160a01b0316141561038257610375856001015484868c6109bb565b9650505050505050610392565b610375856002015483868c6109bb565b9392505050565b600060205281600052604060002081815481106103b257fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104297f000000000000000000000000000000000000000000000000000000000000000084846105c0565b6001600160a01b0381166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff1681101561049a576001600160a01b0382166000908152602081905260408120805460019081018255915201610446565b5060006104a642610539565b6001600160a01b03831660009081526020819052604081208054929350909160ff84169081106104d257fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105315760008061051d8661070e565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161056557fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161059457fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105cf85856108dd565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60008061068c42610539565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff16816106c257fe5b069050600080856001600160a01b03166001600160a01b031681526020019081526020016000208160ff16815481106106f757fe5b906000526020600020906003020192505050919050565b600080600061071b610a19565b9050836001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b505160408051635a3d549360e01b815290519194506001600160a01b03861691635a3d549391600480820192602092909190829003018186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d60208110156107f057600080fd5b505160408051630240bc6b60e21b81529051919350600091829182916001600160a01b03891691630902f1ac916004808301926060929190829003018186803b15801561083c57600080fd5b505afa158015610850573d6000803e3d6000fd5b505050506040513d606081101561086657600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146108d35780840363ffffffff81166108a08486610a23565b516001600160e01b031602969096019563ffffffff81166108c18585610a23565b516001600160e01b0316029590950194505b5050509193909250565b600080826001600160a01b0316846001600160a01b031614156109315760405162461bcd60e51b8152600401808060200182810382526022815260200180610bdd6022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610951578284610954565b83835b90925090506001600160a01b0382166109b4576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b60006109c5610b58565b604051806020016040528085888803816109db57fe5b046001600160e01b0316905290506109fb6109f68285610ad3565b610b51565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610a2b610b58565b6000826001600160701b031611610a89576040805162461bcd60e51b815260206004820152601760248201527f4669786564506f696e743a204449565f42595f5a45524f000000000000000000604482015290519081900360640190fd5b6040805160208101909152806001600160701b0384166dffffffffffffffffffffffffffff60701b607087901b1681610abe57fe5b046001600160e01b0316815250905092915050565b610adb610b6a565b6000821580610b0157505082516001600160e01b031682810290838281610afe57fe5b04145b610b3c5760405162461bcd60e51b8152600401808060200182810382526023815260200180610bff6023913960400191505060405180910390fd5b60408051602081019091529081529392505050565b5160701c90565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444458737761704c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57a26469706673582212203fa5e3cce088b12210373c0520795a9e73e22489fc8e01e247bc1bae171d947564736f6c63430006060033536c6964696e6757696e646f774f7261636c653a2057494e444f575f4e4f545f4556454e4c595f444956495349424c45" -} \ No newline at end of file diff --git a/build/ExampleSwapToPrice.json b/build/ExampleSwapToPrice.json deleted file mode 100644 index e261ed5c..00000000 --- a/build/ExampleSwapToPrice.json +++ /dev/null @@ -1,319 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory_", - "type": "address" - }, - { - "internalType": "contract IDXswapRouter", - "name": "router_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "truePriceTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "truePriceTokenB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "computeProfitMaximizingTrade", - "outputs": [ - { - "internalType": "bool", - "name": "aToB", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "router", - "outputs": [ - { - "internalType": "contract IDXswapRouter", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "truePriceTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "truePriceTokenB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxSpendTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxSpendTokenB", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapToPrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60c060405234801561001057600080fd5b50604051610e26380380610e268339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b811660a052911b1660805260805160601c60a05160601c610d94610092600039806102f0528061032152806106065250806103b25280610455528061062a5250610d946000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806398f1254a14610051578063bef90fd3146100a1578063c45a0155146100f8578063f887ea401461011c575b600080fd5b610086600480360360a081101561006757600080fd5b5080359060208101359060408101359060608101359060800135610124565b60408051921515835260208301919091528051918290030190f35b6100f660048036036101008110156100b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135610228565b005b610100610604565b604080516001600160a01b039092168252519081900360200190f35b610100610628565b6000808684610139878963ffffffff61064c16565b8161014057fe5b041091506000610156868663ffffffff61064c16565b905060006101bb61018b6101726127108863ffffffff6106b516565b8661017d578b61017f565b8a5b9063ffffffff61064c16565b6101ae61271061017f8861019f578c6101a1565b8d5b879063ffffffff61064c16565b816101b557fe5b04610705565b905060006101d16127108763ffffffff6106b516565b856101ed576101e88861271063ffffffff61064c16565b6101ff565b6101ff8961271063ffffffff61064c16565b8161020657fe5b049050610219828263ffffffff6106b516565b93505050509550959350505050565b851580159061023657508415155b610287576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061029457508215155b6102e5576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806103167f00000000000000000000000000000000000000000000000000000000000000008d8d610757565b9150915060006103477f00000000000000000000000000000000000000000000000000000000000000008e8e610825565b90506103568b8b858585610124565b809550819650505050505060008261036e5785610370565b865b90508082111561037e578091505b60008361038b578a61038d565b8b5b905060008461039c578c61039e565b8b5b90506103ac823330876108b3565b6103d7827f000000000000000000000000000000000000000000000000000000000000000086610a10565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061040557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811061043357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338ed1739866000848c8c6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156105015781810151838201526020016104e9565b505050509050019650505050505050600060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056757600080fd5b810190808051604051939291908464010000000082111561058757600080fd5b90830190602082018581111561059c57600080fd5b82518660208202830111640100000000821117156105b957600080fd5b82525081516020918201928201910280838360005b838110156105e65781810151838201526020016105ce565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008115806106675750508082028282828161066457fe5b04145b6106af576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b808203828111156106af576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b60006003821115610748575080600160028204015b818110156107425780915060028182858161073157fe5b04018161073a57fe5b04905061071a565b50610752565b8115610752575060015b919050565b60008060006107668585610b7a565b509050600080610777888888610c58565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d60608110156107d957600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614610813578082610816565b81815b90999098509650505050505050565b6000806108328484610b7a565b509050610840858585610c58565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d60208110156108a257600080fd5b505163ffffffff1695945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106109385780518252601f199092019160209182019101610919565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461099a576040519150601f19603f3d011682016040523d82523d6000602084013e61099f565b606091505b50915091508180156109cd5750805115806109cd57508080602001905160208110156109ca57600080fd5b50515b610a085760405162461bcd60e51b8152600401808060200182810382526024815260200180610d3b6024913960400191505060405180910390fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310610a8d5780518252601f199092019160209182019101610a6e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5091509150818015610b22575080511580610b225750808060200190516020811015610b1f57600080fd5b50515b610b73576040805162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b5050505050565b600080826001600160a01b0316846001600160a01b03161415610bce5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d196022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610bee578284610bf1565b83835b90925090506001600160a01b038216610c51576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6000806000610c678585610b7a565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd90920190975280519601959095209594505050505056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220d876890f27d1e389238a7b0583eb728a8ca4c39e10c963fb2cb2a11d552052d164736f6c63430006060033", - "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xE26 CODESIZE SUB DUP1 PUSH2 0xE26 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0xA0 MSTORE SWAP2 SHL AND PUSH1 0x80 MSTORE PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0xD94 PUSH2 0x92 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x2F0 MSTORE DUP1 PUSH2 0x321 MSTORE DUP1 PUSH2 0x606 MSTORE POP DUP1 PUSH2 0x3B2 MSTORE DUP1 PUSH2 0x455 MSTORE DUP1 PUSH2 0x62A MSTORE POP PUSH2 0xD94 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x98F1254A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBEF90FD3 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xF887EA40 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x124 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 ISZERO ISZERO DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x228 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x100 PUSH2 0x604 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH2 0x628 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP5 PUSH2 0x139 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x140 JUMPI INVALID JUMPDEST DIV LT SWAP2 POP PUSH1 0x0 PUSH2 0x156 DUP7 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1BB PUSH2 0x18B PUSH2 0x172 PUSH2 0x2710 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST DUP7 PUSH2 0x17D JUMPI DUP12 PUSH2 0x17F JUMP JUMPDEST DUP11 JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH2 0x1AE PUSH2 0x2710 PUSH2 0x17F DUP9 PUSH2 0x19F JUMPI DUP13 PUSH2 0x1A1 JUMP JUMPDEST DUP14 JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x1B5 JUMPI INVALID JUMPDEST DIV PUSH2 0x705 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D1 PUSH2 0x2710 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST DUP6 PUSH2 0x1ED JUMPI PUSH2 0x1E8 DUP9 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH2 0x1FF JUMP JUMPDEST PUSH2 0x1FF DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x206 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x219 DUP3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST DUP6 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x236 JUMPI POP DUP5 ISZERO ISZERO JUMPDEST PUSH2 0x287 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C6553776170546F50726963653A205A45524F5F50524943450000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 ISZERO ISZERO DUP1 PUSH2 0x294 JUMPI POP DUP3 ISZERO ISZERO JUMPDEST PUSH2 0x2E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C6553776170546F50726963653A205A45524F5F5350454E440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x316 PUSH32 0x0 DUP14 DUP14 PUSH2 0x757 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x347 PUSH32 0x0 DUP15 DUP15 PUSH2 0x825 JUMP JUMPDEST SWAP1 POP PUSH2 0x356 DUP12 DUP12 DUP6 DUP6 DUP6 PUSH2 0x124 JUMP JUMPDEST DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP POP POP POP PUSH1 0x0 DUP3 PUSH2 0x36E JUMPI DUP6 PUSH2 0x370 JUMP JUMPDEST DUP7 JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x37E JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x38B JUMPI DUP11 PUSH2 0x38D JUMP JUMPDEST DUP12 JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 PUSH2 0x39C JUMPI DUP13 PUSH2 0x39E JUMP JUMPDEST DUP12 JUMPDEST SWAP1 POP PUSH2 0x3AC DUP3 CALLER ADDRESS DUP8 PUSH2 0x8B3 JUMP JUMPDEST PUSH2 0x3D7 DUP3 PUSH32 0x0 DUP7 PUSH2 0xA10 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP1 DUP4 ADD DUP5 MSTORE SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x405 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP DUP2 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x433 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 DUP7 PUSH1 0x0 DUP5 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x501 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4E9 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x53E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x59C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5E6 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5CE JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x667 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x664 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x6AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x6AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x748 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x742 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x731 JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x73A JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x71A JUMP JUMPDEST POP PUSH2 0x752 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x752 JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x766 DUP6 DUP6 PUSH2 0xB7A JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x777 DUP9 DUP9 DUP9 PUSH2 0xC58 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x813 JUMPI DUP1 DUP3 PUSH2 0x816 JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x832 DUP5 DUP5 PUSH2 0xB7A JUMP JUMPDEST POP SWAP1 POP PUSH2 0x840 DUP6 DUP6 DUP6 PUSH2 0xC58 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x938 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x919 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x99A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x99F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x9CD JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x9CD JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0xA08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xD3B PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA8D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xAEF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xAF4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0xB22 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0xB22 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0xB73 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A20415050524F56455F4641494C45440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xD19 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0xBEE JUMPI DUP3 DUP5 PUSH2 0xBF1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC51 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC67 DUP6 DUP6 PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD8 PUSH23 0x890F27D1E389238A7B0583EB728A8CA4C39E10C963FB2C 0xB2 LOG1 SAR SSTORE KECCAK256 MSTORE 0xD1 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "320:3322:9:-:0;;;469:121;5:9:-1;2:2;;;27:1;24;17:12;2:2;469:121:9;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;469:121:9;;;;;;;-1:-1:-1;;;;;;539:18:9;;;;;;;;567:16;;;;;320:3322;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": { - "9407": [ - { - "length": 32, - "start": 946 - }, - { - "length": 32, - "start": 1109 - }, - { - "length": 32, - "start": 1578 - } - ], - "9409": [ - { - "length": 32, - "start": 752 - }, - { - "length": 32, - "start": 801 - }, - { - "length": 32, - "start": 1542 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c806398f1254a14610051578063bef90fd3146100a1578063c45a0155146100f8578063f887ea401461011c575b600080fd5b610086600480360360a081101561006757600080fd5b5080359060208101359060408101359060608101359060800135610124565b60408051921515835260208301919091528051918290030190f35b6100f660048036036101008110156100b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135610228565b005b610100610604565b604080516001600160a01b039092168252519081900360200190f35b610100610628565b6000808684610139878963ffffffff61064c16565b8161014057fe5b041091506000610156868663ffffffff61064c16565b905060006101bb61018b6101726127108863ffffffff6106b516565b8661017d578b61017f565b8a5b9063ffffffff61064c16565b6101ae61271061017f8861019f578c6101a1565b8d5b879063ffffffff61064c16565b816101b557fe5b04610705565b905060006101d16127108763ffffffff6106b516565b856101ed576101e88861271063ffffffff61064c16565b6101ff565b6101ff8961271063ffffffff61064c16565b8161020657fe5b049050610219828263ffffffff6106b516565b93505050509550959350505050565b851580159061023657508415155b610287576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061029457508215155b6102e5576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806103167f00000000000000000000000000000000000000000000000000000000000000008d8d610757565b9150915060006103477f00000000000000000000000000000000000000000000000000000000000000008e8e610825565b90506103568b8b858585610124565b809550819650505050505060008261036e5785610370565b865b90508082111561037e578091505b60008361038b578a61038d565b8b5b905060008461039c578c61039e565b8b5b90506103ac823330876108b3565b6103d7827f000000000000000000000000000000000000000000000000000000000000000086610a10565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061040557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811061043357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338ed1739866000848c8c6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156105015781810151838201526020016104e9565b505050509050019650505050505050600060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056757600080fd5b810190808051604051939291908464010000000082111561058757600080fd5b90830190602082018581111561059c57600080fd5b82518660208202830111640100000000821117156105b957600080fd5b82525081516020918201928201910280838360005b838110156105e65781810151838201526020016105ce565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008115806106675750508082028282828161066457fe5b04145b6106af576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b808203828111156106af576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b60006003821115610748575080600160028204015b818110156107425780915060028182858161073157fe5b04018161073a57fe5b04905061071a565b50610752565b8115610752575060015b919050565b60008060006107668585610b7a565b509050600080610777888888610c58565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d60608110156107d957600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614610813578082610816565b81815b90999098509650505050505050565b6000806108328484610b7a565b509050610840858585610c58565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d60208110156108a257600080fd5b505163ffffffff1695945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106109385780518252601f199092019160209182019101610919565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461099a576040519150601f19603f3d011682016040523d82523d6000602084013e61099f565b606091505b50915091508180156109cd5750805115806109cd57508080602001905160208110156109ca57600080fd5b50515b610a085760405162461bcd60e51b8152600401808060200182810382526024815260200180610d3b6024913960400191505060405180910390fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310610a8d5780518252601f199092019160209182019101610a6e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5091509150818015610b22575080511580610b225750808060200190516020811015610b1f57600080fd5b50515b610b73576040805162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b5050505050565b600080826001600160a01b0316846001600160a01b03161415610bce5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d196022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610bee578284610bf1565b83835b90925090506001600160a01b038216610c51576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6000806000610c678585610b7a565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd90920190975280519601959095209594505050505056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220d876890f27d1e389238a7b0583eb728a8ca4c39e10c963fb2cb2a11d552052d164736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x98F1254A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBEF90FD3 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xF887EA40 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x124 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 ISZERO ISZERO DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x228 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x100 PUSH2 0x604 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH2 0x628 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP5 PUSH2 0x139 DUP8 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x140 JUMPI INVALID JUMPDEST DIV LT SWAP2 POP PUSH1 0x0 PUSH2 0x156 DUP7 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1BB PUSH2 0x18B PUSH2 0x172 PUSH2 0x2710 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST DUP7 PUSH2 0x17D JUMPI DUP12 PUSH2 0x17F JUMP JUMPDEST DUP11 JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH2 0x1AE PUSH2 0x2710 PUSH2 0x17F DUP9 PUSH2 0x19F JUMPI DUP13 PUSH2 0x1A1 JUMP JUMPDEST DUP14 JUMPDEST DUP8 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x1B5 JUMPI INVALID JUMPDEST DIV PUSH2 0x705 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D1 PUSH2 0x2710 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST DUP6 PUSH2 0x1ED JUMPI PUSH2 0x1E8 DUP9 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH2 0x1FF JUMP JUMPDEST PUSH2 0x1FF DUP10 PUSH2 0x2710 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST DUP2 PUSH2 0x206 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x219 DUP3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x6B5 AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST DUP6 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x236 JUMPI POP DUP5 ISZERO ISZERO JUMPDEST PUSH2 0x287 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C6553776170546F50726963653A205A45524F5F50524943450000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 ISZERO ISZERO DUP1 PUSH2 0x294 JUMPI POP DUP3 ISZERO ISZERO JUMPDEST PUSH2 0x2E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578616D706C6553776170546F50726963653A205A45524F5F5350454E440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x316 PUSH32 0x0 DUP14 DUP14 PUSH2 0x757 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x347 PUSH32 0x0 DUP15 DUP15 PUSH2 0x825 JUMP JUMPDEST SWAP1 POP PUSH2 0x356 DUP12 DUP12 DUP6 DUP6 DUP6 PUSH2 0x124 JUMP JUMPDEST DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP POP POP POP PUSH1 0x0 DUP3 PUSH2 0x36E JUMPI DUP6 PUSH2 0x370 JUMP JUMPDEST DUP7 JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x37E JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x38B JUMPI DUP11 PUSH2 0x38D JUMP JUMPDEST DUP12 JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 PUSH2 0x39C JUMPI DUP13 PUSH2 0x39E JUMP JUMPDEST DUP12 JUMPDEST SWAP1 POP PUSH2 0x3AC DUP3 CALLER ADDRESS DUP8 PUSH2 0x8B3 JUMP JUMPDEST PUSH2 0x3D7 DUP3 PUSH32 0x0 DUP7 PUSH2 0xA10 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP1 DUP4 ADD DUP5 MSTORE SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x405 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP DUP2 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x433 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 DUP7 PUSH1 0x0 DUP5 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x501 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4E9 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x53E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x59C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5E6 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5CE JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x667 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x664 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0x6AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x64732D6D6174682D6D756C2D6F766572666C6F77 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x6AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x64732D6D6174682D7375622D756E646572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x748 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x742 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x731 JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x73A JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x71A JUMP JUMPDEST POP PUSH2 0x752 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x752 JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x766 DUP6 DUP6 PUSH2 0xB7A JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x777 DUP9 DUP9 DUP9 PUSH2 0xC58 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x813 JUMPI DUP1 DUP3 PUSH2 0x816 JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x832 DUP5 DUP5 PUSH2 0xB7A JUMP JUMPDEST POP SWAP1 POP PUSH2 0x840 DUP6 DUP6 DUP6 PUSH2 0xC58 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x54CF2AEB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH4 0xFFFFFFFF AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x938 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x919 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x99A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x99F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x9CD JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x9CD JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0xA08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xD3B PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA8D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xAEF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xAF4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0xB22 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0xB22 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0xB73 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A20415050524F56455F4641494C45440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xD19 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0xBEE JUMPI DUP3 DUP5 PUSH2 0xBF1 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC51 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4458737761704C6962726172793A205A45524F5F414444524553530000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC67 DUP6 DUP6 PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0xD306A548755B9295EE49CC729E13CA4A45E00199BBD890FA146DA43A50571776 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID DIFFICULTY PC PUSH20 0x7761704C6962726172793A204944454E54494341 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD8 PUSH23 0x890F27D1E389238A7B0583EB728A8CA4C39E10C963FB2C 0xB2 LOG1 SAR SSTORE KECCAK256 MSTORE 0xD1 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "320:3322:9:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;320:3322:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;671:850:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;671:850:9;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1795:1845;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;1795:1845:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;430:32;;;:::i;:::-;;;;-1:-1:-1;;;;;430:32:9;;;;;;;;;;;;;;387:37;;;:::i;671:850::-;879:9;;968:15;957:8;925:29;:8;938:15;925:29;:12;:29;:::i;:::-;:40;;;;;;:58;;-1:-1:-1;994:17:9;1014:22;:8;1027;1014:22;:12;:22;:::i;:::-;994:42;-1:-1:-1;1047:16:9;1066:199;1176:79;1230:24;1235:5;1246:7;1230:24;:15;:24;:::i;:::-;1184:4;:40;;1209:15;1184:40;;;1191:15;1184:40;1176:53;:79;:53;:79;:::i;:::-;1095:66;1155:5;1095:55;1109:4;:40;;1134:15;1109:40;;;1116:15;1109:40;1095:9;;:55;:13;:55;:::i;:66::-;:160;;;;;;1066:15;:199::i;:::-;1047:218;-1:-1:-1;1275:17:9;1348:24;1353:5;1364:7;1348:24;:15;:24;:::i;:::-;1296:4;:48;;1325:19;:8;1338:5;1325:19;:12;:19;:::i;:::-;1296:48;;;1303:19;:8;1316:5;1303:19;:12;:19;:::i;:::-;1295:77;;;;;;;-1:-1:-1;1491:23:9;:8;1295:77;1491:23;:12;:23;:::i;:::-;1480:34;;671:850;;;;;;;;;;;:::o;1795:1845::-;2150:20;;;;;:44;;-1:-1:-1;2174:20:9;;;2150:44;2142:87;;;;;-1:-1:-1;;;2142:87:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2347:19;;;;:42;;-1:-1:-1;2370:19:9;;;2347:42;2339:85;;;;;-1:-1:-1;;;2339:85:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2435:9;2454:16;2495;2513;2533:50;2559:7;2568:6;2576;2533:25;:50::i;:::-;2494:89;;;;2597:15;2615:49;2640:7;2649:6;2657;2615:24;:49::i;:::-;2597:67;;2697:137;2743:15;2760;2793:8;2803;2813:7;2697:28;:137::i;:::-;2678:156;;;;;;;;1795:1845;;;2908:16;2927:4;:38;;2951:14;2927:38;;;2934:14;2927:38;2908:57;;2990:8;2979;:19;2975:69;;;3025:8;3014:19;;2975:69;3054:15;3072:4;:22;;3088:6;3072:22;;;3079:6;3072:22;3054:40;;3104:16;3123:4;:22;;3139:6;3123:22;;;3130:6;3123:22;3104:41;;3155:77;3187:7;3196:10;3216:4;3223:8;3155:31;:77::i;:::-;3242:62;3269:7;3286:6;3295:8;3242:26;:62::i;:::-;3339:16;;;3353:1;3339:16;;;3315:21;3339:16;;;;;3315:21;3339:16;;;;;109:14:-1;3339:16:9;88:42:-1;144:17;;-1:-1;3339:16:9;3315:40;;3375:7;3365:4;3370:1;3365:7;;;;;;;;;;;;;:17;-1:-1:-1;;;;;3365:17:9;;;-1:-1:-1;;;;;3365:17:9;;;;;3402:8;3392:4;3397:1;3392:7;;;;;;;;;;;;;:18;-1:-1:-1;;;;;3392:18:9;;;-1:-1:-1;;;;;3392:18:9;;;;;3421:6;-1:-1:-1;;;;;3421:31:9;;3466:8;3488:1;3581:4;3599:2;3615:8;3421:212;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3421:212:9;-1:-1:-1;;;;;3421:212:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3421:212:9;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3421:212:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3421:212:9;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3421:212:9;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;15:2;7:11;;4:2;;;31:1;28;21:12;4:2;3421:212:9;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;3421:212:9;;421:4:-1;412:14;;;;3421:212:9;;;;;412:14:-1;3421:212:9;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3421:212:9;;;;;;;;;;;;1795:1845;;;;;;;;;;;;;;:::o;430:32::-;;;:::o;387:37::-;;;:::o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;-1:-1:-1;;;489:63:23;;;;;;;;;;;;;;;419:140;;;;:::o;286:127::-;369:5;;;364:16;;;;356:50;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;-1:-1:-1;;;356:50:23;;;;;;;;;;;;;;189:314:17;234:6;260:1;256;:5;252:223;;;-1:-1:-1;281:1:17;313;309;305:5;;:9;328:89;339:1;335;:5;328:89;;;364:1;360:5;;401:1;396;392;388;:5;;;;;;:9;387:15;;;;;;383:19;;328:89;;;252:223;;;;437:6;;433:42;;-1:-1:-1;463:1:17;433:42;189:314;;;:::o;1203:384:18:-;1296:13;1311;1337:14;1356:26;1367:6;1375;1356:10;:26::i;:::-;1336:46;;;1393:13;1408;1438:32;1446:7;1455:6;1463;1438:7;:32::i;:::-;-1:-1:-1;;;;;1426:57:18;;:59;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1426:59:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1426:59:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1426:59:18;;;;;;;1392:93;;;;;-1:-1:-1;1392:93:18;;-1:-1:-1;;;;;;1518:16:18;;;;;;;:62;;1561:8;1571;1518:62;;;1538:8;1548;1518:62;1495:85;;;;-1:-1:-1;1203:384:18;-1:-1:-1;;;;;;;1203:384:18:o;1646:244::-;1738:12;1763:14;1782:26;1793:6;1801;1782:10;:26::i;:::-;1762:46;;;1840:32;1848:7;1857:6;1865;1840:7;:32::i;:::-;-1:-1:-1;;;;;1828:53:18;;:55;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1828:55:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1828:55:18;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1828:55:18;1818:65;;;1646:244;-1:-1:-1;;;;;1646:244:18:o;889:398:24:-;1112:51;;;-1:-1:-1;;;;;1112:51:24;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1112:51:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1101:63:24;;;;1066:12;;1080:17;;1101:10;;;;1112:51;1101:63;;;25:18:-1;1101:63:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1101:63:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1065:99:24;;;;1182:7;:57;;;;-1:-1:-1;1194:11:24;;:16;;:44;;;1225:4;1214:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1214:24:24;1194:44;1174:106;;;;-1:-1:-1;;;1174:106:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:398;;;;;;:::o;166:354::-;357:45;;;-1:-1:-1;;;;;357:45:24;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;357:45:24;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;346:57:24;;;;311:12;;325:17;;346:10;;;;357:45;346:57;;;25:18:-1;346:57:24;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;346:57:24;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;310:93:24;;;;421:7;:57;;;;-1:-1:-1;433:11:24;;:16;;:44;;;464:4;453:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;453:24:24;433:44;413:100;;;;;-1:-1:-1;;;413:100:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;166:354;;;;;:::o;270:339:18:-;345:14;361;405:6;-1:-1:-1;;;;;395:16:18;:6;-1:-1:-1;;;;;395:16:18;;;387:63;;;;-1:-1:-1;;;387:63:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:6;-1:-1:-1;;;;;479:15:18;:6;-1:-1:-1;;;;;479:15:18;;:53;;517:6;525;479:53;;;498:6;506;479:53;460:72;;-1:-1:-1;460:72:18;-1:-1:-1;;;;;;550:20:18;;542:60;;;;;-1:-1:-1;;;542:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:339;;;;;:::o;698:450::-;787:12;812:14;828;846:26;857:6;865;846:10;:26::i;:::-;994:32;;;-1:-1:-1;;994:32:18;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;994:32:18;;;;;984:43;;;;;;-1:-1:-1;;;;;;912:226:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;912:226:18;;;;;;;902:237;;;;;;;;;698:450;-1:-1:-1;;;;;698:450:18:o" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "factory_", - "type": "address" - }, - { - "internalType": "contract IDXswapRouter", - "name": "router_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "truePriceTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "truePriceTokenB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "computeProfitMaximizingTrade", - "outputs": [ - { - "internalType": "bool", - "name": "aToB", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "router", - "outputs": [ - { - "internalType": "contract IDXswapRouter", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "truePriceTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "truePriceTokenB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxSpendTokenA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxSpendTokenB", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapToPrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "60c060405234801561001057600080fd5b50604051610e26380380610e268339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b811660a052911b1660805260805160601c60a05160601c610d94610092600039806102f0528061032152806106065250806103b25280610455528061062a5250610d946000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806398f1254a14610051578063bef90fd3146100a1578063c45a0155146100f8578063f887ea401461011c575b600080fd5b610086600480360360a081101561006757600080fd5b5080359060208101359060408101359060608101359060800135610124565b60408051921515835260208301919091528051918290030190f35b6100f660048036036101008110156100b857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135610228565b005b610100610604565b604080516001600160a01b039092168252519081900360200190f35b610100610628565b6000808684610139878963ffffffff61064c16565b8161014057fe5b041091506000610156868663ffffffff61064c16565b905060006101bb61018b6101726127108863ffffffff6106b516565b8661017d578b61017f565b8a5b9063ffffffff61064c16565b6101ae61271061017f8861019f578c6101a1565b8d5b879063ffffffff61064c16565b816101b557fe5b04610705565b905060006101d16127108763ffffffff6106b516565b856101ed576101e88861271063ffffffff61064c16565b6101ff565b6101ff8961271063ffffffff61064c16565b8161020657fe5b049050610219828263ffffffff6106b516565b93505050509550959350505050565b851580159061023657508415155b610287576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061029457508215155b6102e5576040805162461bcd60e51b815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806103167f00000000000000000000000000000000000000000000000000000000000000008d8d610757565b9150915060006103477f00000000000000000000000000000000000000000000000000000000000000008e8e610825565b90506103568b8b858585610124565b809550819650505050505060008261036e5785610370565b865b90508082111561037e578091505b60008361038b578a61038d565b8b5b905060008461039c578c61039e565b8b5b90506103ac823330876108b3565b6103d7827f000000000000000000000000000000000000000000000000000000000000000086610a10565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061040557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811061043357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338ed1739866000848c8c6040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156105015781810151838201526020016104e9565b505050509050019650505050505050600060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056757600080fd5b810190808051604051939291908464010000000082111561058757600080fd5b90830190602082018581111561059c57600080fd5b82518660208202830111640100000000821117156105b957600080fd5b82525081516020918201928201910280838360005b838110156105e65781810151838201526020016105ce565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008115806106675750508082028282828161066457fe5b04145b6106af576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b808203828111156106af576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b60006003821115610748575080600160028204015b818110156107425780915060028182858161073157fe5b04018161073a57fe5b04905061071a565b50610752565b8115610752575060015b919050565b60008060006107668585610b7a565b509050600080610777888888610c58565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d60608110156107d957600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614610813578082610816565b81815b90999098509650505050505050565b6000806108328484610b7a565b509050610840858585610c58565b6001600160a01b03166354cf2aeb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d60208110156108a257600080fd5b505163ffffffff1695945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106109385780518252601f199092019160209182019101610919565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461099a576040519150601f19603f3d011682016040523d82523d6000602084013e61099f565b606091505b50915091508180156109cd5750805115806109cd57508080602001905160208110156109ca57600080fd5b50515b610a085760405162461bcd60e51b8152600401808060200182810382526024815260200180610d3b6024913960400191505060405180910390fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310610a8d5780518252601f199092019160209182019101610a6e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610aef576040519150601f19603f3d011682016040523d82523d6000602084013e610af4565b606091505b5091509150818015610b22575080511580610b225750808060200190516020811015610b1f57600080fd5b50515b610b73576040805162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b5050505050565b600080826001600160a01b0316846001600160a01b03161415610bce5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d196022913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610610bee578284610bf1565b83835b90925090506001600160a01b038216610c51576040805162461bcd60e51b815260206004820152601b60248201527f4458737761704c6962726172793a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b9250929050565b6000806000610c678585610b7a565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776609d808401919091528851808403909101815260bd90920190975280519601959095209594505050505056fe4458737761704c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220d876890f27d1e389238a7b0583eb728a8ca4c39e10c963fb2cb2a11d552052d164736f6c63430006060033" -} \ No newline at end of file diff --git a/build/FixedPoint.json b/build/FixedPoint.json deleted file mode 100644 index 41336e3f..00000000 --- a/build/FixedPoint.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220136e7de3d53d1501fe0d8d6f0799b44227d4e0daafba7c3bfdb376df2f45689d64736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT PUSH15 0x7DE3D53D1501FE0D8D6F0799B44227 0xD4 0xE0 0xDA 0xAF 0xBA PUSH29 0x3BFDB376DF2F45689D64736F6C63430006060033000000000000000000 ", - "sourceMap": "129:2052:20:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220136e7de3d53d1501fe0d8d6f0799b44227d4e0daafba7c3bfdb376df2f45689d64736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT PUSH15 0x7DE3D53D1501FE0D8D6F0799B44227 0xD4 0xE0 0xDA 0xAF 0xBA PUSH29 0x3BFDB376DF2F45689D64736F6C63430006060033000000000000000000 ", - "sourceMap": "129:2052:20:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220136e7de3d53d1501fe0d8d6f0799b44227d4e0daafba7c3bfdb376df2f45689d64736f6c63430006060033" -} \ No newline at end of file diff --git a/build/IDXswapFactory.json b/build/IDXswapFactory.json deleted file mode 100644 index fa7426f3..00000000 --- a/build/IDXswapFactory.json +++ /dev/null @@ -1,462 +0,0 @@ -{ - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "PairCreated", - "type": "event" - }, - { - "inputs": [], - "name": "INIT_CODE_PAIR_HASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "allPairs", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "allPairsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "createPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeTo", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeToSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "getPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "protocolFeeDenominator", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeToSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_protocolFee", - "type": "uint8" - } - ], - "name": "setProtocolFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "swapFee", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token0", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token1", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "PairCreated", - "type": "event" - }, - { - "inputs": [], - "name": "INIT_CODE_PAIR_HASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "allPairs", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "allPairsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "createPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeTo", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeToSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - } - ], - "name": "getPair", - "outputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "protocolFeeDenominator", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeToSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_protocolFee", - "type": "uint8" - } - ], - "name": "setProtocolFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pair", - "type": "address" - }, - { - "internalType": "uint32", - "name": "swapFee", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "" -} \ No newline at end of file diff --git a/build/IDXswapPair.json b/build/IDXswapPair.json deleted file mode 100644 index 2f50dddf..00000000 --- a/build/IDXswapPair.json +++ /dev/null @@ -1,1376 +0,0 @@ -{ - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setSwapFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "swapFee", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "" -} \ No newline at end of file diff --git a/build/IDXswapRouter.json b/build/IDXswapRouter.json deleted file mode 100644 index 512b9e37..00000000 --- a/build/IDXswapRouter.json +++ /dev/null @@ -1,1944 +0,0 @@ -{ - "abi": [ - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "inputs": [], - "name": "WETH", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountADesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountTokenDesired", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "addLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountIn", - "outputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "swapFee", - "type": "uint256" - } - ], - "name": "getAmountOut", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsIn", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - } - ], - "name": "getAmountsOut", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "reserveB", - "type": "uint256" - } - ], - "name": "quote", - "outputs": [ - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETH", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "removeLiquidityETHSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountTokenMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountETHMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "amountETH", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "tokenA", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenB", - "type": "address" - }, - { - "internalType": "uint256", - "name": "liquidity", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountAMin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountBMin", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "approveMax", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "removeLiquidityWithPermit", - "outputs": [ - { - "internalType": "uint256", - "name": "amountA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountB", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [ - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "" -} \ No newline at end of file diff --git a/build/IERC20.json b/build/IERC20.json deleted file mode 100644 index ad1e9c6d..00000000 --- a/build/IERC20.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "" -} \ No newline at end of file diff --git a/build/IWETH.json b/build/IWETH.json deleted file mode 100644 index 2560e3cf..00000000 --- a/build/IWETH.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - } - }, - "interface": [ - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "" -} \ No newline at end of file diff --git a/build/PairNamer.json b/build/PairNamer.json deleted file mode 100644 index 7c810a40..00000000 --- a/build/PairNamer.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1f6f3a148dcd70dfec5a804cbd460b71d9adea2634afa25bd4d4f23fac150da64736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 0xF6 RETURN LOG1 0x48 0xDC 0xD7 0xD INVALID 0xC5 0xA8 DIV 0xCB 0xD4 PUSH1 0xB7 SAR SWAP11 0xDE LOG2 PUSH4 0x4AFA25BD 0x4D 0x4F 0x23 STATICCALL 0xC1 POP 0xDA PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "125:1134:21:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1f6f3a148dcd70dfec5a804cbd460b71d9adea2634afa25bd4d4f23fac150da64736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 0xF6 RETURN LOG1 0x48 0xDC 0xD7 0xD INVALID 0xC5 0xA8 DIV 0xCB 0xD4 PUSH1 0xB7 SAR SWAP11 0xDE LOG2 PUSH4 0x4AFA25BD 0x4D 0x4F 0x23 STATICCALL 0xC1 POP 0xDA PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "125:1134:21:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1f6f3a148dcd70dfec5a804cbd460b71d9adea2634afa25bd4d4f23fac150da64736f6c63430006060033" -} \ No newline at end of file diff --git a/build/RouterEventEmitter.json b/build/RouterEventEmitter.json deleted file mode 100644 index 45e18f9b..00000000 --- a/build/RouterEventEmitter.json +++ /dev/null @@ -1,492 +0,0 @@ -{ - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "name": "Amounts", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610cda806100206000396000f3fe6080604052600436106100595760003560e01c806322b5841014610065578063375734d91461010d5780639c91fcb5146101b3578063b05f579e14610259578063fa3219d5146102eb578063fde1adda1461039157610060565b3661006057005b600080fd5b34801561007157600080fd5b5061010b600480360360c081101561008857600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460208302840111600160201b831117156100f157600080fd5b91935091506001600160a01b038135169060200135610423565b005b34801561011957600080fd5b5061010b600480360360c081101561013057600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460208302840111600160201b8311171561019957600080fd5b91935091506001600160a01b03813516906020013561069c565b3480156101bf57600080fd5b5061010b600480360360c08110156101d657600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561020c57600080fd5b82018360208201111561021e57600080fd5b803590602001918460208302840111600160201b8311171561023f57600080fd5b91935091506001600160a01b038135169060200135610785565b61010b600480360360a081101561026f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111600160201b831117156102d157600080fd5b91935091506001600160a01b03813516906020013561086e565b3480156102f757600080fd5b5061010b600480360360c081101561030e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b91935091506001600160a01b038135169060200135610ade565b61010b600480360360a08110156103a757600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460208302840111600160201b8311171561040957600080fd5b91935091506001600160a01b038135169060200135610bc7565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b6020831061050d5780518252601f1990920191602091820191016104ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161057e57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105b457600080fd5b8101908080516040519392919084600160201b8211156105d357600080fd5b9083019060208201858111156105e857600080fd5b82518660208202830111600160201b8211171561060457600080fd5b82525081516020918201928201910280838360005b83811015610631578181015183820152602001610619565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561067e578181015183820152602001610666565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060886001600160a01b03166318cbafe560e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b031663fb3bdb4160e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106109505780518252601f199092019160209182019101610931565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b5091509150816109c157fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156109f757600080fd5b8101908080516040519392919084600160201b821115610a1657600080fd5b908301906020820185811115610a2b57600080fd5b82518660208202830111600160201b82111715610a4757600080fd5b82525081516020918201928201910280838360005b83811015610a74578181015183820152602001610a5c565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ac1578181015183820152602001610aa9565b505050509050019250505060405180910390a15050505050505050565b60006060886001600160a01b0316634a25d94a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b0316637ff36ab560e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03166001600160e01b0319909d169c909c178c5292518151919b909a508a9950975095508594508793508692505083106109505780518252601f19909201916020918201910161093156fea2646970667358221220f92b8aa1cdb0d607452198521805885c192c13578a452a6fcb472b3d0cbdf8e364736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCDA DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x59 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x22B58410 EQ PUSH2 0x65 JUMPI DUP1 PUSH4 0x375734D9 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x9C91FCB5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xB05F579E EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0xFA3219D5 EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xFDE1ADDA EQ PUSH2 0x391 JUMPI PUSH2 0x60 JUMP JUMPDEST CALLDATASIZE PUSH2 0x60 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x423 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x69C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x785 JUMP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x29E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x2D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x86E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x30E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xADE JUMP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x3A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8803DBEE PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x56D JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x572 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x57E JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x5E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT OR ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x631 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x619 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x67E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x666 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18CBAFE5 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFB3BDB41 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x950 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x931 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9B0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x9C1 JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0xA2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT OR ISZERO PUSH2 0xA47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA74 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA5C JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAC1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xAA9 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4A25D94A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7FF36AB5 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND SWAP1 SWAP5 ADD DUP3 DUP2 SUB SWAP1 SWAP5 ADD DUP3 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP14 AND SWAP13 SWAP1 SWAP13 OR DUP13 MSTORE SWAP3 MLOAD DUP2 MLOAD SWAP2 SWAP12 SWAP1 SWAP11 POP DUP11 SWAP10 POP SWAP8 POP SWAP6 POP DUP6 SWAP5 POP DUP8 SWAP4 POP DUP7 SWAP3 POP POP DUP4 LT PUSH2 0x950 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x931 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0x2B DUP11 LOG1 0xCD 0xB0 0xD6 SMOD GASLIMIT 0x21 SWAP9 MSTORE XOR SDIV DUP9 0x5C NOT 0x2C SGT JUMPI DUP11 GASLIMIT 0x2A PUSH16 0xCB472B3D0CBDF8E364736F6C63430006 MOD STOP CALLER ", - "sourceMap": "68:3087:27:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;68:3087:27;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600436106100595760003560e01c806322b5841014610065578063375734d91461010d5780639c91fcb5146101b3578063b05f579e14610259578063fa3219d5146102eb578063fde1adda1461039157610060565b3661006057005b600080fd5b34801561007157600080fd5b5061010b600480360360c081101561008857600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460208302840111600160201b831117156100f157600080fd5b91935091506001600160a01b038135169060200135610423565b005b34801561011957600080fd5b5061010b600480360360c081101561013057600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460208302840111600160201b8311171561019957600080fd5b91935091506001600160a01b03813516906020013561069c565b3480156101bf57600080fd5b5061010b600480360360c08110156101d657600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561020c57600080fd5b82018360208201111561021e57600080fd5b803590602001918460208302840111600160201b8311171561023f57600080fd5b91935091506001600160a01b038135169060200135610785565b61010b600480360360a081101561026f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111600160201b831117156102d157600080fd5b91935091506001600160a01b03813516906020013561086e565b3480156102f757600080fd5b5061010b600480360360c081101561030e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b91935091506001600160a01b038135169060200135610ade565b61010b600480360360a08110156103a757600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460208302840111600160201b8311171561040957600080fd5b91935091506001600160a01b038135169060200135610bc7565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b6020831061050d5780518252601f1990920191602091820191016104ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161057e57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105b457600080fd5b8101908080516040519392919084600160201b8211156105d357600080fd5b9083019060208201858111156105e857600080fd5b82518660208202830111600160201b8211171561060457600080fd5b82525081516020918201928201910280838360005b83811015610631578181015183820152602001610619565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561067e578181015183820152602001610666565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060886001600160a01b03166318cbafe560e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b031663fb3bdb4160e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106109505780518252601f199092019160209182019101610931565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b5091509150816109c157fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156109f757600080fd5b8101908080516040519392919084600160201b821115610a1657600080fd5b908301906020820185811115610a2b57600080fd5b82518660208202830111600160201b82111715610a4757600080fd5b82525081516020918201928201910280838360005b83811015610a74578181015183820152602001610a5c565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ac1578181015183820152602001610aa9565b505050509050019250505060405180910390a15050505050505050565b60006060886001600160a01b0316634a25d94a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b0316637ff36ab560e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03166001600160e01b0319909d169c909c178c5292518151919b909a508a9950975095508594508793508692505083106109505780518252601f19909201916020918201910161093156fea2646970667358221220f92b8aa1cdb0d607452198521805885c192c13578a452a6fcb472b3d0cbdf8e364736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x59 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x22B58410 EQ PUSH2 0x65 JUMPI DUP1 PUSH4 0x375734D9 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x9C91FCB5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xB05F579E EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0xFA3219D5 EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xFDE1ADDA EQ PUSH2 0x391 JUMPI PUSH2 0x60 JUMP JUMPDEST CALLDATASIZE PUSH2 0x60 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x423 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x69C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x785 JUMP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x29E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x2D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x86E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x30E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xADE JUMP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x3A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SHL DUP2 GT ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP4 GT OR ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8803DBEE PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x56D JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x572 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x57E JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x5E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT OR ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x631 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x619 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x67E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x666 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18CBAFE5 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFB3BDB41 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x950 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x931 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9B0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x9C1 JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0xA2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH1 0x1 PUSH1 0x20 SHL DUP3 GT OR ISZERO PUSH2 0xA47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA74 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA5C JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAC1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xAA9 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4A25D94A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x50D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7FF36AB5 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND SWAP1 SWAP5 ADD DUP3 DUP2 SUB SWAP1 SWAP5 ADD DUP3 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP14 AND SWAP13 SWAP1 SWAP13 OR DUP13 MSTORE SWAP3 MLOAD DUP2 MLOAD SWAP2 SWAP12 SWAP1 SWAP11 POP DUP11 SWAP10 POP SWAP8 POP SWAP6 POP DUP6 SWAP5 POP DUP8 SWAP4 POP DUP7 SWAP3 POP POP DUP4 LT PUSH2 0x950 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x931 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0x2B DUP11 LOG1 0xCD 0xB0 0xD6 SMOD GASLIMIT 0x21 SWAP9 MSTORE XOR SDIV DUP9 0x5C NOT 0x2C SGT JUMPI DUP11 GASLIMIT 0x2A PUSH16 0xCB472B3D0CBDF8E364736F6C63430006 MOD STOP CALLER ", - "sourceMap": "68:3087:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;684:505:27;;5:9:-1;2:2;;;27:1;24;17:12;2:2;684:505:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;684:505:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;684:505:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;684:505:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;684:505:27;;-1:-1:-1;684:505:27;-1:-1:-1;;;;;;684:505:27;;;;;;;;:::i;:::-;;173;;5:9:-1;2:2;;;27:1;24;17:12;2:2;173:505:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;173:505:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;173:505:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;173:505:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;173:505:27;;-1:-1:-1;173:505:27;-1:-1:-1;;;;;;173:505:27;;;;;;;;:::i;2180:499::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2180:499:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;2180:499:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;2180:499:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2180:499:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2180:499:27;;-1:-1:-1;2180:499:27;-1:-1:-1;;;;;;2180:499:27;;;;;;;;:::i;2685:468::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;2685:468:27;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;2685:468:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2685:468:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2685:468:27;;-1:-1:-1;2685:468:27;-1:-1:-1;;;;;;2685:468:27;;;;;;;;:::i;1675:499::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1675:499:27;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;1675:499:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;1675:499:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1675:499:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1675:499:27;;-1:-1:-1;1675:499:27;-1:-1:-1;;;;;;1675:499:27;;;;;;;;:::i;1195:474::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;1195:474:27;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;1195:474:27;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1195:474:27;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1195:474:27;;-1:-1:-1;1195:474:27;-1:-1:-1;;;;;;1195:474:27;;;;;;;;:::i;684:505::-;894:12;908:23;935:6;-1:-1:-1;;;;;935:19:27;991:55;;;1048:9;1059:11;1072:4;;1078:2;1082:8;955:145;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;955:145:27;-1:-1:-1;;;;;955:145:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;955:145:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;955:145:27;;;;-1:-1:-1;;;;;955:145:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;955:145:27;935:166;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;935:166:27;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;893:208:27;;;;1118:7;1111:15;;;;1141:41;1160:10;1149:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1149:32:27;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;-1:-1;;;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;1149:32:27;;421:4:-1;412:14;;;;1149:32:27;;;;;412:14:-1;1149:32:27;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1149:32:27;;;;;;;;;;;1141:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1141:41:27;;;;;;;;;;;;;;;;;684:505;;;;;;;;;:::o;173:::-;383:12;397:23;424:6;-1:-1:-1;;;;;424:19:27;480:55;;;537:8;547:12;561:4;;567:2;571:8;444:145;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;444:145:27;-1:-1:-1;;;;;444:145:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;444:145:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;444:145:27;;;;-1:-1:-1;;;;;444:145:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;444:145:27;424:166;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;2180:499:27;2387:12;2401:23;2428:6;-1:-1:-1;;;;;2428:19:27;2484:52;;;2538:8;2548:12;2562:4;;2568:2;2572:8;2448:142;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2448:142:27;-1:-1:-1;;;;;2448:142:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2448:142:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2448:142:27;;;;-1:-1:-1;;;;;2448:142:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2448:142:27;2428:163;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;2685:468:27;2874:12;2888:23;2915:6;-1:-1:-1;;;;;2915:19:27;2971:52;;;3025:9;3036:4;;3042:2;3046:8;2935:129;;;;;;;;;;;;;;-1:-1:-1;;;;;2935:129:27;-1:-1:-1;;;;;2935:129:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2935:129:27;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2935:129:27;;;;-1:-1:-1;;;;;2935:129:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2935:129:27;2915:150;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2915:150:27;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2873:192:27;;;;3082:7;3075:15;;;;3105:41;3124:10;3113:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3113:32:27;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;-1:-1;;;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;3113:32:27;;421:4:-1;412:14;;;;3113:32:27;;;;;412:14:-1;3113:32:27;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3113:32:27;;;;;;;;;;;3105:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3105:41:27;;;;;;;;;;;;;;;;;2685:468;;;;;;;;:::o;1675:499::-;1882:12;1896:23;1923:6;-1:-1:-1;;;;;1923:19:27;1979:52;;;2033:9;2044:11;2057:4;;2063:2;2067:8;1943:142;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1943:142:27;-1:-1:-1;;;;;1943:142:27;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;1943:142:27;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1943:142:27;;;;-1:-1:-1;;;;;1943:142:27;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;1943:142:27;1923:163;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;1195:474:27;1387:12;1401:23;1428:6;-1:-1:-1;;;;;1428:19:27;1484:52;;;1538:12;1552:4;;1558:2;1562:8;1448:132;;;;;;;;;;;;;;-1:-1:-1;;;;;1448:132:27;-1:-1:-1;;;;;1448:132:27;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;1448:132:27;;;137:4:-1;117:14;;;-1:-1;;113:30;;;157:16;;;26:21;;;22:32;;;6:49;;1448:132:27;;;49:4:-1;25:18;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1448:132:27;;;179:29:-1;;;;160:49;;1428:153:27;;;;1448:132;;1428:153;;-1:-1:-1;1428:153:27;;-1:-1:-1;25:18;-1:-1;1428:153:27;-1:-1:-1;1428:153:27;;-1:-1:-1;1428:153:27;;-1:-1:-1;25:18;;-1:-1;;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "name": "Amounts", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapETHForExactTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactETHForTokens", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMin", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapExactTokensForTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "router", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountInMax", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "path", - "type": "address[]" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - } - ], - "name": "swapTokensForExactTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "608060405234801561001057600080fd5b50610cda806100206000396000f3fe6080604052600436106100595760003560e01c806322b5841014610065578063375734d91461010d5780639c91fcb5146101b3578063b05f579e14610259578063fa3219d5146102eb578063fde1adda1461039157610060565b3661006057005b600080fd5b34801561007157600080fd5b5061010b600480360360c081101561008857600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460208302840111600160201b831117156100f157600080fd5b91935091506001600160a01b038135169060200135610423565b005b34801561011957600080fd5b5061010b600480360360c081101561013057600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460208302840111600160201b8311171561019957600080fd5b91935091506001600160a01b03813516906020013561069c565b3480156101bf57600080fd5b5061010b600480360360c08110156101d657600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561020c57600080fd5b82018360208201111561021e57600080fd5b803590602001918460208302840111600160201b8311171561023f57600080fd5b91935091506001600160a01b038135169060200135610785565b61010b600480360360a081101561026f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111600160201b831117156102d157600080fd5b91935091506001600160a01b03813516906020013561086e565b3480156102f757600080fd5b5061010b600480360360c081101561030e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b91935091506001600160a01b038135169060200135610ade565b61010b600480360360a08110156103a757600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460208302840111600160201b8311171561040957600080fd5b91935091506001600160a01b038135169060200135610bc7565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b6020831061050d5780518252601f1990920191602091820191016104ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461056d576040519150601f19603f3d011682016040523d82523d6000602084013e610572565b606091505b50915091508161057e57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105b457600080fd5b8101908080516040519392919084600160201b8211156105d357600080fd5b9083019060208201858111156105e857600080fd5b82518660208202830111600160201b8211171561060457600080fd5b82525081516020918201928201910280838360005b83811015610631578181015183820152602001610619565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561067e578181015183820152602001610666565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060886001600160a01b03166318cbafe560e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b031663fb3bdb4160e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106109505780518252601f199092019160209182019101610931565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b5091509150816109c157fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156109f757600080fd5b8101908080516040519392919084600160201b821115610a1657600080fd5b908301906020820185811115610a2b57600080fd5b82518660208202830111600160201b82111715610a4757600080fd5b82525081516020918201928201910280838360005b83811015610a74578181015183820152602001610a5c565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ac1578181015183820152602001610aa9565b505050509050019250505060405180910390a15050505050505050565b60006060886001600160a01b0316634a25d94a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083836020831061050d5780518252601f1990920191602091820191016104ee565b60006060876001600160a01b0316637ff36ab560e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03166001600160e01b0319909d169c909c178c5292518151919b909a508a9950975095508594508793508692505083106109505780518252601f19909201916020918201910161093156fea2646970667358221220f92b8aa1cdb0d607452198521805885c192c13578a452a6fcb472b3d0cbdf8e364736f6c63430006060033" -} \ No newline at end of file diff --git a/build/SafeERC20Namer.json b/build/SafeERC20Namer.json deleted file mode 100644 index 8603b962..00000000 --- a/build/SafeERC20Namer.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec773d4c38bad4c2128e3f7c895e644260a23956fb6c4fe9a59dd7449334f20464736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC PUSH24 0x3D4C38BAD4C2128E3F7C895E644260A23956FB6C4FE9A59D 0xD7 DIFFICULTY SWAP4 CALLVALUE CALLCODE DIV PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "257:3504:22:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec773d4c38bad4c2128e3f7c895e644260a23956fb6c4fe9a59dd7449334f20464736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC PUSH24 0x3D4C38BAD4C2128E3F7C895E644260A23956FB6C4FE9A59D 0xD7 DIFFICULTY SWAP4 CALLVALUE CALLCODE DIV PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "257:3504:22:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec773d4c38bad4c2128e3f7c895e644260a23956fb6c4fe9a59dd7449334f20464736f6c63430006060033" -} \ No newline at end of file diff --git a/build/SafeMath.json b/build/SafeMath.json deleted file mode 100644 index 1c0be8b8..00000000 --- a/build/SafeMath.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d81193409a08a5b44ac136df0b1c3f1d2731c2537ce2e0f721a06e04167296364736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 DUP2 NOT CALLVALUE MULMOD LOG0 DUP11 JUMPDEST DIFFICULTY 0xAC SGT PUSH14 0xF0B1C3F1D2731C2537CE2E0F721A MOD 0xE0 COINBASE PUSH8 0x296364736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "131:430:23:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d81193409a08a5b44ac136df0b1c3f1d2731c2537ce2e0f721a06e04167296364736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 DUP2 NOT CALLVALUE MULMOD LOG0 DUP11 JUMPDEST DIFFICULTY 0xAC SGT PUSH14 0xF0B1C3F1D2731C2537CE2E0F721A MOD 0xE0 COINBASE PUSH8 0x296364736F6C6343 STOP MOD MOD STOP CALLER ", - "sourceMap": "131:430:23:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d81193409a08a5b44ac136df0b1c3f1d2731c2537ce2e0f721a06e04167296364736f6c63430006060033" -} \ No newline at end of file diff --git a/build/TransferHelper.json b/build/TransferHelper.json deleted file mode 100644 index 2b42c9a7..00000000 --- a/build/TransferHelper.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "abi": [], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea2500d861162ae7c305ab75b82ef3b893fa794b9eb1b7c23c2a8a18d75fb2464736f6c63430006060033", - "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E LOG2 POP 0xD DUP7 GT PUSH3 0xAE7C30 GAS 0xB7 JUMPDEST DUP3 0xEF EXTCODESIZE DUP10 EXTCODEHASH 0xA7 SWAP5 0xB9 0xEB SHL PUSH29 0x23C2A8A18D75FB2464736F6C6343000606003300000000000000000000 ", - "sourceMap": "137:1350:24:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea2500d861162ae7c305ab75b82ef3b893fa794b9eb1b7c23c2a8a18d75fb2464736f6c63430006060033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E LOG2 POP 0xD DUP7 GT PUSH3 0xAE7C30 GAS 0xB7 JUMPDEST DUP3 0xEF EXTCODESIZE DUP10 EXTCODEHASH 0xA7 SWAP5 0xB9 0xEB SHL PUSH29 0x23C2A8A18D75FB2464736F6C6343000606003300000000000000000000 ", - "sourceMap": "137:1350:24:-:0;;;;;;12:1:-1;9;2:12" - } - }, - "interface": [], - "bytecode": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea2500d861162ae7c305ab75b82ef3b893fa794b9eb1b7c23c2a8a18d75fb2464736f6c63430006060033" -} \ No newline at end of file diff --git a/build/WETH9.json b/build/WETH9.json deleted file mode 100644 index a65232ea..00000000 --- a/build/WETH9.json +++ /dev/null @@ -1,582 +0,0 @@ -{ - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b61074f806101246000396000f3fe60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461020e57806370a082311461023957806395d89b411461026c578063a9059cbb14610281578063d0e30db0146102ba578063dd62ed3e146102c25761009c565b806306fdde03146100a1578063095ea7b31461012b57806318160ddd1461017857806323b872dd1461019f5780632e1a7d4d146101e2575b600080fd5b3480156100ad57600080fd5b506100b66102fd565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013757600080fd5b506101646004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561038b565b604080519115158252519081900360200190f35b34801561018457600080fd5b5061018d6103f1565b60408051918252519081900360200190f35b3480156101ab57600080fd5b50610164600480360360608110156101c257600080fd5b506001600160a01b038135811691602081013590911690604001356103f5565b3480156101ee57600080fd5b5061020c6004803603602081101561020557600080fd5b503561056d565b005b34801561021a57600080fd5b50610223610624565b6040805160ff9092168252519081900360200190f35b34801561024557600080fd5b5061018d6004803603602081101561025c57600080fd5b50356001600160a01b031661062d565b34801561027857600080fd5b506100b661063f565b34801561028d57600080fd5b50610164600480360360408110156102a457600080fd5b506001600160a01b038135169060200135610699565b61020c6106ad565b3480156102ce57600080fd5b5061018d600480360360408110156102e557600080fd5b506001600160a01b03813581169160200135166106fc565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561043c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038416331480159061047a57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b156104fc576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d1576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105ea573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b60006106a63384846103f5565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea264697066735822122024820c0be3860c79949525ca52246f46e816972618ae3bd90fddc2722997782f64736f6c63430006060033", - "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH1 0xD PUSH1 0x80 DUP2 SWAP1 MSTORE PUSH13 0x2BB930B83832B21022BA3432B9 PUSH1 0x99 SHL PUSH1 0xA0 SWAP1 DUP2 MSTORE PUSH2 0x2E SWAP2 PUSH1 0x0 SWAP2 SWAP1 PUSH2 0x7A JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP1 DUP3 MSTORE PUSH4 0xAE8AA89 PUSH1 0xE3 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 DUP3 MSTORE PUSH2 0x5A SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x7A JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x115 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xBB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xE8 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xE8 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xE8 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xCD JUMP JUMPDEST POP PUSH2 0xF4 SWAP3 SWAP2 POP PUSH2 0xF8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x112 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xF4 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xFE JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x74F DUP1 PUSH2 0x124 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2C2 JUMPI PUSH2 0x9C JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x178 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x1E2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB6 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD8 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH2 0x3F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3F5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x56D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x223 PUSH2 0x624 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x62D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x278 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB6 PUSH2 0x63F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x699 JUMP JUMPDEST PUSH2 0x20C PUSH2 0x6AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x6FC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x383 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x358 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x383 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x366 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP7 SWAP1 SSTORE DUP2 MLOAD DUP7 DUP2 MSTORE SWAP2 MLOAD SWAP4 SWAP5 SWAP1 SWAP4 SWAP1 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST SELFBALANCE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x43C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 ISZERO SWAP1 PUSH2 0x47A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x0 NOT EQ ISZERO JUMPDEST ISZERO PUSH2 0x4FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD DUP4 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP9 SWAP1 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE DUP4 MLOAD DUP7 DUP2 MSTORE SWAP4 MLOAD SWAP2 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x5AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 SWAP1 SUB SWAP1 SSTORE MLOAD DUP4 ISZERO PUSH2 0x8FC MUL SWAP2 DUP5 SWAP2 SWAP1 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x5EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x7FCF532C15F0A6DB0BD6D0E038BEA71D30D808C7D98CB3BF7268A95BF5081B65 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x383 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x358 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x383 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A6 CALLER DUP5 DUP5 PUSH2 0x3F5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD CALLVALUE SWAP1 DUP2 ADD SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP2 MLOAD PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 DUP3 0xC SIGNEXTEND 0xE3 DUP7 0xC PUSH26 0x949525CA52246F46E816972618AE3BD90FDDC2722997782F6473 PUSH16 0x6C634300060600330000000000000000 ", - "sourceMap": "732:40:28:-:0;711:1828;732:40;;711:1828;732:40;;;-1:-1:-1;;;732:40:28;;;;;;-1:-1:-1;;732:40:28;;:::i;:::-;-1:-1:-1;778:31:28;;;;;;;;;;;;;-1:-1:-1;;;778:31:28;;;;;;;;;;;;:::i;:::-;-1:-1:-1;815:27:28;;;-1:-1:-1;;815:27:28;840:2;815:27;;;711:1828;2:2:-1;;;;27:1;24;17:12;2:2;711:1828:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;711:1828:28;;;-1:-1:-1;711:1828:28;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "immutableReferences": {}, - "linkReferences": {}, - "object": "60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461020e57806370a082311461023957806395d89b411461026c578063a9059cbb14610281578063d0e30db0146102ba578063dd62ed3e146102c25761009c565b806306fdde03146100a1578063095ea7b31461012b57806318160ddd1461017857806323b872dd1461019f5780632e1a7d4d146101e2575b600080fd5b3480156100ad57600080fd5b506100b66102fd565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013757600080fd5b506101646004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561038b565b604080519115158252519081900360200190f35b34801561018457600080fd5b5061018d6103f1565b60408051918252519081900360200190f35b3480156101ab57600080fd5b50610164600480360360608110156101c257600080fd5b506001600160a01b038135811691602081013590911690604001356103f5565b3480156101ee57600080fd5b5061020c6004803603602081101561020557600080fd5b503561056d565b005b34801561021a57600080fd5b50610223610624565b6040805160ff9092168252519081900360200190f35b34801561024557600080fd5b5061018d6004803603602081101561025c57600080fd5b50356001600160a01b031661062d565b34801561027857600080fd5b506100b661063f565b34801561028d57600080fd5b50610164600480360360408110156102a457600080fd5b506001600160a01b038135169060200135610699565b61020c6106ad565b3480156102ce57600080fd5b5061018d600480360360408110156102e557600080fd5b506001600160a01b03813581169160200135166106fc565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561043c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038416331480159061047a57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b156104fc576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d1576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105ea573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b60006106a63384846103f5565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea264697066735822122024820c0be3860c79949525ca52246f46e816972618ae3bd90fddc2722997782f64736f6c63430006060033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2C2 JUMPI PUSH2 0x9C JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x178 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x1E2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB6 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD8 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH2 0x3F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3F5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x56D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x223 PUSH2 0x624 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x62D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x278 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB6 PUSH2 0x63F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x699 JUMP JUMPDEST PUSH2 0x20C PUSH2 0x6AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x6FC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x383 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x358 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x383 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x366 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP7 SWAP1 SSTORE DUP2 MLOAD DUP7 DUP2 MSTORE SWAP2 MLOAD SWAP4 SWAP5 SWAP1 SWAP4 SWAP1 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST SELFBALANCE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x43C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 ISZERO SWAP1 PUSH2 0x47A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x0 NOT EQ ISZERO JUMPDEST ISZERO PUSH2 0x4FC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD DUP4 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP9 SWAP1 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE DUP4 MLOAD DUP7 DUP2 MSTORE SWAP4 MLOAD SWAP2 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x5AB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 SWAP1 SUB SWAP1 SSTORE MLOAD DUP4 ISZERO PUSH2 0x8FC MUL SWAP2 DUP5 SWAP2 SWAP1 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x5EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x7FCF532C15F0A6DB0BD6D0E038BEA71D30D808C7D98CB3BF7268A95BF5081B65 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x383 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x358 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x383 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A6 CALLER DUP5 DUP5 PUSH2 0x3F5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD CALLVALUE SWAP1 DUP2 ADD SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP2 MLOAD PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 DUP3 0xC SIGNEXTEND 0xE3 DUP7 0xC PUSH26 0x949525CA52246F46E816972618AE3BD90FDDC2722997782F6473 PUSH16 0x6C634300060600330000000000000000 ", - "sourceMap": "711:1828:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;732:40:28;;5:9:-1;2:2;;;27:1;24;17:12;2:2;732:40:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;732:40:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1759:177;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1759:177:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1759:177:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1658:95;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1658:95:28;;;:::i;:::-;;;;;;;;;;;;;;;;2069:468;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2069:468:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2069:468:28;;;;;;;;;;;;;;;;;:::i;1445:207::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1445:207:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1445:207:28;;:::i;:::-;;815:27;;5:9:-1;2:2;;;27:1;24;17:12;2:2;815:27:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1101:65;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1101:65:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1101:65:28;-1:-1:-1;;;;;1101:65:28;;:::i;778:31::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;778:31:28;;;:::i;1942:121::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1942:121:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1942:121:28;;;;;;;;:::i;1310:130::-;;;:::i;1172:65::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1172:65:28;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1172:65:28;;;;;;;;;;:::i;732:40::-;;;;;;;;;;;;;;;-1:-1:-1;;732:40:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1759:177::-;1841:10;1815:4;1831:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;1831:26:28;;;;;;;;;;;:32;;;1878:30;;;;;;;1815:4;;1831:26;;1841:10;;1878:30;;;;;;;;-1:-1:-1;1925:4:28;1759:177;;;;:::o;1658:95::-;1725:21;1658:95;:::o;2069:468::-;-1:-1:-1;;;;;2187:14:28;;2159:4;2187:14;;;:9;:14;;;;;;:21;-1:-1:-1;2187:21:28;2179:34;;;;;-1:-1:-1;;;2179:34:28;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2228:17:28;;2235:10;2228:17;;;;:59;;-1:-1:-1;;;;;;2249:14:28;;;;;;:9;:14;;;;;;;;2264:10;2249:26;;;;;;;;-1:-1:-1;;2249:38:28;;2228:59;2224:183;;;-1:-1:-1;;;;;2311:14:28;;;;;;:9;:14;;;;;;;;2326:10;2311:26;;;;;;;;:33;-1:-1:-1;2311:33:28;2303:46;;;;;-1:-1:-1;;;2303:46:28;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2363:14:28;;;;;;:9;:14;;;;;;;;2378:10;2363:26;;;;;;;:33;;;;;;;2224:183;-1:-1:-1;;;;;2417:14:28;;;;;;;:9;:14;;;;;;;;:21;;;;;;;2448:14;;;;;;;;;;:21;;;;;;2485:23;;;;;;;2448:14;;2485:23;;;;;;;;;;;-1:-1:-1;2526:4:28;2069:468;;;;;:::o;1445:207::-;1508:10;1498:21;;;;:9;:21;;;;;;:28;-1:-1:-1;1498:28:28;1490:41;;;;;-1:-1:-1;;;1490:41:28;;;;;;;;;;;;;;;;;;;;;;;1551:10;1541:21;;;;:9;:21;;;;;;:28;;;;;;;1579:24;;;;;;1566:3;;1579:24;;1541:21;1579:24;1566:3;1551:10;1579:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1618:27:28;;;;;;;;1629:10;;1618:27;;;;;;;;;;1445:207;:::o;815:27::-;;;;;;:::o;1101:65::-;;;;;;;;;;;;;:::o;778:31::-;;;;;;;;;;;;;;;-1:-1:-1;;778:31:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1942:121;1999:4;2022:34;2035:10;2047:3;2052;2022:12;:34::i;:::-;2015:41;1942:121;-1:-1:-1;;;1942:121:28:o;1310:130::-;1364:10;1354:21;;;;:9;:21;;;;;;;;;:34;;1379:9;1354:34;;;;;;1403:30;;;;;;;;;;;;;;;;;1310:130::o;1172:65::-;;;;;;;;;;;;;;;;;;;;;;;;:::o" - } - }, - "interface": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guy", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b61074f806101246000396000f3fe60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461020e57806370a082311461023957806395d89b411461026c578063a9059cbb14610281578063d0e30db0146102ba578063dd62ed3e146102c25761009c565b806306fdde03146100a1578063095ea7b31461012b57806318160ddd1461017857806323b872dd1461019f5780632e1a7d4d146101e2575b600080fd5b3480156100ad57600080fd5b506100b66102fd565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013757600080fd5b506101646004803603604081101561014e57600080fd5b506001600160a01b03813516906020013561038b565b604080519115158252519081900360200190f35b34801561018457600080fd5b5061018d6103f1565b60408051918252519081900360200190f35b3480156101ab57600080fd5b50610164600480360360608110156101c257600080fd5b506001600160a01b038135811691602081013590911690604001356103f5565b3480156101ee57600080fd5b5061020c6004803603602081101561020557600080fd5b503561056d565b005b34801561021a57600080fd5b50610223610624565b6040805160ff9092168252519081900360200190f35b34801561024557600080fd5b5061018d6004803603602081101561025c57600080fd5b50356001600160a01b031661062d565b34801561027857600080fd5b506100b661063f565b34801561028d57600080fd5b50610164600480360360408110156102a457600080fd5b506001600160a01b038135169060200135610699565b61020c6106ad565b3480156102ce57600080fd5b5061018d600480360360408110156102e557600080fd5b506001600160a01b03813581169160200135166106fc565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561043c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038416331480159061047a57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b156104fc576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d1576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105ea573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103835780601f1061035857610100808354040283529160200191610383565b60006106a63384846103f5565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea264697066735822122024820c0be3860c79949525ca52246f46e816972618ae3bd90fddc2722997782f64736f6c63430006060033" -} \ No newline at end of file diff --git a/contracts/examples/DXswapTradeRelayer.sol b/contracts/examples/DXswapTradeRelayer.sol new file mode 100644 index 00000000..4ee22c6f --- /dev/null +++ b/contracts/examples/DXswapTradeRelayer.sol @@ -0,0 +1,279 @@ +pragma solidity =0.8.16; +pragma experimental ABIEncoderV2; + +import './OracleCreator.sol'; +import './../interfaces/IDXswapFactory.sol'; +import './../interfaces/IDXswapRouter.sol'; +import './../libraries/TransferHelper.sol'; +import './../interfaces/IERC20.sol'; +import './../interfaces/IWETH.sol'; +import './../libraries/DXswapLibrary.sol'; + +contract DXswapTradeRelayer { + event NewOrder(uint256 indexed _orderIndex); + event ExecutedOrder(uint256 indexed _orderIndex); + event WithdrawnExpiredOrder(uint256 indexed _orderIndex); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + event Details(uint256 amountIn, uint256 amountOut); + + struct Order { + address tokenIn; + address tokenOut; + uint256 amountIn; + uint256 priceTolerance; + uint256 minReserveA; + uint256 minReserveB; + address oraclePair; + uint256 deadline; + uint256 maxWindowTime; + uint256 oracleId; + address factory; + bool executed; + } + + uint256 public immutable GAS_ORACLE_UPDATE = 168364; + uint256 public immutable PARTS_PER_MILLION = 1000000; + uint256 public immutable BOUNTY = 0.01 ether; + uint8 public immutable PROVISION = 1; + uint8 public immutable REMOVAL = 2; + + address public immutable dxSwapFactory; + address public immutable dxSwapRouter; + address public immutable uniswapFactory; + address public immutable uniswapRouter; + address public immutable WETH; + + OracleCreator oracleCreator; + uint256 public orderCount; + mapping(uint256 => Order) orders; + address payable public owner; + + constructor( + address payable _owner, + address _dxSwapFactory, + address _dxSwapRouter, + address _uniswapFactory, + address _uniswapRouter, + address _WETH, + OracleCreator _oracleCreator + ) { + owner = _owner; + dxSwapFactory = _dxSwapFactory; + dxSwapRouter = _dxSwapRouter; + uniswapFactory = _uniswapFactory; + uniswapRouter = _uniswapRouter; + WETH = _WETH; + oracleCreator = _oracleCreator; + } + + function createSwapOrder( + address tokenA, + address tokenB, + uint256 amountInTokenA, + uint256 amountInTokenB, + uint256 priceTolerance, + uint256 minReserveA, + uint256 minReserveB, + uint256 maxWindowTime, + uint256 deadline, + address factory + ) external payable returns (uint256 orderIndex) { + require(factory == dxSwapFactory || factory == uniswapFactory, 'DXswapRelayer: INVALID_FACTORY'); + require(msg.sender == owner, 'DXswapRelayer: CALLER_NOT_OWNER'); + require(tokenA != tokenB, 'DXswapRelayer: INVALID_PAIR'); + require(tokenA < tokenB, 'DXswapRelayer: INVALID_TOKEN_ORDER'); + // only one token amount can be > 0 and second token amount is calculated as output + require( + (amountInTokenA > 0 && amountInTokenB == 0) || (amountInTokenA == 0 && amountInTokenB > 0), + 'DXswapRelayer: INVALID_TOKEN_AMOUNT' + ); + require(priceTolerance <= PARTS_PER_MILLION, 'DXswapRelayer: INVALID_TOLERANCE'); + require(block.timestamp <= deadline, 'DXswapRelayer: DEADLINE_REACHED'); + require(maxWindowTime > 30, 'DXswapRelayer: INVALID_WINDOWTIME'); + + (address tokenIn, address tokenOut, uint256 amountIn) = amountInTokenA > 0 + ? (tokenA, tokenB, amountInTokenA) + : (tokenB, tokenA, amountInTokenB); + + if (tokenIn == address(0)) { + require(address(this).balance >= amountIn, 'DXswapRelayer: INSUFFICIENT_ETH'); + } else { + require(IERC20(tokenIn).balanceOf(address(this)) >= amountIn, 'DXswapRelayer: INSUFFICIENT_TOKEN'); + } + + address pair = _pair(tokenA, tokenB, factory); + + require(pair != address(0), 'DXswapRelayer: INVALID_PAIR_ADDRESS'); + + orderIndex = _OrderIndex(); + orders[orderIndex] = Order({ + tokenIn: tokenIn, + tokenOut: tokenOut, + amountIn: amountIn, + priceTolerance: priceTolerance, + minReserveA: minReserveA, + minReserveB: minReserveB, + oraclePair: pair, + deadline: deadline, + maxWindowTime: maxWindowTime, + oracleId: 0, + factory: factory, + executed: false + }); + + (uint256 reserveA, uint256 reserveB, ) = IDXswapPair(pair).getReserves(); + + /* Create an oracle to calculate average price before swap */ + uint256 windowTime = _consultOracleParameters(amountIn, reserveA, reserveB, maxWindowTime); + orders[orderIndex].oracleId = oracleCreator.createOracle(windowTime, pair); + emit NewOrder(orderIndex); + } + + function executeOrder(uint256 orderIndex) external { + Order storage order = orders[orderIndex]; + require(orderIndex < orderCount, 'DXswapRelayer: INVALID_ORDER'); + require(!order.executed, 'DXswapRelayer: ORDER_EXECUTED'); + require(oracleCreator.isOracleFinalized(order.oracleId), 'DXswapRelayer: OBSERVATION_RUNNING'); + require(block.timestamp <= order.deadline, 'DXswapRelayer: DEADLINE_REACHED'); + + address tokenIn = order.tokenIn; + uint256 amountOut; + amountOut = oracleCreator.consult( + order.oracleId, + tokenIn == address(0) ? IDXswapRouter(dxSwapRouter).WETH() : tokenIn, + order.amountIn + ); + + uint256 minAmountOut = amountOut - ((amountOut * (order.priceTolerance)) / PARTS_PER_MILLION); + + order.executed = true; + + _swap(tokenIn, order.tokenOut, order.amountIn, minAmountOut, order.factory); + + emit ExecutedOrder(orderIndex); + } + + // Updates a price oracle and sends a bounty to msg.sender + function updateOracle(uint256 orderIndex) external { + Order storage order = orders[orderIndex]; + require(block.timestamp <= order.deadline, 'DXswapRelayer: DEADLINE_REACHED'); + require(!oracleCreator.isOracleFinalized(order.oracleId), 'DXswapRelayer: OBSERVATION_ENDED'); + uint256 amountBounty = GAS_ORACLE_UPDATE * (block.basefee) + (BOUNTY); + + (uint256 reserveA, uint256 reserveB, ) = IDXswapPair(order.oraclePair).getReserves(); + require(reserveA >= order.minReserveA && reserveB >= order.minReserveB, 'DXswapRelayer: RESERVE_TOO_LOW'); + + oracleCreator.update(order.oracleId); + if (address(this).balance >= amountBounty) { + TransferHelper.safeTransferETH(msg.sender, amountBounty); + } + } + + function withdrawExpiredOrder(uint256 orderIndex) external { + Order storage order = orders[orderIndex]; + require(msg.sender == owner, 'DXswapRelayer: CALLER_NOT_OWNER'); + require(block.timestamp > order.deadline, 'DXswapRelayer: DEADLINE_NOT_REACHED'); + require(order.executed == false, 'DXswapRelayer: ORDER_EXECUTED'); + address tokenIn = order.tokenIn; + uint256 amountIn = order.amountIn; + order.executed = true; + + if (tokenIn == address(0)) { + TransferHelper.safeTransferETH(owner, amountIn); + } else { + TransferHelper.safeTransfer(tokenIn, owner, amountIn); + } + emit WithdrawnExpiredOrder(orderIndex); + } + + function _swap( + address _tokenIn, + address _tokenOut, + uint256 _amountIn, + uint256 _minAmountOut, + address _factory + ) internal { + uint256[] memory amounts; + address[] memory path = new address[](2); + + // factory can be only dxswap or uniswap + address swapRouter = _factory == dxSwapFactory ? dxSwapRouter : uniswapRouter; + address tokenIn = _tokenIn == address(0) ? WETH : _tokenIn; + + path[0] = tokenIn; + path[1] = _tokenOut; + + TransferHelper.safeApprove(tokenIn, swapRouter, _amountIn); + + if (_tokenIn == address(0)) { + amounts = IDXswapRouter(swapRouter).swapExactETHForTokens{value: _amountIn}( + _minAmountOut, + path, + address(this), + block.timestamp + ); + } else { + amounts = IDXswapRouter(swapRouter).swapExactTokensForTokens( + _amountIn, + _minAmountOut, + path, + address(this), + block.timestamp + ); + } + } + + // Internal function to calculate the optimal time window for price observation + function _consultOracleParameters( + uint256 amountIn, + uint256 reserveA, + uint256 reserveB, + uint256 maxWindowTime + ) internal pure returns (uint256 windowTime) { + if (reserveA > 0 && reserveB > 0) { + uint256 poolStake = ((amountIn) * (PARTS_PER_MILLION)) / reserveA + (reserveB); + // poolStake: 0.1% = 1000; 1=10000; 10% = 100000; + if (poolStake < 1000) { + windowTime = 30; + } else if (poolStake < 2500) { + windowTime = 60; + } else if (poolStake < 5000) { + windowTime = 90; + } else if (poolStake < 10000) { + windowTime = 120; + } else { + windowTime = 150; + } + windowTime = windowTime <= maxWindowTime ? windowTime : maxWindowTime; + } else { + windowTime = maxWindowTime; + } + } + + // Internal function to return the correct pair address on either DXswap or Uniswap + function _pair(address tokenA, address tokenB, address factory) internal view returns (address pair) { + require(factory == dxSwapFactory || factory == uniswapFactory, 'DXswapRelayer: INVALID_FACTORY'); + if (tokenA == address(0)) tokenA = WETH; + pair = IDXswapFactory(factory).getPair(tokenA, tokenB); + } + + // Returns an OrderIndex that is used to reference liquidity orders + function _OrderIndex() internal returns (uint256 orderIndex) { + orderIndex = orderCount; + orderCount++; + } + + // Returns the data of one specific order + function GetOrderDetails(uint256 orderIndex) external view returns (Order memory) { + return orders[orderIndex]; + } + + function transferOwnership(address payable _newOwner) external { + require(msg.sender == owner, 'Ownable: caller is not the owner'); + address _oldOwner = owner; + owner = _newOwner; + emit OwnershipTransferred(_oldOwner, _newOwner); + } + + receive() external payable {} +} diff --git a/contracts/examples/OracleCreator.sol b/contracts/examples/OracleCreator.sol index 7cec6b95..afdd4112 100644 --- a/contracts/examples/OracleCreator.sol +++ b/contracts/examples/OracleCreator.sol @@ -1,4 +1,4 @@ -pragma solidity =0.6.6; +pragma solidity >=0.6.6; pragma experimental ABIEncoderV2; import './../libraries/TransferHelper.sol'; @@ -10,13 +10,9 @@ contract OracleCreator { using FixedPoint for *; using SafeMath for uint256; - event OracleCreated( - uint256 indexed _oracleIndex, - address indexed _pair, - uint256 _windowTime - ); + event OracleCreated(uint256 indexed _oracleIndex, address indexed _pair, uint256 _windowTime); - struct Oracle{ + struct Oracle { uint256 windowTime; address token0; address token1; @@ -33,14 +29,11 @@ contract OracleCreator { mapping(uint256 => Oracle) public oracles; uint256 public oraclesIndex; - function createOracle( - uint256 windowTime, - address pair - ) public returns (uint256 oracleId) { + function createOracle(uint256 windowTime, address pair) public returns (uint256 oracleId) { IDXswapPair sourcePair = IDXswapPair(pair); address token0 = sourcePair.token0(); address token1 = sourcePair.token1(); - (,, uint32 blockTimestampLast) = sourcePair.getReserves(); + (, , uint32 blockTimestampLast) = sourcePair.getReserves(); oracles[oraclesIndex] = Oracle({ windowTime: windowTime, @@ -64,23 +57,20 @@ contract OracleCreator { Oracle storage oracle = oracles[oracleIndex]; require(msg.sender == oracle.owner, 'OracleCreator: CALLER_NOT_OWNER'); require(oracle.observationsCount < 2, 'OracleCreator: FINISHED_OBERSERVATION'); - (uint price0Cumulative, uint price1Cumulative, uint32 blockTimestamp) = - DXswapOracleLibrary.currentCumulativePrices(address(oracle.pair)); + (uint price0Cumulative, uint price1Cumulative, uint32 blockTimestamp) = DXswapOracleLibrary + .currentCumulativePrices(address(oracle.pair)); uint32 timeElapsed = blockTimestamp - oracle.blockTimestampLast; // overflow is desired - // first update can be executed immediately. Ensure that at least one full period has passed since the first update - require( - oracle.observationsCount == 0 || timeElapsed >= oracle.windowTime, - 'OracleCreator: PERIOD_NOT_ELAPSED' - ); + // first update can be executed immediately. Ensure that at least one full period has passed since the first update + require(oracle.observationsCount == 0 || timeElapsed >= oracle.windowTime, 'OracleCreator: PERIOD_NOT_ELAPSED'); // overflow is desired, casting never truncates // cumulative price is in (uq112x112 price * seconds) units so we simply wrap it after division by time elapsed oracle.price0Average = FixedPoint.uq112x112( - uint224((price0Cumulative - oracle.price0CumulativeLast) / timeElapsed) + uint224((price0Cumulative - oracle.price0CumulativeLast) / timeElapsed) ); oracle.price1Average = FixedPoint.uq112x112( - uint224((price1Cumulative - oracle.price1CumulativeLast) / timeElapsed) + uint224((price1Cumulative - oracle.price1CumulativeLast) / timeElapsed) ); oracle.price0CumulativeLast = price0Cumulative; @@ -93,21 +83,20 @@ contract OracleCreator { function consult(uint256 oracleIndex, address token, uint256 amountIn) external view returns (uint256 amountOut) { Oracle storage oracle = oracles[oracleIndex]; FixedPoint.uq112x112 memory avg; - if (token == oracle.token0) { - avg = oracle.price0Average; + if (token == oracle.token0) { + avg = oracle.price0Average; } else { - require(token == oracle.token1, 'OracleCreator: INVALID_TOKEN'); - avg = oracle.price1Average; + require(token == oracle.token1, 'OracleCreator: INVALID_TOKEN'); + avg = oracle.price1Average; } amountOut = avg.mul(amountIn).decode144(); } - function isOracleFinalized(uint256 oracleIndex) external view returns (bool){ + function isOracleFinalized(uint256 oracleIndex) external view returns (bool) { return oracles[oracleIndex].observationsCount == 2; } function getOracleDetails(uint256 oracleIndex) external view returns (Oracle memory) { - return oracles[oracleIndex]; + return oracles[oracleIndex]; } - -} \ No newline at end of file +} diff --git a/contracts/libraries/AddressStringUtil.sol b/contracts/libraries/AddressStringUtil.sol index 4e30cb8f..87de6ab9 100644 --- a/contracts/libraries/AddressStringUtil.sol +++ b/contracts/libraries/AddressStringUtil.sol @@ -2,11 +2,11 @@ pragma solidity >=0.5.0; library AddressStringUtil { // converts an address to the uppercase hex string, extracting only len bytes (up to 20, multiple of 2) - function toAsciiString(address addr, uint len) pure internal returns (string memory) { - require(len % 2 == 0 && len > 0 && len <= 40, "AddressStringUtil: INVALID_LEN"); + function toAsciiString(address addr, uint len) internal pure returns (string memory) { + require(len % 2 == 0 && len > 0 && len <= 40, 'AddressStringUtil: INVALID_LEN'); bytes memory s = new bytes(len); - uint addrNum = uint(addr); + uint addrNum = uint256(uint160(addr)); for (uint i = 0; i < len / 2; i++) { // shift right and truncate all but the least significant byte to extract the byte at position 19-i uint8 b = uint8(addrNum >> (8 * (19 - i))); @@ -23,11 +23,11 @@ library AddressStringUtil { // hi and lo are only 4 bits and between 0 and 16 // this method converts those values to the unicode/ascii code point for the hex representation // uses upper case for the characters - function char(uint8 b) pure private returns (byte c) { + function char(uint8 b) private pure returns (bytes1 c) { if (b < 10) { - return byte(b + 0x30); + return bytes1(b + 0x30); } else { - return byte(b + 0x37); + return bytes1(b + 0x37); } } } diff --git a/contracts/libraries/DXswapLibrary.sol b/contracts/libraries/DXswapLibrary.sol index 37a065ab..7f922c19 100644 --- a/contracts/libraries/DXswapLibrary.sol +++ b/contracts/libraries/DXswapLibrary.sol @@ -2,7 +2,7 @@ pragma solidity >=0.5.0; import '@swapr/core/contracts/interfaces/IDXswapPair.sol'; -import "./SafeMath.sol"; +import './SafeMath.sol'; library DXswapLibrary { using SafeMath for uint; @@ -17,24 +17,36 @@ library DXswapLibrary { // calculates the CREATE2 address for a pair without making any external calls function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) { (address token0, address token1) = sortTokens(tokenA, tokenB); - pair = address(uint(keccak256(abi.encodePacked( - hex'ff', - factory, - keccak256(abi.encodePacked(token0, token1)), - hex'd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776' // init code hash - )))); + pair = address( + uint160( + uint256( + keccak256( + abi.encodePacked( + hex'ff', + factory, + keccak256(abi.encodePacked(token0, token1)), + hex'c30284a6e09f4f63686442b7046014b946fdb3e6c00d48b549eda87070a98167' // init code hash + ) + ) + ) + ) + ); } // fetches and sorts the reserves for a pair - function getReserves(address factory, address tokenA, address tokenB) internal view returns (uint reserveA, uint reserveB) { - (address token0,) = sortTokens(tokenA, tokenB); - (uint reserve0, uint reserve1,) = IDXswapPair(pairFor(factory, tokenA, tokenB)).getReserves(); + function getReserves( + address factory, + address tokenA, + address tokenB + ) internal view returns (uint reserveA, uint reserveB) { + (address token0, ) = sortTokens(tokenA, tokenB); + (uint reserve0, uint reserve1, ) = IDXswapPair(pairFor(factory, tokenA, tokenB)).getReserves(); (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0); } - + // fetches and sorts the reserves for a pair function getSwapFee(address factory, address tokenA, address tokenB) internal view returns (uint swapFee) { - (address token0,) = sortTokens(tokenA, tokenB); + (address token0, ) = sortTokens(tokenA, tokenB); swapFee = IDXswapPair(pairFor(factory, tokenA, tokenB)).swapFee(); } @@ -46,7 +58,12 @@ library DXswapLibrary { } // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset - function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut, uint swapFee) internal pure returns (uint amountOut) { + function getAmountOut( + uint amountIn, + uint reserveIn, + uint reserveOut, + uint swapFee + ) internal pure returns (uint amountOut) { require(amountIn > 0, 'DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT'); require(reserveIn > 0 && reserveOut > 0, 'DXswapLibrary: INSUFFICIENT_LIQUIDITY'); uint amountInWithFee = amountIn.mul(uint(10000).sub(swapFee)); @@ -56,7 +73,12 @@ library DXswapLibrary { } // given an output amount of an asset and pair reserves, returns a required input amount of the other asset - function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut, uint swapFee) internal pure returns (uint amountIn) { + function getAmountIn( + uint amountOut, + uint reserveIn, + uint reserveOut, + uint swapFee + ) internal pure returns (uint amountIn) { require(amountOut > 0, 'DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT'); require(reserveIn > 0 && reserveOut > 0, 'DXswapLibrary: INSUFFICIENT_LIQUIDITY'); uint numerator = reserveIn.mul(amountOut).mul(10000); @@ -65,7 +87,11 @@ library DXswapLibrary { } // performs chained getAmountOut calculations on any number of pairs - function getAmountsOut(address factory, uint amountIn, address[] memory path) internal view returns (uint[] memory amounts) { + function getAmountsOut( + address factory, + uint amountIn, + address[] memory path + ) internal view returns (uint[] memory amounts) { require(path.length >= 2, 'DXswapLibrary: INVALID_PATH'); amounts = new uint[](path.length); amounts[0] = amountIn; @@ -76,7 +102,11 @@ library DXswapLibrary { } // performs chained getAmountIn calculations on any number of pairs - function getAmountsIn(address factory, uint amountOut, address[] memory path) internal view returns (uint[] memory amounts) { + function getAmountsIn( + address factory, + uint amountOut, + address[] memory path + ) internal view returns (uint[] memory amounts) { require(path.length >= 2, 'DXswapLibrary: INVALID_PATH'); amounts = new uint[](path.length); amounts[amounts.length - 1] = amountOut; diff --git a/contracts/libraries/SafeERC20Namer.sol b/contracts/libraries/SafeERC20Namer.sol index efc7da52..1e174f72 100644 --- a/contracts/libraries/SafeERC20Namer.sol +++ b/contracts/libraries/SafeERC20Namer.sol @@ -5,11 +5,11 @@ import './AddressStringUtil.sol'; // produces token descriptors from inconsistent or absent ERC20 symbol implementations that can return string or bytes32 // this library will always produce a string symbol to represent the token library SafeERC20Namer { - function bytes32ToString(bytes32 x) pure private returns (string memory) { + function bytes32ToString(bytes32 x) private pure returns (string memory) { bytes memory bytesString = new bytes(32); uint charCount = 0; for (uint j = 0; j < 32; j++) { - byte char = x[j]; + bytes1 char = x[j]; if (char != 0) { bytesString[charCount] = char; charCount++; @@ -23,7 +23,7 @@ library SafeERC20Namer { } // assumes the data is in position 2 - function parseStringData(bytes memory b) pure private returns (string memory) { + function parseStringData(bytes memory b) private pure returns (string memory) { uint charCount = 0; // first parse the charCount out of the data for (uint i = 32; i < 64; i++) { @@ -41,22 +41,22 @@ library SafeERC20Namer { // uses a heuristic to produce a token name from the address // the heuristic returns the full hex of the address string in upper case - function addressToName(address token) pure private returns (string memory) { + function addressToName(address token) private pure returns (string memory) { return AddressStringUtil.toAsciiString(token, 40); } // uses a heuristic to produce a token symbol from the address // the heuristic returns the first 6 hex of the address string in upper case - function addressToSymbol(address token) pure private returns (string memory) { + function addressToSymbol(address token) private pure returns (string memory) { return AddressStringUtil.toAsciiString(token, 6); } // calls an external view token contract method that returns a symbol or name, and parses the output into a string - function callAndParseStringReturn(address token, bytes4 selector) view private returns (string memory) { + function callAndParseStringReturn(address token, bytes4 selector) private view returns (string memory) { (bool success, bytes memory data) = token.staticcall(abi.encodeWithSelector(selector)); // if not implemented, or returns empty data, return empty string if (!success || data.length == 0) { - return ""; + return ''; } // bytes32 data always has length 32 if (data.length == 32) { @@ -65,7 +65,7 @@ library SafeERC20Namer { } else if (data.length > 64) { return abi.decode(data, (string)); } - return ""; + return ''; } // attempts to extract the token symbol. if it does not implement symbol, returns a symbol derived from the address diff --git a/contracts/libraries/SafeMath.sol b/contracts/libraries/SafeMath.sol index ba6fc21b..837f4502 100644 --- a/contracts/libraries/SafeMath.sol +++ b/contracts/libraries/SafeMath.sol @@ -1,4 +1,4 @@ -pragma solidity =0.6.6; +pragma solidity >=0.6.6; // a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math) diff --git a/contracts/test/ERC20Mintable.sol b/contracts/test/ERC20Mintable.sol new file mode 100644 index 00000000..db868026 --- /dev/null +++ b/contracts/test/ERC20Mintable.sol @@ -0,0 +1,98 @@ +pragma solidity =0.6.6; + +import '../libraries/SafeMath.sol'; + +contract ERC20Mintable { + using SafeMath for uint; + + string public constant name = 'Test Token'; + string public constant symbol = 'TT'; + uint8 public constant decimals = 18; + uint public totalSupply; + mapping(address => uint) public balanceOf; + mapping(address => mapping(address => uint)) public allowance; + + bytes32 public DOMAIN_SEPARATOR; + // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); + bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; + mapping(address => uint) public nonces; + + event Approval(address indexed owner, address indexed spender, uint value); + event Transfer(address indexed from, address indexed to, uint value); + + constructor(uint _totalSupply) public { + uint chainId; + assembly { + chainId := chainid() + } + DOMAIN_SEPARATOR = keccak256( + abi.encode( + keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), + keccak256(bytes(name)), + keccak256(bytes('1')), + chainId, + address(this) + ) + ); + _mint(msg.sender, _totalSupply); + } + + function mint(address account, uint256 amount) public { + _mint(account, amount); + } + + function _mint(address to, uint value) internal { + totalSupply = totalSupply.add(value); + balanceOf[to] = balanceOf[to].add(value); + emit Transfer(address(0), to, value); + } + + function _burn(address from, uint value) internal { + balanceOf[from] = balanceOf[from].sub(value); + totalSupply = totalSupply.sub(value); + emit Transfer(from, address(0), value); + } + + function _approve(address owner, address spender, uint value) private { + allowance[owner][spender] = value; + emit Approval(owner, spender, value); + } + + function _transfer(address from, address to, uint value) private { + balanceOf[from] = balanceOf[from].sub(value); + balanceOf[to] = balanceOf[to].add(value); + emit Transfer(from, to, value); + } + + function approve(address spender, uint value) external returns (bool) { + _approve(msg.sender, spender, value); + return true; + } + + function transfer(address to, uint value) external returns (bool) { + _transfer(msg.sender, to, value); + return true; + } + + function transferFrom(address from, address to, uint value) external returns (bool) { + if (allowance[from][msg.sender] != uint(-1)) { + allowance[from][msg.sender] = allowance[from][msg.sender].sub(value); + } + _transfer(from, to, value); + return true; + } + + function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external { + require(deadline >= block.timestamp, 'EXPIRED'); + bytes32 digest = keccak256( + abi.encodePacked( + '\x19\x01', + DOMAIN_SEPARATOR, + keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)) + ) + ); + address recoveredAddress = ecrecover(digest, v, r, s); + require(recoveredAddress != address(0) && recoveredAddress == owner, 'INVALID_SIGNATURE'); + _approve(owner, spender, value); + } +} diff --git a/contracts/test/Factory.sol b/contracts/test/Factory.sol new file mode 100644 index 00000000..14cf47be --- /dev/null +++ b/contracts/test/Factory.sol @@ -0,0 +1,19 @@ +pragma solidity >=0.5.16; + +import "@swapr/core/contracts/DXswapPair.sol"; +import "@swapr/core/contracts/DXswapFactory.sol"; + +contract Factory is IDXswapFactory { + address public feeTo; + address public feeToSetter; + uint8 public protocolFeeDenominator = 9; // uses ~10% of each swap fee + bytes32 public constant INIT_CODE_PAIR_HASH = + keccak256(abi.encodePacked(type(DXswapPair).creationCode)); + + mapping(address => mapping(address => address)) public getPair; + DXswapPair[] public allPairs; + + constructor(address _feeToSetter) public { + feeToSetter = _feeToSetter; + } +} diff --git a/deploy/000_deploy_router.ts b/deploy/000_deploy_router.ts new file mode 100644 index 00000000..36478484 --- /dev/null +++ b/deploy/000_deploy_router.ts @@ -0,0 +1,38 @@ +import { HardhatRuntimeEnvironment } from "hardhat/types"; +import { DeployFunction } from "hardhat-deploy/types"; + +import { contractConstructorArgs, getDeploymentConfig, TAGS } from "./deployment.config"; +import { runVerify } from "./utils"; +import { DXswapRouter__factory } from "../typechain"; + + +const deployment: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { + const { deployments, getNamedAccounts, network } = hre; + const { deploy } = deployments; + + const { deployer } = await getNamedAccounts(); + + const config = getDeploymentConfig(network.name); + + const constructorArgs = contractConstructorArgs( + config?.dxSwapFactory || deployer, + config?.nativeCurrencyWrapper || deployer + ); + + const deployResult = await deploy("DXswapRouter", { + from: deployer, + args: constructorArgs, + log: true, + }); + + if (deployResult.newlyDeployed && deployResult.transactionHash) { + await runVerify(hre, deployResult.transactionHash, { + address: deployResult.address, + constructorArguments: constructorArgs, + }); + } +}; + +deployment.tags = [TAGS.ROUTER, TAGS.PERIPHERY]; + +export default deployment; diff --git a/deploy/001_deploy_relayer.ts b/deploy/001_deploy_relayer.ts new file mode 100644 index 00000000..cc432d97 --- /dev/null +++ b/deploy/001_deploy_relayer.ts @@ -0,0 +1,43 @@ +import { HardhatRuntimeEnvironment } from "hardhat/types"; +import { DeployFunction } from "hardhat-deploy/types"; + +import { contractConstructorArgs, getDeploymentConfig, TAGS } from "./deployment.config"; +import { runVerify } from "./utils"; +import { DXswapRelayer__factory } from "../typechain"; + + +const deployment: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { + const { deployments, getNamedAccounts, network } = hre; + const { deploy } = deployments; + + const { deployer } = await getNamedAccounts(); + + const config = getDeploymentConfig(network.name); + + const constructorArgs = contractConstructorArgs( + config?.owner || deployer, + config?.dxSwapFactory || deployer, + config?.dxSwapRouter || deployer, + config?.uniswapFactory || deployer, + config?.uniswapRouter || deployer, + config?.nativeCurrencyWrapper || deployer, + config?.oracleCreator || deployer, + ); + + const deployResult = await deploy("DXswapRelayer", { + from: deployer, + args: constructorArgs, + log: true, + }); + + if (deployResult.newlyDeployed && deployResult.transactionHash) { + await runVerify(hre, deployResult.transactionHash, { + address: deployResult.address, + constructorArguments: constructorArgs, + }); + } +}; + +deployment.tags = [TAGS.RELAYER, TAGS.PERIPHERY]; + +export default deployment; diff --git a/deploy/002_deploy_oracle_creator.ts b/deploy/002_deploy_oracle_creator.ts new file mode 100644 index 00000000..4e1aad42 --- /dev/null +++ b/deploy/002_deploy_oracle_creator.ts @@ -0,0 +1,28 @@ +import { HardhatRuntimeEnvironment } from "hardhat/types"; +import { DeployFunction } from "hardhat-deploy/types"; + +import { TAGS } from "./deployment.config"; +import { runVerify } from "./utils"; + + +const deployment: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { + const { deployments, getNamedAccounts } = hre; + const { deploy } = deployments; + + const { deployer } = await getNamedAccounts(); + + const deployResult = await deploy("OracleCreator", { + from: deployer, + log: true, + }); + + if (deployResult.newlyDeployed && deployResult.transactionHash) { + await runVerify(hre, deployResult.transactionHash, { + address: deployResult.address, + }); + } +}; + +deployment.tags = [TAGS.ORACLE_CREATOR, TAGS.PERIPHERY]; + +export default deployment; diff --git a/deploy/deployment.config.ts b/deploy/deployment.config.ts new file mode 100644 index 00000000..4123f269 --- /dev/null +++ b/deploy/deployment.config.ts @@ -0,0 +1,57 @@ +/* eslint-disable no-unused-vars */ +import { ContractFactory } from "ethers"; + +export enum TAGS { + PERIPHERY = "PERIPHERY", // full deploy + ROUTER = "ROUTER", + ROUTER_FACTORY = "ROUTER_FACTORY", + RELAYER = "RELAYER", + RELAYER_FACTORY = "RELAYER_FACTORY", + ORACLE_CREATOR = "ORACLE_CREATOR", + ORACLE_CREATOR_FACTORY = "ORACLE_CREATOR_FACTORY" +} + +type PeripheryDeployParams = Partial<{ + owner: string; + dxSwapFactory: string; + dxSwapRouter: string; + uniswapFactory: string; + uniswapRouter: string; + nativeCurrencyWrapper: string; + oracleCreator: string; +}>; + +const deploymentConfig: { [k: string]: PeripheryDeployParams } = { + mainnet: { + owner: "0x519b70055af55A007110B4Ff99b0eA33071c720a", + dxSwapFactory: "0xd34971BaB6E5E356fd250715F5dE0492BB070452", + dxSwapRouter: "0xB9960d9bcA016e9748bE75dd52F02188B9d0829f", + uniswapFactory: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f", + uniswapRouter: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D", + nativeCurrencyWrapper: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + oracleCreator: "0xACE19569805fDc5F8bb778C15Ee94F2F61D78392" + }, + gnosis: { + owner: "0xe716EC63C5673B3a4732D22909b38d779fa47c3F", + dxSwapFactory: "0x5D48C95AdfFD4B40c1AAADc4e08fc44117E02179", + dxSwapRouter: "0xE43e60736b1cb4a75ad25240E2f9a62Bff65c0C0", + uniswapFactory: "0xA818b4F111Ccac7AA31D0BCc0806d64F2E0737D7", + uniswapRouter: "0x1C232F01118CB8B424793ae03F870aa7D0ac7f77", + nativeCurrencyWrapper: "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d", + oracleCreator: "0xa1A98682DdDDD197B2807094FEBBa318E43d0de1" + }, + arbitrum: { + owner: "0xbf7454c656BDB7C439E8d759c18Ac240398FdE35", + dxSwapFactory: "0x359F20Ad0F42D75a5077e65F30274cABe6f4F01a", + dxSwapRouter: "0x530476d5583724A89c8841eB6Da76E7Af4C0F17E", + nativeCurrencyWrapper: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + }, +}; + +export const getDeploymentConfig = (networkName: string) => { + return deploymentConfig[networkName] || undefined; +}; + +export const contractConstructorArgs = ( + ...args: Parameters +) => args; \ No newline at end of file diff --git a/deploy/utils.ts b/deploy/utils.ts new file mode 100644 index 00000000..1762ba47 --- /dev/null +++ b/deploy/utils.ts @@ -0,0 +1,30 @@ +import { HardhatRuntimeEnvironment } from "hardhat/types"; + +const ETHERSCAN_CHAINS = ["1", "3", "4", "5"]; + +type EtherscanVerifyParams = { + address: string; + constructorArguments?: T; +}; + +export const runVerify = async ( + hre: HardhatRuntimeEnvironment, + transactionHash: string, + etherscanParams?: EtherscanVerifyParams +) => { + const chainId = await hre.getChainId(); + + if (chainId === "31337") return; // local network + + console.log("Waiting for tx confirmations..."); + + await hre.ethers.provider.waitForTransaction(transactionHash, 5); + + if (ETHERSCAN_CHAINS.includes(chainId)) { + hre.deployments.log("Verifying on etherscan..."); + return hre.run("verify:verify", etherscanParams); + } else { + hre.deployments.log("Verifying on sourcify..."); + return hre.run("sourcify"); + } +}; diff --git a/hardhat.config.ts b/hardhat.config.ts new file mode 100644 index 00000000..165ac231 --- /dev/null +++ b/hardhat.config.ts @@ -0,0 +1,109 @@ +import dotenv from "dotenv"; +import { HardhatUserConfig } from "hardhat/types"; +import "@nomicfoundation/hardhat-chai-matchers"; +import "@nomicfoundation/hardhat-network-helpers"; +import "@nomiclabs/hardhat-ethers"; +import "@nomiclabs/hardhat-etherscan"; +import "@typechain/hardhat"; +import "hardhat-dependency-compiler" +import "hardhat-deploy"; +import "hardhat-gas-reporter"; +import "solidity-coverage"; + +dotenv.config(); + +const infuraKey = process.env.INFURA_KEY; +const accounts = process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : []; + +const config: HardhatUserConfig = { + solidity: { + compilers: [ + { + version: "0.5.16", + settings: { + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, + { + version: "0.6.6", + settings: { + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, + { + version: "0.8.16", + settings: { + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, + ] + }, + paths: { + artifacts: "build/artifacts", + cache: "build/cache", + deploy: "deploy", + sources: "contracts", + deployments: "deployments", + }, + defaultNetwork: "hardhat", + networks: { + hardhat: { + blockGasLimit: 15000000, //default 30 000 000 + gasPrice: 100000000000, //100 Gwei, + chainId: 1 //set mainnet ID - important for PERMIT functionality + }, + localhost: { + url: "http://localhost:8545", + gasPrice: 20000000000 //20 Gwei, + }, + mainnet: { + live: true, + saveDeployments: true, + url: `https://mainnet.infura.io/v3/${infuraKey}`, + accounts, + }, + gnosis: { + live: true, + saveDeployments: true, + url: "https://rpc.gnosischain.com/", + accounts, + }, + rinkeby: { + live: false, + saveDeployments: true, + url: `https://rinkeby.infura.io/v3/${infuraKey}`, + accounts, + }, + }, + typechain: { + outDir: "typechain", + target: "ethers-v5", + }, + namedAccounts: { + deployer: 0, + account1: 1, + account2: 2, + }, + gasReporter: { + currency: "USD", + enabled: process.env.GAS_REPORT_ENABLED === "true", +}, + etherscan: { + apiKey: process.env.ETHERSCAN_KEY, + }, + dependencyCompiler: { + paths: [ + './contracts/test', + ] + } +}; +export default config; \ No newline at end of file diff --git a/package.json b/package.json index 61e77a20..701d6e66 100644 --- a/package.json +++ b/package.json @@ -18,34 +18,55 @@ "@swapr/core": "^0.3.17" }, "devDependencies": { - "@types/chai": "^4.2.6", - "@types/mocha": "^5.2.7", - "arb-ethers-web3-bridge": "^0.7.3", - "chai": "^4.2.0", - "dotenv": "^8.2.0", - "ethereum-waffle": "^2.4.1", - "ethereumjs-util": "^6.2.0", - "ethers": "^4.0.45", - "mocha": "^6.2.2", - "ncp": "^2.0.0", - "prettier": "^1.19.1", + "@ethersproject/providers": "^5.4.7", + "@nomicfoundation/hardhat-chai-matchers": "^1.0.1", + "@nomicfoundation/hardhat-network-helpers": "^1.0.2", + "@nomiclabs/hardhat-ethers": "^2.0.0", + "@nomiclabs/hardhat-etherscan": "^2.1.6", + "@typechain/ethers-v5": "^10.1.0", + "@typechain/hardhat": "^6.1.2", + "@types/chai": "^4.2.14", + "@types/mocha": "^8.0.4", + "@typescript-eslint/eslint-plugin": "^4.29.3", + "@typescript-eslint/parser": "^4.29.3", + "chai": "^4.3.4", + "dotenv": "^10.0.0", + "eslint": "^7.32.0", + "ethereumjs-util": "^7.1.3", + "ethers": "^5.4.6", + "glob-promise": "^5.0.0", + "hardhat": "^2.10.0", + "hardhat-dependency-compiler": "^1.1.3", + "hardhat-deploy": "^0.9.0", + "hardhat-deploy-ethers": "^0.3.0-beta.10", + "hardhat-gas-reporter": "^1.0.8", + "prettier": "^2.3.2", + "prettier-plugin-solidity": "^1.0.0-beta.17", "rimraf": "^3.0.0", - "solc": "0.6.6", - "truffle-flattener": "^1.4.4", - "truffle-hdwallet-provider": "^1.0.17", - "ts-node": "^8.5.4", - "typescript": "^3.7.3" + "solc": "0.8.15", + "solhint": "^3.3.6", + "solhint-plugin-prettier": "0.0.5", + "solidity-coverage": "^0.7.20", + "ts-node": "10.7.0", + "typechain": "^8.1.0", + "typescript": "^4.5.2" }, "scripts": { "lint": "yarn prettier ./test/*.ts --check", "lint:fix": "yarn prettier ./test/*.ts --write", "clean": "rimraf ./build/", "precompile": "yarn clean", - "compile": "waffle .waffle.json", - "pretest": "yarn compile", - "test": "mocha", + "compile": "hardhat compile", + "test": "yarn compile && hardhat test", + "test:coverage": "hardhat coverage", + "test:gasreport": "GAS_REPORT_ENABLED=true hardhat test", "prepublishOnly": "yarn test", - "flattener": "./scripts/flattener.sh" + "deploy:mainnet": "hardhat deploy --network mainnet --tags CORE_CONTRACTS", + "verify:mainnet": "set -a; . ./.env; set +a; npx hardhat --network mainnet etherscan-verify --api-key \"$ETHERSCAN_KEY\"", + "deploy:gnosis": "hardhat deploy --network gnosis --tags CORE_CONTRACTS", + "verify:gnosis": "set -a; . ./.env; set +a; npx hardhat --network gnosis etherscan-verify --api-key \"$ETHERSCAN_KEY\"", + "deploy:rinkeby": "hardhat deploy --network rinkeby --tags CORE_CONTRACTS", + "verify:rinkeby": "set -a; . ./.env; set +a; npx hardhat --network rinkeby etherscan-verify --api-key \"$ETHERSCAN_KEY\"" }, "license": "GPL-3.0-or-later" -} +} \ No newline at end of file diff --git a/scripts/bundler.ts b/scripts/bundler.ts new file mode 100644 index 00000000..46a28713 --- /dev/null +++ b/scripts/bundler.ts @@ -0,0 +1,330 @@ +import { existsSync, promises } from "fs"; +import glob from "glob-promise"; +import { join, parse, resolve } from "path"; +import { exec } from "child_process"; + + +const { mkdir, readdir, readFile, writeFile, copyFile, rmdir } = promises; + +const ROOT = join(__dirname, ".."); + +// TYPES +export type ContractsAddresses = { + [chainId: string]: { + [contractName: string]: string; + }; +}; + +// CONFIG +const config = { + paths: { + outDir: join(ROOT, "bundle/dxswap-periphery"), // Path to root folder + deployments: join(ROOT, "deployments"), // Path to folder with deployments (compatible with hardhat-deploy only) + artifacts: join(ROOT, "build/artifacts"), // Path to folder with artifacts to be copied + }, + addresses: { + fileName: "addresses", // Name of the file to which addresses will be saved in .json format + ignoredDeployments: [ + // Array of deployments (chains) that will be ignored + "localhost", + "hardhat", + ], + includedContracts: [ + // Name of contracts (will match filename) to be included in .json with addresses + "DXswapRouter", + "DXswapRelayer", + "OracleCreator", + ], + }, + artifacts: { + dirName: "artifacts", // Name of folder to which artifacts will be saved + includedContracts: [ + // Name of contracts (will match filename) to be included in artifacts bundle + "DXswapRouter", + "DXswapRelayer", + "OracleCreator", + ], + }, + chains: { + // chain name => networkId mapping used to build enum + rinkeby: 4, + gnosis: 100, + }, +}; + +// UTILS +const camelize = (str: string) => { + return str + .replace(/(?:^\w|[A-Z]|\b\w)/g, (word: string, index: number) => { + return index === 0 ? word.toLowerCase() : word.toUpperCase(); + }) + .replace(/\s+/g, ""); +}; + +const copyFiles = async (paths: string[], outDir: string) => { + for (const path of paths) { + await copyFile(path, join(outDir, parse(path).base)); + } +}; + +const recreateDirs = async (paths: string[]) => { + for (const path of paths) { + const exists = existsSync(path); + + if (exists) { + await rmdir(path, { + recursive: true, + }); + } + + await mkdir(path, { + recursive: true, + }); + } +}; + +const log = (msg: string) => console.log("\x1b[32m%s\x1b[0m", msg); + +const execAsync = (cmd: string) => { + return new Promise((resolve) => { + exec(cmd, (error, stdout, stderr) => { + if (error) { + console.warn(error); + } + resolve(stdout ? stdout : stderr); + }); + }); +}; + +// BUNDLERS +const bundleAddresses = async () => { + const addresses: ContractsAddresses = {}; + const deployments = await readdir(config.paths.deployments); + + for (const deployment of deployments) { + let chainId: string; + + if (!config.addresses.ignoredDeployments.includes(deployment)) { + const deploymentContent = await readdir( + join(config.paths.deployments, deployment) + ); + + if (deploymentContent.includes(".chainId")) { + chainId = ( + await readFile( + join(config.paths.deployments, deployment, ".chainId") + ) + ).toString(); + } else { + throw new Error( + `Missing ${join( + config.paths.deployments, + deployment, + ".chainId" + )}` + ); + } + + for (const fileName of deploymentContent) { + const filePath = join( + config.paths.deployments, + deployment, + fileName + ); + const file = parse(filePath); + + if ( + file.ext === ".json" && + config.addresses.includedContracts.includes(file.name) + ) { + const fileContent = ( + await readFile( + join(config.paths.deployments, deployment, fileName) + ) + ).toString(); + const addressSearch = fileContent.match( + /(?<="address": ")[\w\d]*/g + ); + + if (addressSearch && addressSearch.length > 0) { + if (!addresses[chainId]) { + addresses[chainId] = {}; + } + addresses[chainId][camelize(file.name)] = + addressSearch[0]; + } + } + } + } + } + + if (Object.keys(addresses).length > 0) { + const subfolders = ["src", "dist"]; + + for (const subfolder of subfolders) { + await writeFile( + join( + join(config.paths.outDir, subfolder), + `${config.addresses.fileName}.json` + ), + JSON.stringify(addresses), + {} + ); + } + } +}; + +const bundleArtifacts = async () => { + const artifactsOutDir = join(config.paths.outDir, config.artifacts.dirName); + const includedFiles = config.artifacts.includedContracts.join("|"); + + const artifacts = await glob( + `${config.paths.artifacts}/**/@(${includedFiles}).json`, + { + cwd: resolve(__dirname), + } + ); + + for (const artifact of artifacts) { + const contractProps = parse(artifact); + + await copyFile(artifact, join(artifactsOutDir, contractProps.base)); + } +}; + +const createIndexFile = async () => { + // Write imports + const writeImports = [ + `import * as addresses from './${config.addresses.fileName}.json';`, + ].join("\n\t"); + + // Write reexports + const writeReexports = [ + `export * from './typechain/index';`, + `export * from './encoders';`, + ].join("\n\t"); + + // Write ContractAddresses interface + const artifacts = await glob( + `${join(config.paths.outDir, config.artifacts.dirName)}/*.json`, + { + cwd: resolve(__dirname), + } + ); + + const artifactsNames = artifacts + .reduce((total, filepath) => { + let name = parse(filepath).name; + + if (config.addresses.includedContracts.includes(name)) { + total.push(`${camelize(name)}: string;`); + } + + return total; + }, []) + .join("\n\t\t"); + + const writeContractAddressInterface = `export interface ContractAddresses { + ${artifactsNames} + }`; + + // Write ChainId enum + const chains = Object.keys(config.chains) + .map((chainName) => { + return `${chainName.toLowerCase()} = ${ + config.chains[chainName as keyof typeof config.chains] + },`; + }) + .join("\n\t\t"); + + const writeChainEnum = `export enum ChainId { + ${chains} + }`; + + // Write function + const writeFunction = ` + /** + * Used to get addresses of contracts that have been deployed to either the + * Ethereum mainnet or a supported testnet. Throws if there are no known + * contracts deployed on the corresponding chain. + * @param chainId The desired chainId. + * @returns The set of addresses for contracts which have been deployed on the + * given chainId. + */ + export function getContractAddressesForChainOrThrow(chainId: ChainId): ContractAddresses { + const chainToAddresses: { [chainId: number]: ContractAddresses } = addresses; + + if (chainToAddresses[chainId] === undefined) { + throw new Error(\`Unknown chain id (\${chainId}). No known contracts have been deployed on this chain.\`); + } + return chainToAddresses[chainId]; + } + `; + + // Create and write index.ts + const writeIndexFile = ` + /*eslint-disable */ + // @ts-nocheck + // Inspired by https://github.com/0xProject/protocol/tree/main/packages/contract-addresses + + ${writeImports} + + ${writeReexports} + + ${writeContractAddressInterface} + + ${writeChainEnum} + + ${writeFunction} + `; + + await writeFile( + join(config.paths.outDir, "src", "index.ts"), + writeIndexFile + ); +}; + +const run = async () => { + log(`DXswap-periphery contracts bundler`); + log("====================="); + log("Cleaning old files..."); + await recreateDirs([ + join(config.paths.outDir, "src"), + join(config.paths.outDir, "dist"), + join(config.paths.outDir, "artifacts"), + ]); + log("Compiling contracts..."); + await execAsync("yarn compile"); + log("Bundling addresses..."); + await bundleAddresses(); + log("Bundling artifacts..."); + await bundleArtifacts(); + log("Creating index.ts..."); + await createIndexFile(); + log("Running typechain..."); + const typechainSrc = join(config.paths.outDir, "src", "typechain"); + await execAsync( + `yarn typechain --target ethers-v5 --out-dir ${typechainSrc} '${join( + config.paths.outDir, + config.artifacts.dirName + )}/*.json'` + ); + log("Running tsc..."); + await execAsync( + `tsc --declaration true --outDir ${join( + config.paths.outDir, + "dist" + )} ${join(config.paths.outDir, "src", "*.ts")}` + ); + const declarationFiles = await glob(`${typechainSrc}/*.d.ts`, { + cwd: resolve(__dirname), + }); + await copyFiles( + declarationFiles, + join(config.paths.outDir, "dist", "typechain") + ); + log("====================="); + log(`Bundle successfully created in '${config.paths.outDir}' folder.`); +}; + +run(); diff --git a/scripts/flattener.sh b/scripts/flattener.sh deleted file mode 100755 index 126948d1..00000000 --- a/scripts/flattener.sh +++ /dev/null @@ -1,4 +0,0 @@ -mkdir contracts/.flattened -npx truffle-flattener contracts/DXswapRouter.sol > contracts/.flattened/DXswapRouter.sol -npx truffle-flattener contracts/libraries/DXswapLibrary.sol > contracts/.flattened/DXswapLibrary.sol -npx truffle-flattener contracts/libraries/DXswapOracleLibrary.sol > contracts/.flattened/DXswapOracleLibrary.sol diff --git a/test/DXswapRelayer.spec.ts b/test/DXswapRelayer.spec.ts index e1f78c2f..076b33b4 100644 --- a/test/DXswapRelayer.spec.ts +++ b/test/DXswapRelayer.spec.ts @@ -1,42 +1,37 @@ -import chai, { expect } from 'chai' -import { constants, Contract, ethers, utils, Wallet } from 'ethers' -import { AddressZero, MaxUint256 } from 'ethers/constants' -import { BigNumber, bigNumberify, Interface } from 'ethers/utils' -import { solidity, MockProvider, createFixtureLoader } from 'ethereum-waffle' - -import { expandTo18Decimals, mineBlock, MINIMUM_LIQUIDITY } from './shared/utilities' +import "@nomiclabs/hardhat-ethers"; +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' +import { expect } from 'chai' +import { constants, utils, BigNumber } from 'ethers' +import { ethers } from "hardhat"; +import { Address } from 'hardhat-deploy/dist/types' import { dxswapFixture } from './shared/fixtures' +import { expandTo18Decimals, mineBlock, MINIMUM_LIQUIDITY } from './shared/utilities' +import { DXswapFactory, DXswapPair, DXswapRelayer, DXswapRouter, ERC20Mintable, OracleCreator, WETH9 } from './../typechain' -chai.use(solidity) + +const { AddressZero } = constants const overrides = { - gasLimit: 9999999 + gasLimit: 14999999 } describe('DXswapRelayer', () => { - const provider = new MockProvider({ - hardfork: 'istanbul', - mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn', - gasLimit: 9999999 - }) - const [wallet, wallet2] = provider.getWallets() - const loadFixture = createFixtureLoader(provider, [wallet]) - - let token0: Contract - let token1: Contract - let weth: Contract - let wethPartner: Contract - let wethPair: Contract - let dxswapPair: Contract - let dxswapFactory: Contract - let dxswapRouter: Contract - let uniPair: Contract - let uniFactory: Contract - let uniRouter: Contract - let oracleCreator: Contract - let dxRelayer: Contract - let tokenPair: Contract - let owner: String + let token0: ERC20Mintable + let token1: ERC20Mintable + let weth: WETH9 + let wethPartner: ERC20Mintable + let wethPair: DXswapPair + let dxswapPair: DXswapPair + let dxswapFactory: DXswapFactory + let dxswapRouter: DXswapRouter + let uniPair: DXswapPair + let uniFactory: DXswapFactory + let oracleCreator: OracleCreator + let dxRelayer: DXswapRelayer + let owner: Address + + let wallet: SignerWithAddress + let wallet2: SignerWithAddress async function addLiquidity(amount0: BigNumber = defaultAmountA, amount1: BigNumber = defaultAmountB) { if (!amount0.isZero()) await token0.transfer(dxswapPair.address, amount0) @@ -51,19 +46,36 @@ describe('DXswapRelayer', () => { const defaultMinReserve = expandTo18Decimals(2) const defaultMaxWindowTime = 300 // 5 Minutes - beforeEach('deploy fixture', async function() { - const fixture = await loadFixture(dxswapFixture) + const provider = ethers.provider + + // 1/1/2020 @ 12:00 am UTC + // cannot be 0 because that instructs ganache to set it to current timestamp + // cannot be 86400 because then timestamp 0 is a valid historical observation + let startTime = 1893499200 + let defaultDeadline = startTime + 86400 // 24 hours + + // must come before adding liquidity to pairs for correct cumulative price computations + // cannot use 0 because that resets to current timestamp + // beforeEach(`set start time to ${startTime}`, async () => await mineBlock(provider, startTime)) + + beforeEach('assign wallets', async function () { + const signers = await ethers.getSigners() + wallet = signers[0] + wallet2 = signers[1] + }) + + beforeEach('deploy fixture', async function () { + const fixture = await dxswapFixture(wallet) token0 = fixture.token0 token1 = fixture.token1 weth = fixture.WETH - wethPartner = fixture.WETHPartner + dxswapPair = fixture.dxswapPair wethPair = fixture.WETHPair - dxswapPair = fixture.pair + wethPartner = fixture.WETHPartner dxswapFactory = fixture.dxswapFactory dxswapRouter = fixture.dxswapRouter uniPair = fixture.uniPair uniFactory = fixture.uniFactory - uniRouter = fixture.uniRouter oracleCreator = fixture.oracleCreator dxRelayer = fixture.dxRelayer }) @@ -74,22 +86,23 @@ describe('DXswapRelayer', () => { await wethPartner.transfer(dxRelayer.address, expandTo18Decimals(999)) await wallet.sendTransaction({ to: dxRelayer.address, - value: utils.parseEther('999') + value: utils.parseEther('9') }) owner = await dxRelayer.owner() }) - // 1/1/2020 @ 12:00 am UTC - // cannot be 0 because that instructs ganache to set it to current timestamp - // cannot be 86400 because then timestamp 0 is a valid historical observation - const startTime = 1577836800 - const defaultDeadline = 1577836800 + 86400 // 24 hours + beforeEach('set timestamp', async () => { + const lastTime = (await provider.getBlock("latest")).timestamp; + startTime = lastTime; + defaultDeadline = startTime + 86400 + }) - // must come before adding liquidity to pairs for correct cumulative price computations - // cannot use 0 because that resets to current timestamp - beforeEach(`set start time to ${startTime}`, () => mineBlock(provider, startTime)) describe('Liquidity provision', () => { + it('INIT_CODE_PAIR_HASH', async () => { + expect(await dxswapFactory.INIT_CODE_PAIR_HASH()).to.eq('0xc30284a6e09f4f63686442b7046014b946fdb3e6c00d48b549eda87070a98167') + }) + it('requires correct order input', async () => { await expect( dxRelayer.orderLiquidityProvision( @@ -370,6 +383,7 @@ describe('DXswapRelayer', () => { await mineBlock(provider, startTime + 350) await dxRelayer.updateOracle(0) await mineBlock(provider, startTime + 700) + await expect(dxRelayer.executeOrder(0)) .to.emit(dxRelayer, 'ExecutedOrder') .withArgs(0) @@ -558,7 +572,7 @@ describe('DXswapRelayer', () => { await mineBlock(provider, startTime + 350) await dxRelayer.updateOracle(0) await mineBlock(provider, startTime + 700) - await expect(await dxswapPair.balanceOf(dxRelayer.address)).to.eq(expandTo18Decimals(4).sub(MINIMUM_LIQUIDITY)) + expect(await dxswapPair.balanceOf(dxRelayer.address)).to.eq(expandTo18Decimals(4).sub(MINIMUM_LIQUIDITY)) await expect(dxRelayer.executeOrder(0)) .to.emit(dxRelayer, 'ExecutedOrder') @@ -581,13 +595,14 @@ describe('DXswapRelayer', () => { dxRelayer.address ) - await expect(await dxswapPair.balanceOf(dxRelayer.address)).to.eq(expandTo18Decimals(2)) + expect(await dxswapPair.balanceOf(dxRelayer.address)).to.eq(expandTo18Decimals(2)) }) it('removes liquidity with ETH/ERC20 pair after price observation', async () => { await weth.deposit({ ...overrides, value: expandTo18Decimals(10) }) await weth.transfer(wethPair.address, expandTo18Decimals(10)) await wethPartner.transfer(wethPair.address, expandTo18Decimals(40)) + await wethPair.mint(dxRelayer.address) await mineBlock(provider, startTime + 100) @@ -614,7 +629,11 @@ describe('DXswapRelayer', () => { await dxRelayer.updateOracle(0) await mineBlock(provider, startTime + 700) - expect(await wethPair.balanceOf(dxRelayer.address)).to.eq(expandTo18Decimals(20).sub(1000)) + expect(await wethPair.balanceOf(dxRelayer.address)).to.eq(expandTo18Decimals(20).sub(MINIMUM_LIQUIDITY)) + + const wethAmount = expandTo18Decimals(1).sub(500) + const wethPartnerAmount = expandTo18Decimals(4).sub(2000) + await expect(dxRelayer.executeOrder(0)) .to.emit(dxRelayer, 'ExecutedOrder') .withArgs(0) @@ -623,16 +642,19 @@ describe('DXswapRelayer', () => { .to.emit(wethPair, 'Transfer') .withArgs(wethPair.address, AddressZero, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) .to.emit(wethPartner, 'Transfer') - .withArgs(wethPair.address, dxRelayer.address, expandTo18Decimals(4).sub(2000)) + .withArgs(wethPair.address, dxRelayer.address, wethPartnerAmount) .to.emit(weth, 'Transfer') - .withArgs(wethPair.address, dxRelayer.address, expandTo18Decimals(1).sub(500)) + .withArgs(wethPair.address, dxRelayer.address, wethAmount) .to.emit(wethPair, 'Sync') - .withArgs(expandTo18Decimals(36).add(2000), expandTo18Decimals(9).add(500)) + .withArgs( + weth.address === await wethPair.token0() ? expandTo18Decimals(9).add(500) : expandTo18Decimals(36).add(2000), + wethPartner.address === await wethPair.token1() ? expandTo18Decimals(36).add(2000) : expandTo18Decimals(9).add(500) + ) .to.emit(wethPair, 'Burn') .withArgs( dxswapRouter.address, - expandTo18Decimals(4).sub(2000), - expandTo18Decimals(1).sub(500), + weth.address === await wethPair.token0() ? wethAmount : wethPartnerAmount, + wethPartner.address === await wethPair.token1() ? wethPartnerAmount : wethAmount, dxRelayer.address ) @@ -640,7 +662,7 @@ describe('DXswapRelayer', () => { }) }) - describe('Oracle price calulation', () => { + describe('Oracle price calculation', () => { it('reverts oracle update if minReserve is not reached', async () => { await expect( dxRelayer.orderLiquidityProvision( @@ -687,7 +709,7 @@ describe('DXswapRelayer', () => { await dxRelayer.updateOracle(0) }) - it('consumes 168339 to update the price oracle', async () => { + it('consumes 179154 gas to update the price oracle', async () => { await addLiquidity(expandTo18Decimals(10), expandTo18Decimals(40)) await mineBlock(provider, startTime + 10) await expect( @@ -709,11 +731,64 @@ describe('DXswapRelayer', () => { let tx = await dxRelayer.updateOracle(0) let receipt = await provider.getTransactionReceipt(tx.hash) - expect(receipt.gasUsed).to.eq(bigNumberify('168339')) + expect(receipt.gasUsed).to.eq(ethers.BigNumber.from('179154')) + }) + + it('reverts if token amount is insufficient based on uniswap price', async () => { + let timestamp = startTime + + /* DXswap price of 1:4 */ + await token0.transfer(dxswapPair.address, expandTo18Decimals(100)) + await token1.transfer(dxswapPair.address, expandTo18Decimals(400)) + await dxswapPair.mint(wallet.address, overrides) + await mineBlock(provider, (timestamp += 100)) + + /* Uniswap starting price of 1:2 */ + await token0.transfer(uniPair.address, expandTo18Decimals(100)) + await token1.transfer(uniPair.address, expandTo18Decimals(200)) + await uniPair.mint(wallet.address, overrides) + await mineBlock(provider, (timestamp += 100)) + + await expect( + dxRelayer.orderLiquidityProvision( + token0.address, + token1.address, + expandTo18Decimals(10), + expandTo18Decimals(40), + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + uniFactory.address + ) + ) + .to.emit(dxRelayer, 'NewOrder') + .withArgs(0, 1) + + await dxRelayer.updateOracle(0) + await mineBlock(provider, (timestamp += 30)) + + // Uniswap move price ratio to 1:5 + await token0.transfer(uniPair.address, expandTo18Decimals(200)) + await token1.transfer(uniPair.address, expandTo18Decimals(1300)) + await uniPair.mint(wallet.address, overrides) + await mineBlock(provider, (timestamp += 150)) + await dxRelayer.updateOracle(0) + + // Uniswap price should be more than four and less than five + expect(await oracleCreator.consult(0, token0.address, 100, overrides)).to.eq(448) + + await expect(dxRelayer.executeOrder(0, overrides)) + .to.emit(dxRelayer, 'ExecutedOrder') + .withArgs(0) + .to.be.revertedWith('DXswapRouter: INSUFFICIENT_B_AMOUNT') }) it('provides the liquidity with the correct price based on uniswap price', async () => { let timestamp = startTime + const token0AmountLP = expandTo18Decimals(10) + const token1AmountLP = expandTo18Decimals(36) /* DXswap price of 1:4 */ await token0.transfer(dxswapPair.address, expandTo18Decimals(100)) @@ -731,8 +806,8 @@ describe('DXswapRelayer', () => { dxRelayer.orderLiquidityProvision( token0.address, token1.address, - defaultAmountA, - defaultAmountB, + token0AmountLP, + token1AmountLP, defaultPriceTolerance, defaultMinReserve, defaultMinReserve, @@ -754,15 +829,17 @@ describe('DXswapRelayer', () => { await mineBlock(provider, (timestamp += 150)) await dxRelayer.updateOracle(0) - // Uniswap price should be more then four - expect(await oracleCreator.consult(0, token0.address, 100)).to.eq(451) + // Uniswap price should be more than four and less than five + expect(await oracleCreator.consult(0, token0.address, 100, overrides)).to.eq(448) - await expect(dxRelayer.executeOrder(0)) + await expect(dxRelayer.executeOrder(0, overrides)) .to.emit(dxRelayer, 'ExecutedOrder') .withArgs(0) - expect(await dxswapPair.balanceOf(dxRelayer.address)).to.eq(bigNumberify('1988826815642458100')) - }).retries(3) + // Uniswap price is the same + expect(await oracleCreator.consult(0, token0.address, 100, overrides)).to.eq(448) + expect(await dxswapPair.balanceOf(dxRelayer.address)).to.eq(ethers.BigNumber.from(('18000000000000000000'))) + }) it('should let the owner transfer ownership', async () => { const oldOwner = await dxRelayer.owner() diff --git a/test/DXswapRouter.spec.ts b/test/DXswapRouter.spec.ts index 8b108b1e..798503da 100644 --- a/test/DXswapRouter.spec.ts +++ b/test/DXswapRouter.spec.ts @@ -1,60 +1,72 @@ -import chai, { expect } from 'chai' -import { Contract } from 'ethers' -import { AddressZero, Zero, MaxUint256 } from 'ethers/constants' -import { BigNumber, bigNumberify } from 'ethers/utils' -import { solidity, MockProvider, createFixtureLoader, deployContract } from 'ethereum-waffle' +import '@nomiclabs/hardhat-ethers' +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' +import { expect } from 'chai' +import { ethers, network } from "hardhat"; +import { constants, BigNumber, Wallet } from 'ethers' import { ecsign } from 'ethereumjs-util' - -import { expandTo18Decimals, getApprovalDigest, mineBlock, MINIMUM_LIQUIDITY } from './shared/utilities' import { dxswapFixture } from './shared/fixtures' +import { expandTo18Decimals, getApprovalDigest, mineBlock, MINIMUM_LIQUIDITY } from './shared/utilities' +import { DeflatingERC20, DeflatingERC20__factory, DXswapFactory, DXswapPair, DXswapRouter, ERC20Mintable, RouterEventEmitter, WETH9 } from './../typechain' -import IDXswapPair from '@swapr/core/build/IDXswapPair.json' -import DeflatingERC20 from '../build/DeflatingERC20.json' - -chai.use(solidity) +const { AddressZero, Zero, MaxUint256 } = constants const overrides = { gasLimit: 9999999 } describe('DXswapRouter', () => { - const provider = new MockProvider({ - hardfork: 'istanbul', - mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn', - gasLimit: 9999999 + const provider = ethers.provider + + // tokens + let token0: ERC20Mintable + let token1: ERC20Mintable + let token2: ERC20Mintable + let weth: WETH9 + let wethPartner: ERC20Mintable + let DTT: DeflatingERC20 + //pairs + let wethPair: DXswapPair + let uniWethPair: DXswapPair + let dxswapPair: DXswapPair + let wethDttPair: DXswapPair + // contracts + let dxswapFactory: DXswapFactory + let uniFactory: DXswapFactory + let dxswapRouter: DXswapRouter + let routerEventEmitter: RouterEventEmitter + + // wallets + let wallet: SignerWithAddress + + beforeEach('assign wallets', async function () { + const signers = await ethers.getSigners() + wallet = signers[0] }) - const [wallet] = provider.getWallets() - const loadFixture = createFixtureLoader(provider, [wallet]) - - let token0: Contract - let token1: Contract - let WETH: Contract - let WETHPartner: Contract - let factory: Contract - let router: Contract - let pair: Contract - let WETHPair: Contract - let routerEventEmitter: Contract - beforeEach(async function() { - const fixture = await loadFixture(dxswapFixture) + + beforeEach('deploy fixture', async function () { + const fixture = await dxswapFixture(wallet) token0 = fixture.token0 token1 = fixture.token1 - WETH = fixture.WETH - WETHPartner = fixture.WETHPartner - factory = fixture.dxswapFactory - router = fixture.router - pair = fixture.pair - WETHPair = fixture.WETHPair + token2 = fixture.token2 + weth = fixture.WETH + wethPartner = fixture.WETHPartner + wethPair = fixture.WETHPair + uniWethPair = fixture.uniWETHPair + dxswapPair = fixture.dxswapPair + dxswapFactory = fixture.dxswapFactory + dxswapRouter = fixture.dxswapRouter + uniFactory = fixture.uniFactory routerEventEmitter = fixture.routerEventEmitter }) - afterEach(async function() { - expect(await provider.getBalance(router.address)).to.eq(Zero) + afterEach(async function () { + expect(await provider.getBalance(dxswapRouter.address)).to.eq(Zero) }) - it('factory, WETH', async () => { - expect(await router.factory()).to.eq(factory.address) - expect(await router.WETH()).to.eq(WETH.address) + it('factory, weth', async () => { + expect(await dxswapFactory.INIT_CODE_PAIR_HASH()).to.eq('0xc30284a6e09f4f63686442b7046014b946fdb3e6c00d48b549eda87070a98167') + expect(await dxswapRouter.factory()).to.eq(dxswapFactory.address) + expect(await dxswapRouter.WETH()).to.eq(weth.address) }) it('addLiquidity', async () => { @@ -62,10 +74,10 @@ describe('DXswapRouter', () => { const token1Amount = expandTo18Decimals(4) const expectedLiquidity = expandTo18Decimals(2) - await token0.approve(router.address, MaxUint256) - await token1.approve(router.address, MaxUint256) + await token0.approve(dxswapRouter.address, MaxUint256) + await token1.approve(dxswapRouter.address, MaxUint256) await expect( - router.addLiquidity( + dxswapRouter.addLiquidity( token0.address, token1.address, token0Amount, @@ -78,19 +90,19 @@ describe('DXswapRouter', () => { ) ) .to.emit(token0, 'Transfer') - .withArgs(wallet.address, pair.address, token0Amount) + .withArgs(wallet.address, dxswapPair.address, token0Amount) .to.emit(token1, 'Transfer') - .withArgs(wallet.address, pair.address, token1Amount) - .to.emit(pair, 'Transfer') + .withArgs(wallet.address, dxswapPair.address, token1Amount) + .to.emit(dxswapPair, 'Transfer') .withArgs(AddressZero, AddressZero, MINIMUM_LIQUIDITY) - .to.emit(pair, 'Transfer') + .to.emit(dxswapPair, 'Transfer') .withArgs(AddressZero, wallet.address, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) - .to.emit(pair, 'Sync') + .to.emit(dxswapPair, 'Sync') .withArgs(token0Amount, token1Amount) - .to.emit(pair, 'Mint') - .withArgs(router.address, token0Amount, token1Amount) + .to.emit(dxswapPair, 'Mint') + .withArgs(dxswapRouter.address, token0Amount, token1Amount) - expect(await pair.balanceOf(wallet.address)).to.eq(expectedLiquidity.sub(MINIMUM_LIQUIDITY)) + expect(await dxswapPair.balanceOf(wallet.address)).to.eq(expectedLiquidity.sub(MINIMUM_LIQUIDITY)) }) it('addLiquidityETH', async () => { @@ -98,11 +110,11 @@ describe('DXswapRouter', () => { const ETHAmount = expandTo18Decimals(4) const expectedLiquidity = expandTo18Decimals(2) - const WETHPairToken0 = await WETHPair.token0() - await WETHPartner.approve(router.address, MaxUint256) + const WETHPairToken0 = await wethPair.token0() + await wethPartner.approve(dxswapRouter.address, MaxUint256) await expect( - router.addLiquidityETH( - WETHPartner.address, + dxswapRouter.addLiquidityETH( + wethPartner.address, WETHPartnerAmount, WETHPartnerAmount, ETHAmount, @@ -111,29 +123,29 @@ describe('DXswapRouter', () => { { ...overrides, value: ETHAmount } ) ) - .to.emit(WETHPair, 'Transfer') + .to.emit(wethPair, 'Transfer') .withArgs(AddressZero, AddressZero, MINIMUM_LIQUIDITY) - .to.emit(WETHPair, 'Transfer') + .to.emit(wethPair, 'Transfer') .withArgs(AddressZero, wallet.address, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) - .to.emit(WETHPair, 'Sync') + .to.emit(wethPair, 'Sync') .withArgs( - WETHPairToken0 === WETHPartner.address ? WETHPartnerAmount : ETHAmount, - WETHPairToken0 === WETHPartner.address ? ETHAmount : WETHPartnerAmount + WETHPairToken0 === wethPartner.address ? WETHPartnerAmount : ETHAmount, + WETHPairToken0 === wethPartner.address ? ETHAmount : WETHPartnerAmount ) - .to.emit(WETHPair, 'Mint') + .to.emit(wethPair, 'Mint') .withArgs( - router.address, - WETHPairToken0 === WETHPartner.address ? WETHPartnerAmount : ETHAmount, - WETHPairToken0 === WETHPartner.address ? ETHAmount : WETHPartnerAmount + dxswapRouter.address, + WETHPairToken0 === wethPartner.address ? WETHPartnerAmount : ETHAmount, + WETHPairToken0 === wethPartner.address ? ETHAmount : WETHPartnerAmount ) - expect(await WETHPair.balanceOf(wallet.address)).to.eq(expectedLiquidity.sub(MINIMUM_LIQUIDITY)) + expect(await wethPair.balanceOf(wallet.address)).to.eq(expectedLiquidity.sub(MINIMUM_LIQUIDITY)) }) async function addLiquidity(token0Amount: BigNumber, token1Amount: BigNumber) { - await token0.transfer(pair.address, token0Amount) - await token1.transfer(pair.address, token1Amount) - await pair.mint(wallet.address, overrides) + await token0.transfer(dxswapPair.address, token0Amount) + await token1.transfer(dxswapPair.address, token1Amount) + await dxswapPair.mint(wallet.address, overrides) } it('removeLiquidity', async () => { const token0Amount = expandTo18Decimals(1) @@ -141,9 +153,9 @@ describe('DXswapRouter', () => { await addLiquidity(token0Amount, token1Amount) const expectedLiquidity = expandTo18Decimals(2) - await pair.approve(router.address, MaxUint256) + await dxswapPair.approve(dxswapRouter.address, MaxUint256) await expect( - router.removeLiquidity( + dxswapRouter.removeLiquidity( token0.address, token1.address, expectedLiquidity.sub(MINIMUM_LIQUIDITY), @@ -154,20 +166,20 @@ describe('DXswapRouter', () => { overrides ) ) - .to.emit(pair, 'Transfer') - .withArgs(wallet.address, pair.address, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) - .to.emit(pair, 'Transfer') - .withArgs(pair.address, AddressZero, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) + .to.emit(dxswapPair, 'Transfer') + .withArgs(wallet.address, dxswapPair.address, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) + .to.emit(dxswapPair, 'Transfer') + .withArgs(dxswapPair.address, AddressZero, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) .to.emit(token0, 'Transfer') - .withArgs(pair.address, wallet.address, token0Amount.sub(500)) + .withArgs(dxswapPair.address, wallet.address, token0Amount.sub(500)) .to.emit(token1, 'Transfer') - .withArgs(pair.address, wallet.address, token1Amount.sub(2000)) - .to.emit(pair, 'Sync') + .withArgs(dxswapPair.address, wallet.address, token1Amount.sub(2000)) + .to.emit(dxswapPair, 'Sync') .withArgs(500, 2000) - .to.emit(pair, 'Burn') - .withArgs(router.address, token0Amount.sub(500), token1Amount.sub(2000), wallet.address) + .to.emit(dxswapPair, 'Burn') + .withArgs(dxswapRouter.address, token0Amount.sub(500), token1Amount.sub(2000), wallet.address) - expect(await pair.balanceOf(wallet.address)).to.eq(0) + expect(await dxswapPair.balanceOf(wallet.address)).to.eq(0) const totalSupplyToken0 = await token0.totalSupply() const totalSupplyToken1 = await token1.totalSupply() expect(await token0.balanceOf(wallet.address)).to.eq(totalSupplyToken0.sub(500)) @@ -177,17 +189,17 @@ describe('DXswapRouter', () => { it('removeLiquidityETH', async () => { const WETHPartnerAmount = expandTo18Decimals(1) const ETHAmount = expandTo18Decimals(4) - await WETHPartner.transfer(WETHPair.address, WETHPartnerAmount) - await WETH.deposit({ value: ETHAmount }) - await WETH.transfer(WETHPair.address, ETHAmount) - await WETHPair.mint(wallet.address, overrides) + await wethPartner.transfer(wethPair.address, WETHPartnerAmount) + await weth.deposit({ value: ETHAmount }) + await weth.transfer(wethPair.address, ETHAmount) + await wethPair.mint(wallet.address, overrides) const expectedLiquidity = expandTo18Decimals(2) - const WETHPairToken0 = await WETHPair.token0() - await WETHPair.approve(router.address, MaxUint256) + const WETHPairToken0 = await wethPair.token0() + await wethPair.approve(dxswapRouter.address, MaxUint256) await expect( - router.removeLiquidityETH( - WETHPartner.address, + dxswapRouter.removeLiquidityETH( + wethPartner.address, expectedLiquidity.sub(MINIMUM_LIQUIDITY), 0, 0, @@ -196,118 +208,202 @@ describe('DXswapRouter', () => { overrides ) ) - .to.emit(WETHPair, 'Transfer') - .withArgs(wallet.address, WETHPair.address, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) - .to.emit(WETHPair, 'Transfer') - .withArgs(WETHPair.address, AddressZero, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) - .to.emit(WETH, 'Transfer') - .withArgs(WETHPair.address, router.address, ETHAmount.sub(2000)) - .to.emit(WETHPartner, 'Transfer') - .withArgs(WETHPair.address, router.address, WETHPartnerAmount.sub(500)) - .to.emit(WETHPartner, 'Transfer') - .withArgs(router.address, wallet.address, WETHPartnerAmount.sub(500)) - .to.emit(WETHPair, 'Sync') + .to.emit(wethPair, 'Transfer') + .withArgs(wallet.address, wethPair.address, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) + .to.emit(wethPair, 'Transfer') + .withArgs(wethPair.address, AddressZero, expectedLiquidity.sub(MINIMUM_LIQUIDITY)) + .to.emit(weth, 'Transfer') + .withArgs(wethPair.address, dxswapRouter.address, ETHAmount.sub(2000)) + .to.emit(wethPartner, 'Transfer') + .withArgs(wethPair.address, dxswapRouter.address, WETHPartnerAmount.sub(500)) + .to.emit(wethPartner, 'Transfer') + .withArgs(dxswapRouter.address, wallet.address, WETHPartnerAmount.sub(500)) + .to.emit(wethPair, 'Sync') .withArgs( - WETHPairToken0 === WETHPartner.address ? 500 : 2000, - WETHPairToken0 === WETHPartner.address ? 2000 : 500 + WETHPairToken0 === wethPartner.address ? 500 : 2000, + WETHPairToken0 === wethPartner.address ? 2000 : 500 ) - .to.emit(WETHPair, 'Burn') + .to.emit(wethPair, 'Burn') .withArgs( - router.address, - WETHPairToken0 === WETHPartner.address ? WETHPartnerAmount.sub(500) : ETHAmount.sub(2000), - WETHPairToken0 === WETHPartner.address ? ETHAmount.sub(2000) : WETHPartnerAmount.sub(500), - router.address + dxswapRouter.address, + WETHPairToken0 === wethPartner.address ? WETHPartnerAmount.sub(500) : ETHAmount.sub(2000), + WETHPairToken0 === wethPartner.address ? ETHAmount.sub(2000) : WETHPartnerAmount.sub(500), + dxswapRouter.address ) - expect(await WETHPair.balanceOf(wallet.address)).to.eq(0) - const totalSupplyWETHPartner = await WETHPartner.totalSupply() - const totalSupplyWETH = await WETH.totalSupply() - expect(await WETHPartner.balanceOf(wallet.address)).to.eq(totalSupplyWETHPartner.sub(500)) - expect(await WETH.balanceOf(wallet.address)).to.eq(totalSupplyWETH.sub(2000)) + expect(await wethPair.balanceOf(wallet.address)).to.eq(0) + const totalSupplyWETHPartner = await wethPartner.totalSupply() + const totalSupplyWETH = await weth.totalSupply() + expect(await wethPartner.balanceOf(wallet.address)).to.eq(totalSupplyWETHPartner.sub(500)) + expect(await weth.balanceOf(wallet.address)).to.eq(totalSupplyWETH.sub(2000)) }) - it('removeLiquidityWithPermit', async () => { - const token0Amount = expandTo18Decimals(1) - const token1Amount = expandTo18Decimals(4) - await addLiquidity(token0Amount, token1Amount) + describe('removeWithPermit', () => { + let privateKey: string + let customWallet: Wallet + let customSigner: SignerWithAddress - const expectedLiquidity = expandTo18Decimals(2) + // create random wallet to get private key used to generate signature + beforeEach('set custom wallet', async function () { + customWallet = ethers.Wallet.createRandom().connect(ethers.provider); + privateKey = customWallet.privateKey - const nonce = await pair.nonces(wallet.address) - const digest = await getApprovalDigest( - pair, - { owner: wallet.address, spender: router.address, value: expectedLiquidity.sub(MINIMUM_LIQUIDITY) }, - nonce, - MaxUint256 - ) + await network.provider.request({ + method: "hardhat_impersonateAccount", + params: [customWallet.address] + }) - const { v, r, s } = ecsign(Buffer.from(digest.slice(2), 'hex'), Buffer.from(wallet.privateKey.slice(2), 'hex')) + customSigner = await ethers.getSigner(customWallet.address) - await router.removeLiquidityWithPermit( - token0.address, - token1.address, - expectedLiquidity.sub(MINIMUM_LIQUIDITY), - 0, - 0, - wallet.address, - MaxUint256, - false, - v, - r, - s, - overrides - ) - }) + await wallet.sendTransaction({ + value: expandTo18Decimals(100), + to: customSigner.address, + }); + }) - it('removeLiquidityETHWithPermit', async () => { - const WETHPartnerAmount = expandTo18Decimals(1) - const ETHAmount = expandTo18Decimals(4) - await WETHPartner.transfer(WETHPair.address, WETHPartnerAmount) - await WETH.deposit({ value: ETHAmount }) - await WETH.transfer(WETHPair.address, ETHAmount) - await WETHPair.mint(wallet.address, overrides) + beforeEach('deploy fixture', async function () { + const fixture = await dxswapFixture(customSigner) + token0 = fixture.token0 + token1 = fixture.token1 + weth = fixture.WETH + wethPartner = fixture.WETHPartner + wethPair = fixture.WETHPair + dxswapPair = fixture.dxswapPair + dxswapRouter = fixture.dxswapRouter + DTT = fixture.DTT + wethDttPair = fixture.WETHDTTPair + }) - const expectedLiquidity = expandTo18Decimals(2) + it('removeLiquidityWithPermit', async () => { + const token0Amount = expandTo18Decimals(1) + const token1Amount = expandTo18Decimals(4) - const nonce = await WETHPair.nonces(wallet.address) - const digest = await getApprovalDigest( - WETHPair, - { owner: wallet.address, spender: router.address, value: expectedLiquidity.sub(MINIMUM_LIQUIDITY) }, - nonce, - MaxUint256 - ) + await token0.transfer(dxswapPair.address, token0Amount) + await token1.transfer(dxswapPair.address, token1Amount) + await dxswapPair.mint(customSigner.address, overrides) - const { v, r, s } = ecsign(Buffer.from(digest.slice(2), 'hex'), Buffer.from(wallet.privateKey.slice(2), 'hex')) + const expectedLiquidity = expandTo18Decimals(2) - await router.removeLiquidityETHWithPermit( - WETHPartner.address, - expectedLiquidity.sub(MINIMUM_LIQUIDITY), - 0, - 0, - wallet.address, - MaxUint256, - false, - v, - r, - s, - overrides - ) + const nonce = await dxswapPair.nonces(customSigner.address) + const digest = await getApprovalDigest( + dxswapPair, + { owner: customSigner.address, spender: dxswapRouter.address, value: expectedLiquidity.sub(MINIMUM_LIQUIDITY) }, + nonce, + MaxUint256 + ) + const { v, r, s } = ecsign(Buffer.from(digest.slice(2), 'hex'), Buffer.from(privateKey.slice(2), 'hex')) + + await dxswapRouter.removeLiquidityWithPermit( + token0.address, + token1.address, + expectedLiquidity.sub(MINIMUM_LIQUIDITY), + 0, + 0, + customSigner.address, + MaxUint256, + false, + v, + r, + s, + overrides + ) + }) + + it('removeLiquidityETHWithPermit', async () => { + const WETHPartnerAmount = expandTo18Decimals(1) + const ETHAmount = expandTo18Decimals(4) + await wethPartner.transfer(wethPair.address, WETHPartnerAmount) + await weth.deposit({ value: ETHAmount }) + await weth.transfer(wethPair.address, ETHAmount) + await wethPair.mint(customSigner.address, overrides) + + const expectedLiquidity = expandTo18Decimals(2) + + const nonce = await wethPair.nonces(wallet.address) + const digest = await getApprovalDigest( + wethPair, + { owner: customSigner.address, spender: dxswapRouter.address, value: expectedLiquidity.sub(MINIMUM_LIQUIDITY) }, + nonce, + MaxUint256 + ) + + const { v, r, s } = ecsign(Buffer.from(digest.slice(2), 'hex'), Buffer.from(privateKey.slice(2), 'hex')) + + await dxswapRouter.removeLiquidityETHWithPermit( + wethPartner.address, + expectedLiquidity.sub(MINIMUM_LIQUIDITY), + 0, + 0, + customSigner.address, + MaxUint256, + false, + v, + r, + s, + overrides + ) + }) + + it('removeLiquidityETHWithPermitSupportingFeeOnTransferTokens', async () => { + const DTTAmount = expandTo18Decimals(1) + .mul(100) + .div(99) + const ETHAmount = expandTo18Decimals(4) + + await DTT.transfer(wethDttPair.address, DTTAmount) + await weth.deposit({ value: ETHAmount }) + await weth.transfer(wethDttPair.address, ETHAmount) + await wethDttPair.mint(customSigner.address, overrides) + + const expectedLiquidity = expandTo18Decimals(2) + + const nonce = await dxswapPair.nonces(customSigner.address) + const digest = await getApprovalDigest( + wethDttPair, + { owner: customSigner.address, spender: dxswapRouter.address, value: expectedLiquidity.sub(MINIMUM_LIQUIDITY) }, + nonce, + MaxUint256 + ) + const { v, r, s } = ecsign(Buffer.from(digest.slice(2), 'hex'), Buffer.from(privateKey.slice(2), 'hex')) + + const DTTInPair = await DTT.balanceOf(wethDttPair.address) + const WETHInPair = await weth.balanceOf(wethDttPair.address) + const liquidity = await wethDttPair.balanceOf(customSigner.address) + const totalSupply = await wethDttPair.totalSupply() + const NaiveDTTExpected = DTTInPair.mul(liquidity).div(totalSupply) + const WETHExpected = WETHInPair.mul(liquidity).div(totalSupply) + + await wethDttPair.approve(dxswapRouter.address, MaxUint256) + await dxswapRouter.removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + DTT.address, + liquidity, + NaiveDTTExpected, + WETHExpected, + customSigner.address, + MaxUint256, + false, + v, + r, + s, + overrides + ) + }) }) describe('swapExactTokensForTokens', () => { const token0Amount = expandTo18Decimals(5) const token1Amount = expandTo18Decimals(10) const swapAmount = expandTo18Decimals(1) - const expectedOutputAmount = bigNumberify('1663192997082117548') + const expectedOutputAmount = ethers.BigNumber.from('1663192997082117548') beforeEach(async () => { await addLiquidity(token0Amount, token1Amount) - await token0.approve(router.address, MaxUint256) + await token0.approve(dxswapRouter.address, MaxUint256) }) it('happy path', async () => { await expect( - router.swapExactTokensForTokens( + dxswapRouter.swapExactTokensForTokens( swapAmount, 0, [token0.address, token1.address], @@ -317,20 +413,20 @@ describe('DXswapRouter', () => { ) ) .to.emit(token0, 'Transfer') - .withArgs(wallet.address, pair.address, swapAmount) + .withArgs(wallet.address, dxswapPair.address, swapAmount) .to.emit(token1, 'Transfer') - .withArgs(pair.address, wallet.address, expectedOutputAmount) - .to.emit(pair, 'Sync') + .withArgs(dxswapPair.address, wallet.address, expectedOutputAmount) + .to.emit(dxswapPair, 'Sync') .withArgs(token0Amount.add(swapAmount), token1Amount.sub(expectedOutputAmount)) - .to.emit(pair, 'Swap') - .withArgs(router.address, swapAmount, 0, 0, expectedOutputAmount, wallet.address) + .to.emit(dxswapPair, 'Swap') + .withArgs(dxswapRouter.address, swapAmount, 0, 0, expectedOutputAmount, wallet.address) }) it('amounts', async () => { await token0.approve(routerEventEmitter.address, MaxUint256) await expect( routerEventEmitter.swapExactTokensForTokens( - router.address, + dxswapRouter.address, swapAmount, 0, [token0.address, token1.address], @@ -346,11 +442,11 @@ describe('DXswapRouter', () => { it('gas', async () => { // ensure that setting price{0,1}CumulativeLast for the first time doesn't affect our gas math await mineBlock(provider, (await provider.getBlock('latest')).timestamp + 1) - await pair.sync(overrides) + await dxswapPair.sync(overrides) - await token0.approve(router.address, MaxUint256) + await token0.approve(dxswapRouter.address, MaxUint256) await mineBlock(provider, (await provider.getBlock('latest')).timestamp + 1) - const tx = await router.swapExactTokensForTokens( + const tx = await dxswapRouter.swapExactTokensForTokens( swapAmount, 0, [token0.address, token1.address], @@ -359,14 +455,14 @@ describe('DXswapRouter', () => { overrides ) const receipt = await tx.wait() - expect(receipt.gasUsed).to.eq(108651) + expect(receipt.gasUsed).to.eq(103507) }).retries(3) }) describe('swapTokensForExactTokens', () => { const token0Amount = expandTo18Decimals(5) const token1Amount = expandTo18Decimals(10) - const expectedSwapAmount = bigNumberify('556947925368978001') + const expectedSwapAmount = ethers.BigNumber.from('556947925368978001') const outputAmount = expandTo18Decimals(1) beforeEach(async () => { @@ -374,9 +470,9 @@ describe('DXswapRouter', () => { }) it('happy path', async () => { - await token0.approve(router.address, MaxUint256) + await token0.approve(dxswapRouter.address, MaxUint256) await expect( - router.swapTokensForExactTokens( + dxswapRouter.swapTokensForExactTokens( outputAmount, MaxUint256, [token0.address, token1.address], @@ -386,20 +482,20 @@ describe('DXswapRouter', () => { ) ) .to.emit(token0, 'Transfer') - .withArgs(wallet.address, pair.address, expectedSwapAmount) + .withArgs(wallet.address, dxswapPair.address, expectedSwapAmount) .to.emit(token1, 'Transfer') - .withArgs(pair.address, wallet.address, outputAmount) - .to.emit(pair, 'Sync') + .withArgs(dxswapPair.address, wallet.address, outputAmount) + .to.emit(dxswapPair, 'Sync') .withArgs(token0Amount.add(expectedSwapAmount), token1Amount.sub(outputAmount)) - .to.emit(pair, 'Swap') - .withArgs(router.address, expectedSwapAmount, 0, 0, outputAmount, wallet.address) + .to.emit(dxswapPair, 'Swap') + .withArgs(dxswapRouter.address, expectedSwapAmount, 0, 0, outputAmount, wallet.address) }) it('amounts', async () => { await token0.approve(routerEventEmitter.address, MaxUint256) await expect( routerEventEmitter.swapTokensForExactTokens( - router.address, + dxswapRouter.address, outputAmount, MaxUint256, [token0.address, token1.address], @@ -417,45 +513,45 @@ describe('DXswapRouter', () => { const WETHPartnerAmount = expandTo18Decimals(10) const ETHAmount = expandTo18Decimals(5) const swapAmount = expandTo18Decimals(1) - const expectedOutputAmount = bigNumberify('1663192997082117548') + const expectedOutputAmount = ethers.BigNumber.from('1663192997082117548') beforeEach(async () => { - await WETHPartner.transfer(WETHPair.address, WETHPartnerAmount) - await WETH.deposit({ value: ETHAmount }) - await WETH.transfer(WETHPair.address, ETHAmount) - await WETHPair.mint(wallet.address, overrides) + await wethPartner.transfer(wethPair.address, WETHPartnerAmount) + await weth.deposit({ value: ETHAmount }) + await weth.transfer(wethPair.address, ETHAmount) + await wethPair.mint(wallet.address, overrides) - await token0.approve(router.address, MaxUint256) + await token0.approve(dxswapRouter.address, MaxUint256) }) it('happy path', async () => { - const WETHPairToken0 = await WETHPair.token0() + const WETHPairToken0 = await wethPair.token0() await expect( - router.swapExactETHForTokens(0, [WETH.address, WETHPartner.address], wallet.address, MaxUint256, { + dxswapRouter.swapExactETHForTokens(0, [weth.address, wethPartner.address], wallet.address, MaxUint256, { ...overrides, value: swapAmount }) ) - .to.emit(WETH, 'Transfer') - .withArgs(router.address, WETHPair.address, swapAmount) - .to.emit(WETHPartner, 'Transfer') - .withArgs(WETHPair.address, wallet.address, expectedOutputAmount) - .to.emit(WETHPair, 'Sync') + .to.emit(weth, 'Transfer') + .withArgs(dxswapRouter.address, wethPair.address, swapAmount) + .to.emit(wethPartner, 'Transfer') + .withArgs(wethPair.address, wallet.address, expectedOutputAmount) + .to.emit(wethPair, 'Sync') .withArgs( - WETHPairToken0 === WETHPartner.address + WETHPairToken0 === wethPartner.address ? WETHPartnerAmount.sub(expectedOutputAmount) : ETHAmount.add(swapAmount), - WETHPairToken0 === WETHPartner.address + WETHPairToken0 === wethPartner.address ? ETHAmount.add(swapAmount) : WETHPartnerAmount.sub(expectedOutputAmount) ) - .to.emit(WETHPair, 'Swap') + .to.emit(wethPair, 'Swap') .withArgs( - router.address, - WETHPairToken0 === WETHPartner.address ? 0 : swapAmount, - WETHPairToken0 === WETHPartner.address ? swapAmount : 0, - WETHPairToken0 === WETHPartner.address ? expectedOutputAmount : 0, - WETHPairToken0 === WETHPartner.address ? 0 : expectedOutputAmount, + dxswapRouter.address, + WETHPairToken0 === wethPartner.address ? 0 : swapAmount, + WETHPairToken0 === wethPartner.address ? swapAmount : 0, + WETHPairToken0 === wethPartner.address ? expectedOutputAmount : 0, + WETHPairToken0 === wethPartner.address ? 0 : expectedOutputAmount, wallet.address ) }) @@ -463,9 +559,9 @@ describe('DXswapRouter', () => { it('amounts', async () => { await expect( routerEventEmitter.swapExactETHForTokens( - router.address, + dxswapRouter.address, 0, - [WETH.address, WETHPartner.address], + [weth.address, wethPartner.address], wallet.address, MaxUint256, { @@ -481,20 +577,20 @@ describe('DXswapRouter', () => { it('gas', async () => { const WETHPartnerAmount = expandTo18Decimals(10) const ETHAmount = expandTo18Decimals(5) - await WETHPartner.transfer(WETHPair.address, WETHPartnerAmount) - await WETH.deposit({ value: ETHAmount }) - await WETH.transfer(WETHPair.address, ETHAmount) - await WETHPair.mint(wallet.address, overrides) + await wethPartner.transfer(wethPair.address, WETHPartnerAmount) + await weth.deposit({ value: ETHAmount }) + await weth.transfer(wethPair.address, ETHAmount) + await wethPair.mint(wallet.address, overrides) // ensure that setting price{0,1}CumulativeLast for the first time doesn't affect our gas math await mineBlock(provider, (await provider.getBlock('latest')).timestamp + 1) - await pair.sync(overrides) + await dxswapPair.sync(overrides) const swapAmount = expandTo18Decimals(1) await mineBlock(provider, (await provider.getBlock('latest')).timestamp + 1) - const tx = await router.swapExactETHForTokens( + const tx = await dxswapRouter.swapExactETHForTokens( 0, - [WETH.address, WETHPartner.address], + [weth.address, wethPartner.address], wallet.address, MaxUint256, { @@ -503,68 +599,68 @@ describe('DXswapRouter', () => { } ) const receipt = await tx.wait() - expect(receipt.gasUsed).to.eq(145626) + expect(receipt.gasUsed).to.eq(106726) }).retries(3) }) describe('swapTokensForExactETH', () => { const WETHPartnerAmount = expandTo18Decimals(5) const ETHAmount = expandTo18Decimals(10) - const expectedSwapAmount = bigNumberify('556947925368978001') + const expectedSwapAmount = ethers.BigNumber.from('556947925368978001') const outputAmount = expandTo18Decimals(1) beforeEach(async () => { - await WETHPartner.transfer(WETHPair.address, WETHPartnerAmount) - await WETH.deposit({ value: ETHAmount }) - await WETH.transfer(WETHPair.address, ETHAmount) - await WETHPair.mint(wallet.address, overrides) + await wethPartner.transfer(wethPair.address, WETHPartnerAmount) + await weth.deposit({ value: ETHAmount }) + await weth.transfer(wethPair.address, ETHAmount) + await wethPair.mint(wallet.address, overrides) }) it('happy path', async () => { - await WETHPartner.approve(router.address, MaxUint256) - const WETHPairToken0 = await WETHPair.token0() + await wethPartner.approve(dxswapRouter.address, MaxUint256) + const WETHPairToken0 = await wethPair.token0() await expect( - router.swapTokensForExactETH( + dxswapRouter.swapTokensForExactETH( outputAmount, MaxUint256, - [WETHPartner.address, WETH.address], + [wethPartner.address, weth.address], wallet.address, MaxUint256, overrides ) ) - .to.emit(WETHPartner, 'Transfer') - .withArgs(wallet.address, WETHPair.address, expectedSwapAmount) - .to.emit(WETH, 'Transfer') - .withArgs(WETHPair.address, router.address, outputAmount) - .to.emit(WETHPair, 'Sync') + .to.emit(wethPartner, 'Transfer') + .withArgs(wallet.address, wethPair.address, expectedSwapAmount) + .to.emit(weth, 'Transfer') + .withArgs(wethPair.address, dxswapRouter.address, outputAmount) + .to.emit(wethPair, 'Sync') .withArgs( - WETHPairToken0 === WETHPartner.address + WETHPairToken0 === wethPartner.address ? WETHPartnerAmount.add(expectedSwapAmount) : ETHAmount.sub(outputAmount), - WETHPairToken0 === WETHPartner.address + WETHPairToken0 === wethPartner.address ? ETHAmount.sub(outputAmount) : WETHPartnerAmount.add(expectedSwapAmount) ) - .to.emit(WETHPair, 'Swap') + .to.emit(wethPair, 'Swap') .withArgs( - router.address, - WETHPairToken0 === WETHPartner.address ? expectedSwapAmount : 0, - WETHPairToken0 === WETHPartner.address ? 0 : expectedSwapAmount, - WETHPairToken0 === WETHPartner.address ? 0 : outputAmount, - WETHPairToken0 === WETHPartner.address ? outputAmount : 0, - router.address + dxswapRouter.address, + WETHPairToken0 === wethPartner.address ? expectedSwapAmount : 0, + WETHPairToken0 === wethPartner.address ? 0 : expectedSwapAmount, + WETHPairToken0 === wethPartner.address ? 0 : outputAmount, + WETHPairToken0 === wethPartner.address ? outputAmount : 0, + dxswapRouter.address ) }) it('amounts', async () => { - await WETHPartner.approve(routerEventEmitter.address, MaxUint256) + await wethPartner.approve(routerEventEmitter.address, MaxUint256) await expect( routerEventEmitter.swapTokensForExactETH( - router.address, + dxswapRouter.address, outputAmount, MaxUint256, - [WETHPartner.address, WETH.address], + [wethPartner.address, weth.address], wallet.address, MaxUint256, overrides @@ -579,60 +675,60 @@ describe('DXswapRouter', () => { const WETHPartnerAmount = expandTo18Decimals(5) const ETHAmount = expandTo18Decimals(10) const swapAmount = expandTo18Decimals(1) - const expectedOutputAmount = bigNumberify('1663192997082117548') + const expectedOutputAmount = ethers.BigNumber.from('1663192997082117548') beforeEach(async () => { - await WETHPartner.transfer(WETHPair.address, WETHPartnerAmount) - await WETH.deposit({ value: ETHAmount }) - await WETH.transfer(WETHPair.address, ETHAmount) - await WETHPair.mint(wallet.address, overrides) + await wethPartner.transfer(wethPair.address, WETHPartnerAmount) + await weth.deposit({ value: ETHAmount }) + await weth.transfer(wethPair.address, ETHAmount) + await wethPair.mint(wallet.address, overrides) }) it('happy path', async () => { - await WETHPartner.approve(router.address, MaxUint256) - const WETHPairToken0 = await WETHPair.token0() + await wethPartner.approve(dxswapRouter.address, MaxUint256) + const WETHPairToken0 = await wethPair.token0() await expect( - router.swapExactTokensForETH( + dxswapRouter.swapExactTokensForETH( swapAmount, 0, - [WETHPartner.address, WETH.address], + [wethPartner.address, weth.address], wallet.address, MaxUint256, overrides ) ) - .to.emit(WETHPartner, 'Transfer') - .withArgs(wallet.address, WETHPair.address, swapAmount) - .to.emit(WETH, 'Transfer') - .withArgs(WETHPair.address, router.address, expectedOutputAmount) - .to.emit(WETHPair, 'Sync') + .to.emit(wethPartner, 'Transfer') + .withArgs(wallet.address, wethPair.address, swapAmount) + .to.emit(weth, 'Transfer') + .withArgs(wethPair.address, dxswapRouter.address, expectedOutputAmount) + .to.emit(wethPair, 'Sync') .withArgs( - WETHPairToken0 === WETHPartner.address + WETHPairToken0 === wethPartner.address ? WETHPartnerAmount.add(swapAmount) : ETHAmount.sub(expectedOutputAmount), - WETHPairToken0 === WETHPartner.address + WETHPairToken0 === wethPartner.address ? ETHAmount.sub(expectedOutputAmount) : WETHPartnerAmount.add(swapAmount) ) - .to.emit(WETHPair, 'Swap') + .to.emit(wethPair, 'Swap') .withArgs( - router.address, - WETHPairToken0 === WETHPartner.address ? swapAmount : 0, - WETHPairToken0 === WETHPartner.address ? 0 : swapAmount, - WETHPairToken0 === WETHPartner.address ? 0 : expectedOutputAmount, - WETHPairToken0 === WETHPartner.address ? expectedOutputAmount : 0, - router.address + dxswapRouter.address, + WETHPairToken0 === wethPartner.address ? swapAmount : 0, + WETHPairToken0 === wethPartner.address ? 0 : swapAmount, + WETHPairToken0 === wethPartner.address ? 0 : expectedOutputAmount, + WETHPairToken0 === wethPartner.address ? expectedOutputAmount : 0, + dxswapRouter.address ) }) it('amounts', async () => { - await WETHPartner.approve(routerEventEmitter.address, MaxUint256) + await wethPartner.approve(routerEventEmitter.address, MaxUint256) await expect( routerEventEmitter.swapExactTokensForETH( - router.address, + dxswapRouter.address, swapAmount, 0, - [WETHPartner.address, WETH.address], + [wethPartner.address, weth.address], wallet.address, MaxUint256, overrides @@ -646,44 +742,44 @@ describe('DXswapRouter', () => { describe('swapETHForExactTokens', () => { const WETHPartnerAmount = expandTo18Decimals(10) const ETHAmount = expandTo18Decimals(5) - const expectedSwapAmount = bigNumberify('556947925368978001') + const expectedSwapAmount = ethers.BigNumber.from('556947925368978001') const outputAmount = expandTo18Decimals(1) beforeEach(async () => { - await WETHPartner.transfer(WETHPair.address, WETHPartnerAmount) - await WETH.deposit({ value: ETHAmount }) - await WETH.transfer(WETHPair.address, ETHAmount) - await WETHPair.mint(wallet.address, overrides) + await wethPartner.transfer(wethPair.address, WETHPartnerAmount) + await weth.deposit({ value: ETHAmount }) + await weth.transfer(wethPair.address, ETHAmount) + await wethPair.mint(wallet.address, overrides) }) it('happy path', async () => { - const WETHPairToken0 = await WETHPair.token0() + const WETHPairToken0 = await wethPair.token0() await expect( - router.swapETHForExactTokens(outputAmount, [WETH.address, WETHPartner.address], wallet.address, MaxUint256, { + dxswapRouter.swapETHForExactTokens(outputAmount, [weth.address, wethPartner.address], wallet.address, MaxUint256, { ...overrides, value: expectedSwapAmount }) ) - .to.emit(WETH, 'Transfer') - .withArgs(router.address, WETHPair.address, expectedSwapAmount) - .to.emit(WETHPartner, 'Transfer') - .withArgs(WETHPair.address, wallet.address, outputAmount) - .to.emit(WETHPair, 'Sync') + .to.emit(weth, 'Transfer') + .withArgs(dxswapRouter.address, wethPair.address, expectedSwapAmount) + .to.emit(wethPartner, 'Transfer') + .withArgs(wethPair.address, wallet.address, outputAmount) + .to.emit(wethPair, 'Sync') .withArgs( - WETHPairToken0 === WETHPartner.address + WETHPairToken0 === wethPartner.address ? WETHPartnerAmount.sub(outputAmount) : ETHAmount.add(expectedSwapAmount), - WETHPairToken0 === WETHPartner.address + WETHPairToken0 === wethPartner.address ? ETHAmount.add(expectedSwapAmount) : WETHPartnerAmount.sub(outputAmount) ) - .to.emit(WETHPair, 'Swap') + .to.emit(wethPair, 'Swap') .withArgs( - router.address, - WETHPairToken0 === WETHPartner.address ? 0 : expectedSwapAmount, - WETHPairToken0 === WETHPartner.address ? expectedSwapAmount : 0, - WETHPairToken0 === WETHPartner.address ? outputAmount : 0, - WETHPairToken0 === WETHPartner.address ? 0 : outputAmount, + dxswapRouter.address, + WETHPairToken0 === wethPartner.address ? 0 : expectedSwapAmount, + WETHPairToken0 === wethPartner.address ? expectedSwapAmount : 0, + WETHPairToken0 === wethPartner.address ? outputAmount : 0, + WETHPairToken0 === wethPartner.address ? 0 : outputAmount, wallet.address ) }) @@ -691,9 +787,9 @@ describe('DXswapRouter', () => { it('amounts', async () => { await expect( routerEventEmitter.swapETHForExactTokens( - router.address, + dxswapRouter.address, outputAmount, - [WETH.address, WETHPartner.address], + [weth.address, wethPartner.address], wallet.address, MaxUint256, { @@ -708,57 +804,57 @@ describe('DXswapRouter', () => { }) it('quote', async () => { - expect(await router.quote(bigNumberify(1), bigNumberify(100), bigNumberify(200))).to.eq(bigNumberify(2)) - expect(await router.quote(bigNumberify(2), bigNumberify(200), bigNumberify(100))).to.eq(bigNumberify(1)) - await expect(router.quote(bigNumberify(0), bigNumberify(100), bigNumberify(200))).to.be.revertedWith( + expect(await dxswapRouter.quote(ethers.BigNumber.from(1), ethers.BigNumber.from(100), ethers.BigNumber.from(200))).to.eq(ethers.BigNumber.from(2)) + expect(await dxswapRouter.quote(ethers.BigNumber.from(2), ethers.BigNumber.from(200), ethers.BigNumber.from(100))).to.eq(ethers.BigNumber.from(1)) + await expect(dxswapRouter.quote(ethers.BigNumber.from(0), ethers.BigNumber.from(100), ethers.BigNumber.from(200))).to.be.revertedWith( 'DXswapLibrary: INSUFFICIENT_AMOUNT' ) - await expect(router.quote(bigNumberify(1), bigNumberify(0), bigNumberify(200))).to.be.revertedWith( + await expect(dxswapRouter.quote(ethers.BigNumber.from(1), ethers.BigNumber.from(0), ethers.BigNumber.from(200))).to.be.revertedWith( 'DXswapLibrary: INSUFFICIENT_LIQUIDITY' ) - await expect(router.quote(bigNumberify(1), bigNumberify(100), bigNumberify(0))).to.be.revertedWith( + await expect(dxswapRouter.quote(ethers.BigNumber.from(1), ethers.BigNumber.from(100), ethers.BigNumber.from(0))).to.be.revertedWith( 'DXswapLibrary: INSUFFICIENT_LIQUIDITY' ) }) it('getAmountOut', async () => { - expect(await router.getAmountOut(bigNumberify(2), bigNumberify(100), bigNumberify(100), bigNumberify(30))).to.eq( - bigNumberify(1) + expect(await dxswapRouter.getAmountOut(ethers.BigNumber.from(2), ethers.BigNumber.from(100), ethers.BigNumber.from(100), ethers.BigNumber.from(30))).to.eq( + ethers.BigNumber.from(1) ) await expect( - router.getAmountOut(bigNumberify(0), bigNumberify(100), bigNumberify(100), bigNumberify(30)) + dxswapRouter.getAmountOut(ethers.BigNumber.from(0), ethers.BigNumber.from(100), ethers.BigNumber.from(100), ethers.BigNumber.from(30)) ).to.be.revertedWith('DXswapLibrary: INSUFFICIENT_INPUT_AMOUNT') await expect( - router.getAmountOut(bigNumberify(2), bigNumberify(0), bigNumberify(100), bigNumberify(30)) + dxswapRouter.getAmountOut(ethers.BigNumber.from(2), ethers.BigNumber.from(0), ethers.BigNumber.from(100), ethers.BigNumber.from(30)) ).to.be.revertedWith('DXswapLibrary: INSUFFICIENT_LIQUIDITY') await expect( - router.getAmountOut(bigNumberify(2), bigNumberify(100), bigNumberify(0), bigNumberify(30)) + dxswapRouter.getAmountOut(ethers.BigNumber.from(2), ethers.BigNumber.from(100), ethers.BigNumber.from(0), ethers.BigNumber.from(30)) ).to.be.revertedWith('DXswapLibrary: INSUFFICIENT_LIQUIDITY') }) it('getAmountIn', async () => { - expect(await router.getAmountIn(bigNumberify(1), bigNumberify(100), bigNumberify(100), bigNumberify(30))).to.eq( - bigNumberify(2) + expect(await dxswapRouter.getAmountIn(ethers.BigNumber.from(1), ethers.BigNumber.from(100), ethers.BigNumber.from(100), ethers.BigNumber.from(30))).to.eq( + ethers.BigNumber.from(2) ) await expect( - router.getAmountIn(bigNumberify(0), bigNumberify(100), bigNumberify(100), bigNumberify(30)) + dxswapRouter.getAmountIn(ethers.BigNumber.from(0), ethers.BigNumber.from(100), ethers.BigNumber.from(100), ethers.BigNumber.from(30)) ).to.be.revertedWith('DXswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT') await expect( - router.getAmountIn(bigNumberify(1), bigNumberify(0), bigNumberify(100), bigNumberify(30)) + dxswapRouter.getAmountIn(ethers.BigNumber.from(1), ethers.BigNumber.from(0), ethers.BigNumber.from(100), ethers.BigNumber.from(30)) ).to.be.revertedWith('DXswapLibrary: INSUFFICIENT_LIQUIDITY') await expect( - router.getAmountIn(bigNumberify(1), bigNumberify(100), bigNumberify(0), bigNumberify(30)) + dxswapRouter.getAmountIn(ethers.BigNumber.from(1), ethers.BigNumber.from(100), ethers.BigNumber.from(0), ethers.BigNumber.from(30)) ).to.be.revertedWith('DXswapLibrary: INSUFFICIENT_LIQUIDITY') }) it('getAmountsOut', async () => { - await token0.approve(router.address, MaxUint256) - await token1.approve(router.address, MaxUint256) - await router.addLiquidity( + await token0.approve(dxswapRouter.address, MaxUint256) + await token1.approve(dxswapRouter.address, MaxUint256) + await dxswapRouter.addLiquidity( token0.address, token1.address, - bigNumberify(10000), - bigNumberify(10000), + ethers.BigNumber.from(10000), + ethers.BigNumber.from(10000), 0, 0, wallet.address, @@ -766,21 +862,21 @@ describe('DXswapRouter', () => { overrides ) - await expect(router.getAmountsOut(bigNumberify(2), [token0.address])).to.be.revertedWith( + await expect(dxswapRouter.getAmountsOut(ethers.BigNumber.from(2), [token0.address])).to.be.revertedWith( 'DXswapLibrary: INVALID_PATH' ) const path = [token0.address, token1.address] - expect(await router.getAmountsOut(bigNumberify(2), path)).to.deep.eq([bigNumberify(2), bigNumberify(1)]) + expect(await dxswapRouter.getAmountsOut(ethers.BigNumber.from(2), path)).to.deep.eq([ethers.BigNumber.from(2), ethers.BigNumber.from(1)]) }) it('getAmountsIn', async () => { - await token0.approve(router.address, MaxUint256) - await token1.approve(router.address, MaxUint256) - await router.addLiquidity( + await token0.approve(dxswapRouter.address, MaxUint256) + await token1.approve(dxswapRouter.address, MaxUint256) + await dxswapRouter.addLiquidity( token0.address, token1.address, - bigNumberify(10000), - bigNumberify(10000), + ethers.BigNumber.from(10000), + ethers.BigNumber.from(10000), 0, 0, wallet.address, @@ -788,48 +884,48 @@ describe('DXswapRouter', () => { overrides ) - await expect(router.getAmountsIn(bigNumberify(1), [token0.address])).to.be.revertedWith( + await expect(dxswapRouter.getAmountsIn(ethers.BigNumber.from(1), [token0.address])).to.be.revertedWith( 'DXswapLibrary: INVALID_PATH' ) const path = [token0.address, token1.address] - expect(await router.getAmountsIn(bigNumberify(1), path)).to.deep.eq([bigNumberify(2), bigNumberify(1)]) + expect(await dxswapRouter.getAmountsIn(ethers.BigNumber.from(1), path)).to.deep.eq([ethers.BigNumber.from(2), ethers.BigNumber.from(1)]) }) }) -describe('fee-on-transfer tokens', () => { - const provider = new MockProvider({ - hardfork: 'istanbul', - mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn', - gasLimit: 9999999 - }) - const [wallet] = provider.getWallets() - const loadFixture = createFixtureLoader(provider, [wallet]) - - let DTT: Contract - let WETH: Contract - let router: Contract - let pair: Contract - beforeEach(async function() { - const fixture = await loadFixture(dxswapFixture) - - WETH = fixture.WETH - router = fixture.router - - DTT = await deployContract(wallet, DeflatingERC20, [expandTo18Decimals(10000)]) - - // make a DTT<>WETH pair - await fixture.dxswapFactory.createPair(DTT.address, WETH.address) - const pairAddress = await fixture.dxswapFactory.getPair(DTT.address, WETH.address) - pair = new Contract(pairAddress, JSON.stringify(IDXswapPair.abi), provider).connect(wallet) +describe('DxswapRouter: fee-on-transfer tokens', () => { + const provider = ethers.provider + + let DTT: DeflatingERC20 + let DTT2: DeflatingERC20 + let dxswapRouter: DXswapRouter + let dxswapPair: DXswapPair + let weth: WETH9 + let wallet: SignerWithAddress + let routerEventEmitter: RouterEventEmitter + let dxswapFactory: DXswapFactory + let WETHDTTPair: DXswapPair + + beforeEach(async function () { + const signers = await ethers.getSigners() + wallet = signers[0] + const fixture = await dxswapFixture(wallet) + dxswapRouter = fixture.dxswapRouter + dxswapFactory = fixture.dxswapFactory + weth = fixture.WETH + routerEventEmitter = fixture.routerEventEmitter + DTT = fixture.DTT + DTT2 = fixture.DTT2 + WETHDTTPair = fixture.WETHDTTPair + dxswapPair = fixture.dxswapPair }) - afterEach(async function() { - expect(await provider.getBalance(router.address)).to.eq(0) + afterEach(async function () { + expect(await provider.getBalance(dxswapRouter.address)).to.eq(0) }) async function addLiquidity(DTTAmount: BigNumber, WETHAmount: BigNumber) { - await DTT.approve(router.address, MaxUint256) - await router.addLiquidityETH(DTT.address, DTTAmount, DTTAmount, WETHAmount, wallet.address, MaxUint256, { + await DTT.approve(dxswapRouter.address, MaxUint256) + await dxswapRouter.addLiquidityETH(DTT.address, DTTAmount, DTTAmount, WETHAmount, wallet.address, MaxUint256, { ...overrides, value: WETHAmount }) @@ -840,62 +936,22 @@ describe('fee-on-transfer tokens', () => { const ETHAmount = expandTo18Decimals(4) await addLiquidity(DTTAmount, ETHAmount) - const DTTInPair = await DTT.balanceOf(pair.address) - const WETHInPair = await WETH.balanceOf(pair.address) - const liquidity = await pair.balanceOf(wallet.address) - const totalSupply = await pair.totalSupply() + const DTTInPair = await DTT.balanceOf(WETHDTTPair.address) + const WETHInPair = await weth.balanceOf(WETHDTTPair.address) + const liquidity = await WETHDTTPair.balanceOf(wallet.address) + const totalSupply = await WETHDTTPair.totalSupply() const NaiveDTTExpected = DTTInPair.mul(liquidity).div(totalSupply) const WETHExpected = WETHInPair.mul(liquidity).div(totalSupply) - await pair.approve(router.address, MaxUint256) - await router.removeLiquidityETHSupportingFeeOnTransferTokens( - DTT.address, - liquidity, - NaiveDTTExpected, - WETHExpected, - wallet.address, - MaxUint256, - overrides - ) - }) - - it('removeLiquidityETHWithPermitSupportingFeeOnTransferTokens', async () => { - const DTTAmount = expandTo18Decimals(1) - .mul(100) - .div(99) - const ETHAmount = expandTo18Decimals(4) - await addLiquidity(DTTAmount, ETHAmount) - - const expectedLiquidity = expandTo18Decimals(2) + await WETHDTTPair.approve(dxswapRouter.address, MaxUint256) - const nonce = await pair.nonces(wallet.address) - const digest = await getApprovalDigest( - pair, - { owner: wallet.address, spender: router.address, value: expectedLiquidity.sub(MINIMUM_LIQUIDITY) }, - nonce, - MaxUint256 - ) - const { v, r, s } = ecsign(Buffer.from(digest.slice(2), 'hex'), Buffer.from(wallet.privateKey.slice(2), 'hex')) - - const DTTInPair = await DTT.balanceOf(pair.address) - const WETHInPair = await WETH.balanceOf(pair.address) - const liquidity = await pair.balanceOf(wallet.address) - const totalSupply = await pair.totalSupply() - const NaiveDTTExpected = DTTInPair.mul(liquidity).div(totalSupply) - const WETHExpected = WETHInPair.mul(liquidity).div(totalSupply) - - await pair.approve(router.address, MaxUint256) - await router.removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + await dxswapRouter.removeLiquidityETHSupportingFeeOnTransferTokens( DTT.address, liquidity, NaiveDTTExpected, WETHExpected, wallet.address, MaxUint256, - false, - v, - r, - s, overrides ) }) @@ -911,28 +967,28 @@ describe('fee-on-transfer tokens', () => { await addLiquidity(DTTAmount, ETHAmount) }) - it('DTT -> WETH', async () => { - await DTT.approve(router.address, MaxUint256) + it('DTT -> weth', async () => { + await DTT.approve(dxswapRouter.address, MaxUint256) - await router.swapExactTokensForTokensSupportingFeeOnTransferTokens( + await dxswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens( amountIn, 0, - [DTT.address, WETH.address], + [DTT.address, weth.address], wallet.address, MaxUint256, overrides ) }) - // WETH -> DTT - it('WETH -> DTT', async () => { - await WETH.deposit({ value: amountIn }) // mint WETH - await WETH.approve(router.address, MaxUint256) + // weth -> DTT + it('weth -> DTT', async () => { + await weth.deposit({ value: amountIn }) // mint weth + await weth.approve(dxswapRouter.address, MaxUint256) - await router.swapExactTokensForTokensSupportingFeeOnTransferTokens( + await dxswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens( amountIn, 0, - [WETH.address, DTT.address], + [weth.address, DTT.address], wallet.address, MaxUint256, overrides @@ -949,9 +1005,9 @@ describe('fee-on-transfer tokens', () => { const swapAmount = expandTo18Decimals(1) await addLiquidity(DTTAmount, ETHAmount) - await router.swapExactETHForTokensSupportingFeeOnTransferTokens( + await dxswapRouter.swapExactETHForTokensSupportingFeeOnTransferTokens( 0, - [WETH.address, DTT.address], + [weth.address, DTT.address], wallet.address, MaxUint256, { @@ -970,12 +1026,12 @@ describe('fee-on-transfer tokens', () => { const swapAmount = expandTo18Decimals(1) await addLiquidity(DTTAmount, ETHAmount) - await DTT.approve(router.address, MaxUint256) + await DTT.approve(dxswapRouter.address, MaxUint256) - await router.swapExactTokensForETHSupportingFeeOnTransferTokens( + await dxswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( swapAmount, 0, - [DTT.address, WETH.address], + [DTT.address, weth.address], wallet.address, MaxUint256, overrides @@ -983,39 +1039,39 @@ describe('fee-on-transfer tokens', () => { }) }) -describe('fee-on-transfer tokens: reloaded', () => { - const provider = new MockProvider({ - hardfork: 'istanbul', - mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn', - gasLimit: 9999999 - }) - const [wallet] = provider.getWallets() - const loadFixture = createFixtureLoader(provider, [wallet]) +describe('DxswapRouter: fee-on-transfer tokens: reloaded', () => { + const provider = ethers.provider + + let DTT: DeflatingERC20 + let DTT2: DeflatingERC20 + let dxswapRouter: DXswapRouter + let wallet: SignerWithAddress + + beforeEach(async function () { + const signers = await ethers.getSigners() + wallet = signers[0] - let DTT: Contract - let DTT2: Contract - let router: Contract - beforeEach(async function() { - const fixture = await loadFixture(dxswapFixture) + const fixture = await dxswapFixture(wallet) + dxswapRouter = fixture.dxswapRouter - router = fixture.router + const tokenTotalSupply = expandTo18Decimals(21000000) - DTT = await deployContract(wallet, DeflatingERC20, [expandTo18Decimals(10000)]) - DTT2 = await deployContract(wallet, DeflatingERC20, [expandTo18Decimals(10000)]) + DTT = await new DeflatingERC20__factory(wallet).deploy(tokenTotalSupply) + DTT2 = await new DeflatingERC20__factory(wallet).deploy(tokenTotalSupply) - // make a DTT<>WETH pair + // make a DTT<>weth dxswapPair await fixture.dxswapFactory.createPair(DTT.address, DTT2.address) const pairAddress = await fixture.dxswapFactory.getPair(DTT.address, DTT2.address) }) - afterEach(async function() { - expect(await provider.getBalance(router.address)).to.eq(0) + afterEach(async function () { + expect(await provider.getBalance(dxswapRouter.address)).to.eq(0) }) async function addLiquidity(DTTAmount: BigNumber, DTT2Amount: BigNumber) { - await DTT.approve(router.address, MaxUint256) - await DTT2.approve(router.address, MaxUint256) - await router.addLiquidity( + await DTT.approve(dxswapRouter.address, MaxUint256) + await DTT2.approve(dxswapRouter.address, MaxUint256) + await dxswapRouter.addLiquidity( DTT.address, DTT2.address, DTTAmount, @@ -1040,9 +1096,9 @@ describe('fee-on-transfer tokens: reloaded', () => { }) it('DTT -> DTT2', async () => { - await DTT.approve(router.address, MaxUint256) + await DTT.approve(dxswapRouter.address, MaxUint256) - await router.swapExactTokensForTokensSupportingFeeOnTransferTokens( + await dxswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens( amountIn, 0, [DTT.address, DTT2.address], diff --git a/test/DXswapTradeRelayer.spec.ts b/test/DXswapTradeRelayer.spec.ts new file mode 100644 index 00000000..08aa7182 --- /dev/null +++ b/test/DXswapTradeRelayer.spec.ts @@ -0,0 +1,598 @@ +import "@nomiclabs/hardhat-ethers"; +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' +import { constants, utils, BigNumber } from 'ethers' +import { expect } from 'chai' +import { ethers } from 'hardhat'; +import { Address } from 'hardhat-deploy/dist/types' +import { dxswapFixture } from './shared/fixtures' +import { expandTo18Decimals, mineBlock } from './shared/utilities' +import { DXswapFactory, DXswapPair, DXswapRouter, ERC20Mintable, OracleCreator, DXswapTradeRelayer, WETH9 } from './../typechain' + +const { AddressZero } = constants + +const overrides = { + gasLimit: 14999999 +} + +describe('DXswapTradeRelayer', () => { + let token0: ERC20Mintable + let token1: ERC20Mintable + let token2: ERC20Mintable + let weth: WETH9 + let wethPartner: ERC20Mintable + let wethPair: DXswapPair + let uniWethPair: DXswapPair + let dxswapPair: DXswapPair + let dxswapFactory: DXswapFactory + let dxswapRouter: DXswapRouter + let uniPair: DXswapPair + let uniFactory: DXswapFactory + let uniRouter: DXswapRouter + let oracleCreator: OracleCreator + let dxTrade: DXswapTradeRelayer + let owner: Address + + let dxdao: SignerWithAddress + let wallet2: SignerWithAddress + + let initBalanceTokenIn: BigNumber + let initBalanceTokenOut: BigNumber + let amountToken0: BigNumber + let amountToken1: BigNumber + + async function addLiquidity(amount0: BigNumber = defaultAmountALiquidity, amount1: BigNumber = defaultAmountBLiquidity) { + if (!amount0.isZero()) await token0.transfer(dxswapPair.address, amount0) + if (!amount1.isZero()) await token1.transfer(dxswapPair.address, amount1) + await dxswapPair.mint(dxTrade.address, overrides) + } + + const defaultAmountIn = expandTo18Decimals(3) + const defaultAmountOutZero = expandTo18Decimals(0) + const defaultAmountALiquidity = expandTo18Decimals(10) + const defaultAmountBLiquidity = expandTo18Decimals(10) + const expectedLiquidity = expandTo18Decimals(2) + const defaultPriceTolerance = 10000 // 10000 = 1% + const defaultMinReserve = expandTo18Decimals(1) + const defaultMaxWindowTime = 300 // 5 Minutes + const GAS_ORACLE_UPDATE = 178792; + const provider = ethers.provider + + // 1/1/2020 @ 12:00 am UTC + // cannot be 0 because that instructs ganache to set it to current timestamp + // cannot be 86400 because then timestamp 0 is a valid historical observation + let startTime = 1893499200 + let defaultDeadline = startTime + 86400 // 24 hours + + // must come before adding liquidity to pairs for correct cumulative price computations + // cannot use 0 because that resets to current timestamp + // beforeEach(`set start time to ${startTime}`, async () => await mineBlock(provider, startTime)) + + beforeEach('assign wallets', async function () { + const signers = await ethers.getSigners() + dxdao = signers[0] + wallet2 = signers[1] + }) + + beforeEach('deploy fixture', async function () { + const fixture = await dxswapFixture(dxdao) + token0 = fixture.token0 + token1 = fixture.token1 + token2 = fixture.token2 + weth = fixture.WETH + wethPartner = fixture.WETHPartner + wethPair = fixture.WETHPair + uniWethPair = fixture.uniWETHPair + dxswapPair = fixture.dxswapPair + dxswapFactory = fixture.dxswapFactory + dxswapRouter = fixture.dxswapRouter + uniRouter = fixture.uniRouter + uniPair = fixture.uniPair + uniFactory = fixture.uniFactory + oracleCreator = fixture.oracleCreator + dxTrade = fixture.dxTrade + + }) + + beforeEach('fund the relayer contract to spend ERC20s and ETH', async () => { + await token0.transfer(dxTrade.address, expandTo18Decimals(1000)) + await token1.transfer(dxTrade.address, expandTo18Decimals(1000)) + await wethPartner.transfer(dxTrade.address, expandTo18Decimals(1000)) + await wallet2.sendTransaction({ + to: dxTrade.address, + value: utils.parseEther('50') + }) + owner = await dxTrade.owner() + }) + + beforeEach('set timestamp', async () => { + const lastTime = (await provider.getBlock("latest")).timestamp; + startTime = lastTime; + defaultDeadline = startTime + 86400 + }) + + describe('Input conditions', () => { + it('require correct INIT_CODE_PAIR_HASH', async () => { + expect(await dxswapFactory.INIT_CODE_PAIR_HASH()).to.be.equal('0xc30284a6e09f4f63686442b7046014b946fdb3e6c00d48b549eda87070a98167') + }) + + it('requires correct order input', async () => { + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + token0.address + ) + ).to.be.revertedWith('DXswapRelayer: INVALID_FACTORY') + + const dxTradeFromWallet2 = dxTrade.connect(wallet2) + await expect( + dxTradeFromWallet2.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ).to.be.revertedWith('DXswapRelayer: CALLER_NOT_OWNER') + + await expect( + dxTrade.createSwapOrder( + token1.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ).to.be.revertedWith('DXswapRelayer: INVALID_PAIR') + + await expect( + dxTrade.createSwapOrder( + token1.address, + token0.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ).to.be.revertedWith('DXswapRelayer: INVALID_TOKEN_ORDER') + + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + 0, + 0, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ).to.be.revertedWith('DXswapRelayer: INVALID_TOKEN_AMOUNT') + + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountIn, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ).to.be.revertedWith('DXswapRelayer: INVALID_TOKEN_AMOUNT') + + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + 1000000000, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ).to.be.revertedWith('DXswapRelayer: INVALID_TOLERANCE') + + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + 1577836800, + dxswapFactory.address + ) + ).to.be.revertedWith('DXswapRelayer: DEADLINE_REACHED') + }) + + it('requires sufficient ETH balance', async () => { + await expect( + dxTrade.createSwapOrder( + AddressZero, + wethPartner.address, + expandTo18Decimals(1243), + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ).to.be.revertedWith('DXswapRelayer: INSUFFICIENT_ETH') + }) + }) + + describe('Swap transactions', () => { + it('swap ERC20/ERC20 pair on Uniswap tokenA -> tokenB', async () => { + initBalanceTokenIn = await token0.balanceOf(dxTrade.address); + initBalanceTokenOut = await token1.balanceOf(dxTrade.address); + amountToken0 = expandTo18Decimals(880) + amountToken1 = expandTo18Decimals(880) + // add liquidity to uniswap to provide oracle + await token0.transfer(uniPair.address, amountToken0) + await token1.transfer(uniPair.address, amountToken1) + // mint lp tokens for dxdao + await uniPair.mint(dxTrade.address, overrides) + + await mineBlock(provider, startTime + 10) + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + uniFactory.address + ) + ) + .to.emit(dxTrade, 'NewOrder') + .withArgs(0) + + await dxTrade.updateOracle(0) + await mineBlock(provider, startTime + 350) + await dxTrade.updateOracle(0) + await mineBlock(provider, startTime + 700) + + const fee = await uniPair.swapFee() + const amountOut = await dxswapRouter.getAmountOut(defaultAmountIn, amountToken0, amountToken1, fee) + + await expect(dxTrade.executeOrder(0, overrides)) + .to.emit(dxTrade, 'ExecutedOrder') + .withArgs(0) + + expect(await token0.balanceOf(dxTrade.address)).to.eq(initBalanceTokenIn.sub(defaultAmountIn)); + expect(await token1.balanceOf(dxTrade.address)).to.eq(initBalanceTokenIn.add(amountOut)) + }) + + it('swap ERC20/ERC20 DXswap with price = 2', async () => { + initBalanceTokenIn = await token0.balanceOf(dxTrade.address); + initBalanceTokenOut = await token1.balanceOf(dxTrade.address); + await addLiquidity(expandTo18Decimals(400), expandTo18Decimals(800)) + await mineBlock(provider, startTime + 10) + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ) + .to.emit(dxTrade, 'NewOrder') + .withArgs(0) + + await dxTrade.updateOracle(0) + await mineBlock(provider, startTime + 350) + await dxTrade.updateOracle(0) + await mineBlock(provider, startTime + 700) + const fee = await dxswapPair.swapFee(); + const amountOut = await dxswapRouter.getAmountOut(defaultAmountIn, expandTo18Decimals(400), expandTo18Decimals(800), fee) + + await expect(dxTrade.executeOrder(0, overrides)) + .to.emit(dxswapPair, 'Swap') + .withArgs(dxswapRouter.address, defaultAmountIn, 0, 0, amountOut, dxTrade.address) + .to.emit(dxTrade, 'ExecutedOrder') + .withArgs(0) + + expect(await token0.balanceOf(dxTrade.address)).to.eq(initBalanceTokenIn.sub(defaultAmountIn)) + expect(await token1.balanceOf(dxTrade.address)).to.eq(initBalanceTokenOut.add(amountOut)) + }) + + it('swap ETH/ERC20 pair on Uniswap', async () => { + // get addresses of sorted pair tokens + const token0Address = await uniWethPair.token0() + const token0 = weth.address === token0Address ? weth : wethPartner + const token1 = weth.address === token0Address ? wethPartner : weth + + amountToken0 = expandTo18Decimals(480) + amountToken1 = expandTo18Decimals(480) + + await weth.deposit({ ...overrides, value: expandTo18Decimals(800) }) + await weth.transfer(uniWethPair.address, amountToken0) + await wethPartner.transfer(uniWethPair.address, amountToken1) + await uniWethPair.mint(dxdao.address) + + await expect( + dxTrade.createSwapOrder( + AddressZero, + wethPartner.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + uniFactory.address + ) + ) + .to.emit(dxTrade, 'NewOrder') + .withArgs(0) + + await mineBlock(provider, startTime + 10) + await dxTrade.updateOracle(0) + await mineBlock(provider, startTime + 350) + await dxTrade.updateOracle(0) + await mineBlock(provider, startTime + 700) + + const fee = await uniWethPair.swapFee() + const amountOut = await uniRouter.getAmountOut(defaultAmountIn, amountToken0, amountToken1, fee) + + initBalanceTokenIn = await provider.getBalance(dxTrade.address) + initBalanceTokenOut = await wethPartner.balanceOf(dxTrade.address); + + await expect(dxTrade.executeOrder(0, overrides)) + .to.emit(dxTrade, 'ExecutedOrder') + .withArgs(0) + .to.emit(uniWethPair, 'Sync') + .withArgs(await token0.balanceOf(uniWethPair.address), await token1.balanceOf(uniWethPair.address)) + + // dxTrade contract balance + expect(await wethPartner.balanceOf(dxTrade.address)).to.eq(initBalanceTokenOut.add(amountOut)) + expect(await provider.getBalance(dxTrade.address)).to.eq(initBalanceTokenIn.sub(defaultAmountIn)) + + // pool balance + expect(await wethPartner.balanceOf(uniWethPair.address)).to.eq(amountToken1.sub(amountOut)) + expect(await weth.balanceOf(uniWethPair.address)).to.eq(amountToken0.add(defaultAmountIn)) + }) + + it('swap ETH/ERC20 DXswap', async () => { + // get addresses of sorted pair tokens + const token0Address = await wethPair.token0() + const token0 = weth.address === token0Address ? weth : wethPartner + const token1 = weth.address === token0Address ? wethPartner : weth + + amountToken0 = expandTo18Decimals(400) + amountToken1 = expandTo18Decimals(400) + await weth.deposit({ ...overrides, value: expandTo18Decimals(800) }) + await weth.transfer(wethPair.address, amountToken0) + await wethPartner.transfer(wethPair.address, amountToken1) + await wethPair.mint(dxdao.address) + + await expect( + dxTrade.createSwapOrder( + AddressZero, + wethPartner.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address, + { ...overrides, value: defaultAmountIn } + ) + ) + .to.emit(dxTrade, 'NewOrder') + .withArgs(0) + + await mineBlock(provider, startTime + 10) + await dxTrade.updateOracle(0) + await mineBlock(provider, startTime + 350) + await dxTrade.updateOracle(0) + await mineBlock(provider, startTime + 700) + + const fee = await wethPair.swapFee() + const amountOut = await dxswapRouter.getAmountOut(defaultAmountIn, amountToken0, amountToken1, fee) + initBalanceTokenIn = await provider.getBalance(dxTrade.address) + initBalanceTokenOut = await wethPartner.balanceOf(dxTrade.address); + + await expect(dxTrade.executeOrder(0, overrides)) + .to.emit(dxTrade, 'ExecutedOrder') + .withArgs(0) + .to.emit(wethPair, 'Sync') + .withArgs(await token0.balanceOf(wethPair.address), await token1.balanceOf(wethPair.address)) + + // dxTrade contract balance + expect(await wethPartner.balanceOf(dxTrade.address)).to.eq(initBalanceTokenOut.add(amountOut)) + expect(await provider.getBalance(dxTrade.address)).to.eq(initBalanceTokenIn.sub(defaultAmountIn)) + + // pool balance + expect(await wethPartner.balanceOf(wethPair.address)).to.eq(amountToken1.sub(amountOut)) + expect(await weth.balanceOf(wethPair.address)).to.eq(amountToken0.add(defaultAmountIn)) + }) + + it('swap ERC20/ERC20 LP address invalid', async () => { + await weth.deposit({ ...overrides, value: expandTo18Decimals(800) }) + await weth.transfer(wethPair.address, expandTo18Decimals(400)) + await wethPartner.transfer(wethPair.address, expandTo18Decimals(400)) + + + await expect( + dxTrade.createSwapOrder( + AddressZero, + token2.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address, + { ...overrides, value: defaultAmountIn } + ) + ) + .to.be.revertedWith('DXswapRelayer: INVALID_PAIR_ADDRESS') + }) + }) + + describe('Oracle price calculation', () => { + it('reverts oracle update if minReserve is not reached', async () => { + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ) + .to.emit(dxTrade, 'NewOrder') + .withArgs(0) + + await expect(dxTrade.updateOracle(0)).to.be.revertedWith('DXswapRelayer: RESERVE_TOO_LOW') + }) + + it('updates price oracle', async () => { + await addLiquidity(expandTo18Decimals(10), expandTo18Decimals(40)) + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ) + .to.emit(dxTrade, 'NewOrder') + .withArgs(0) + + await dxTrade.updateOracle(0) + await expect(dxTrade.updateOracle(0)).to.be.revertedWith('OracleCreator: PERIOD_NOT_ELAPSED') + await mineBlock(provider, startTime + 350) + await dxTrade.updateOracle(0) + }) + + it('consumes expected gas amount to update the price oracle', async () => { + await addLiquidity(expandTo18Decimals(10), expandTo18Decimals(40)) + await mineBlock(provider, startTime + 10) + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + defaultMinReserve, + defaultMinReserve, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ) + .to.emit(dxTrade, 'NewOrder') + .withArgs(0) + + let tx = await dxTrade.updateOracle(0) + let receipt = await provider.getTransactionReceipt(tx.hash) + expect(receipt.gasUsed).to.eq(ethers.BigNumber.from(GAS_ORACLE_UPDATE)) + }) + }) + + describe('Ownership and deadlines', () => { + it('withdraws an order after expiration', async () => { + await addLiquidity(expandTo18Decimals(10), expandTo18Decimals(40)) + const startBalance0 = await token0.balanceOf(owner) + const startBalance1 = await token1.balanceOf(owner) + + await expect( + dxTrade.createSwapOrder( + token0.address, + token1.address, + defaultAmountIn, + defaultAmountOutZero, + defaultPriceTolerance, + 0, + 0, + defaultMaxWindowTime, + defaultDeadline, + dxswapFactory.address + ) + ) + .to.emit(dxTrade, 'NewOrder') + .withArgs(0) + + await mineBlock(provider, startTime + 10) + await dxTrade.updateOracle(0) + await expect(dxTrade.withdrawExpiredOrder(0)).to.be.revertedWith('DXswapRelayer: DEADLINE_NOT_REACHED') + await mineBlock(provider, defaultDeadline + 500) + await dxTrade.withdrawExpiredOrder(0) + expect(await token0.balanceOf(owner)).to.eq(startBalance0.add(defaultAmountIn)) + expect(await token1.balanceOf(owner)).to.eq(startBalance1.add(defaultAmountOutZero)) + }) + + it('should let the owner transfer ownership', async () => { + const oldOwner = await dxTrade.owner() + const newOwner = token0.address + await expect(dxTrade.transferOwnership(newOwner)) + .to.emit(dxTrade, 'OwnershipTransferred') + .withArgs(oldOwner, newOwner) + expect(await dxTrade.owner()).to.be.equal(newOwner) + }) + }) +}) diff --git a/test/ExampleOracleSimple.spec.ts b/test/ExampleOracleSimple.spec.ts deleted file mode 100644 index 026f7368..00000000 --- a/test/ExampleOracleSimple.spec.ts +++ /dev/null @@ -1,70 +0,0 @@ -import chai, { expect } from 'chai' -import { Contract } from 'ethers' -import { BigNumber } from 'ethers/utils' -import { solidity, MockProvider, createFixtureLoader, deployContract } from 'ethereum-waffle' - -import { expandTo18Decimals, mineBlock, encodePrice } from './shared/utilities' -import { dxswapFixture } from './shared/fixtures' - -import ExampleOracleSimple from '../build/ExampleOracleSimple.json' - -chai.use(solidity) - -const overrides = { - gasLimit: 9999999 -} - -const token0Amount = expandTo18Decimals(5) -const token1Amount = expandTo18Decimals(10) - -describe('ExampleOracleSimple', () => { - const provider = new MockProvider({ - hardfork: 'istanbul', - mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn', - gasLimit: 9999999 - }) - const [wallet] = provider.getWallets() - const loadFixture = createFixtureLoader(provider, [wallet]) - - let token0: Contract - let token1: Contract - let pair: Contract - let exampleOracleSimple: Contract - - async function addLiquidity() { - await token0.transfer(pair.address, token0Amount) - await token1.transfer(pair.address, token1Amount) - await pair.mint(wallet.address, overrides) - } - - beforeEach(async function() { - const fixture = await loadFixture(dxswapFixture) - - token0 = fixture.token0 - token1 = fixture.token1 - pair = fixture.pair - await addLiquidity() - exampleOracleSimple = await deployContract( - wallet, - ExampleOracleSimple, - [fixture.dxswapFactory.address, token0.address, token1.address], - overrides - ) - }) - - it('update', async () => { - const blockTimestamp = (await pair.getReserves())[2] - await mineBlock(provider, blockTimestamp + 60 * 60 * 23) - await expect(exampleOracleSimple.update(overrides)).to.be.reverted - await mineBlock(provider, blockTimestamp + 60 * 60 * 24) - await exampleOracleSimple.update(overrides) - - const expectedPrice = encodePrice(token0Amount, token1Amount) - - expect(await exampleOracleSimple.price0Average()).to.eq(expectedPrice[0]) - expect(await exampleOracleSimple.price1Average()).to.eq(expectedPrice[1]) - - expect(await exampleOracleSimple.consult(token0.address, token0Amount)).to.eq(token1Amount) - expect(await exampleOracleSimple.consult(token1.address, token1Amount)).to.eq(token0Amount) - }) -}) diff --git a/test/ExampleSlidingWindowOracle.spec.ts b/test/ExampleSlidingWindowOracle.spec.ts deleted file mode 100644 index 718d7329..00000000 --- a/test/ExampleSlidingWindowOracle.spec.ts +++ /dev/null @@ -1,294 +0,0 @@ -import chai, { expect } from 'chai' -import { Contract } from 'ethers' -import { BigNumber, bigNumberify } from 'ethers/utils' -import { solidity, MockProvider, createFixtureLoader, deployContract } from 'ethereum-waffle' - -import { expandTo18Decimals, mineBlock, encodePrice } from './shared/utilities' -import { dxswapFixture } from './shared/fixtures' - -import ExampleSlidingWindowOracle from '../build/ExampleSlidingWindowOracle.json' - -chai.use(solidity) - -const overrides = { - gasLimit: 9999999 -} - -const defaultToken0Amount = expandTo18Decimals(5) -const defaultToken1Amount = expandTo18Decimals(10) - -describe('ExampleSlidingWindowOracle', () => { - const provider = new MockProvider({ - hardfork: 'istanbul', - mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn', - gasLimit: 9999999 - }) - const [wallet] = provider.getWallets() - const loadFixture = createFixtureLoader(provider, [wallet]) - - let token0: Contract - let token1: Contract - let pair: Contract - let weth: Contract - let factory: Contract - - async function addLiquidity(amount0: BigNumber = defaultToken0Amount, amount1: BigNumber = defaultToken1Amount) { - if (!amount0.isZero()) await token0.transfer(pair.address, amount0) - if (!amount1.isZero()) await token1.transfer(pair.address, amount1) - await pair.sync() - } - - const defaultWindowSize = 86400 // 24 hours - const defaultGranularity = 24 // 1 hour each - - function observationIndexOf( - timestamp: number, - windowSize: number = defaultWindowSize, - granularity: number = defaultGranularity - ): number { - const periodSize = Math.floor(windowSize / granularity) - const epochPeriod = Math.floor(timestamp / periodSize) - return epochPeriod % granularity - } - - function deployOracle(windowSize: number, granularity: number) { - return deployContract(wallet, ExampleSlidingWindowOracle, [factory.address, windowSize, granularity], overrides) - } - - beforeEach('deploy fixture', async function() { - const fixture = await loadFixture(dxswapFixture) - - token0 = fixture.token0 - token1 = fixture.token1 - pair = fixture.pair - weth = fixture.WETH - factory = fixture.dxswapFactory - }) - - // 1/1/2020 @ 12:00 am UTC - // cannot be 0 because that instructs ganache to set it to current timestamp - // cannot be 86400 because then timestamp 0 is a valid historical observation - const startTime = 1577836800 - - // must come before adding liquidity to pairs for correct cumulative price computations - // cannot use 0 because that resets to current timestamp - beforeEach(`set start time to ${startTime}`, () => mineBlock(provider, startTime)) - - it('requires granularity to be greater than 0', async () => { - await expect(deployOracle(defaultWindowSize, 0)).to.be.revertedWith('SlidingWindowOracle: GRANULARITY') - }) - - it('requires windowSize to be evenly divisible by granularity', async () => { - await expect(deployOracle(defaultWindowSize - 1, defaultGranularity)).to.be.revertedWith( - 'SlidingWindowOracle: WINDOW_NOT_EVENLY_DIVISIBLE' - ) - }) - - it('computes the periodSize correctly', async () => { - const oracle = await deployOracle(defaultWindowSize, defaultGranularity) - expect(await oracle.periodSize()).to.eq(3600) - const oracleOther = await deployOracle(defaultWindowSize * 2, defaultGranularity / 2) - expect(await oracleOther.periodSize()).to.eq(3600 * 4) - }) - - describe('#observationIndexOf', () => { - it('works for examples', async () => { - const oracle = await deployOracle(defaultWindowSize, defaultGranularity) - expect(await oracle.observationIndexOf(0)).to.eq(0) - expect(await oracle.observationIndexOf(3599)).to.eq(0) - expect(await oracle.observationIndexOf(3600)).to.eq(1) - expect(await oracle.observationIndexOf(4800)).to.eq(1) - expect(await oracle.observationIndexOf(7199)).to.eq(1) - expect(await oracle.observationIndexOf(7200)).to.eq(2) - expect(await oracle.observationIndexOf(86399)).to.eq(23) - expect(await oracle.observationIndexOf(86400)).to.eq(0) - expect(await oracle.observationIndexOf(90000)).to.eq(1) - }) - it('overflow safe', async () => { - const oracle = await deployOracle(25500, 255) // 100 period size - expect(await oracle.observationIndexOf(0)).to.eq(0) - expect(await oracle.observationIndexOf(99)).to.eq(0) - expect(await oracle.observationIndexOf(100)).to.eq(1) - expect(await oracle.observationIndexOf(199)).to.eq(1) - expect(await oracle.observationIndexOf(25499)).to.eq(254) // 255th element - expect(await oracle.observationIndexOf(25500)).to.eq(0) - }) - it('matches offline computation', async () => { - const oracle = await deployOracle(defaultWindowSize, defaultGranularity) - for (let timestamp of [0, 5000, 1000, 25000, 86399, 86400, 86401]) { - expect(await oracle.observationIndexOf(timestamp)).to.eq(observationIndexOf(timestamp)) - } - }) - }) - - describe('#update', () => { - let slidingWindowOracle: Contract - - beforeEach( - 'deploy oracle', - async () => (slidingWindowOracle = await deployOracle(defaultWindowSize, defaultGranularity)) - ) - - beforeEach('add default liquidity', () => addLiquidity()) - - it('succeeds', async () => { - await slidingWindowOracle.update(token0.address, token1.address, overrides) - }) - - it('sets the appropriate epoch slot', async () => { - const blockTimestamp = (await pair.getReserves())[2] - expect(blockTimestamp).to.eq(startTime + 1) - await slidingWindowOracle.update(token0.address, token1.address, overrides) - expect(await slidingWindowOracle.pairObservations(pair.address, observationIndexOf(blockTimestamp))).to.deep.eq([ - bigNumberify(blockTimestamp), - await pair.price0CumulativeLast(), - await pair.price1CumulativeLast() - ]) - }).retries(2) // we may have slight differences between pair blockTimestamp and the expected timestamp - // because the previous block timestamp may differ from the current block timestamp by 1 second - - it('gas for first update (allocates empty array)', async () => { - const tx = await slidingWindowOracle.update(token0.address, token1.address, overrides) - const receipt = await tx.wait() - expect(receipt.gasUsed).to.eq('117302') - }).retries(2) // gas test inconsistent - - it('gas for second update in the same period (skips)', async () => { - await slidingWindowOracle.update(token0.address, token1.address, overrides) - const tx = await slidingWindowOracle.update(token0.address, token1.address, overrides) - const receipt = await tx.wait() - expect(receipt.gasUsed).to.eq('25688') - }).retries(2) // gas test inconsistent - - it('gas for second update different period (no allocate, no skip)', async () => { - await slidingWindowOracle.update(token0.address, token1.address, overrides) - await mineBlock(provider, startTime + 3600) - const tx = await slidingWindowOracle.update(token0.address, token1.address, overrides) - const receipt = await tx.wait() - expect(receipt.gasUsed).to.eq('94848') - }).retries(2) // gas test inconsistent - - it('second update in one timeslot does not overwrite', async () => { - await slidingWindowOracle.update(token0.address, token1.address, overrides) - const before = await slidingWindowOracle.pairObservations(pair.address, observationIndexOf(0)) - // first hour still - await mineBlock(provider, startTime + 1800) - await slidingWindowOracle.update(token0.address, token1.address, overrides) - const after = await slidingWindowOracle.pairObservations(pair.address, observationIndexOf(1800)) - expect(observationIndexOf(1800)).to.eq(observationIndexOf(0)) - expect(before).to.deep.eq(after) - }) - - it('fails for invalid pair', async () => { - await expect(slidingWindowOracle.update(weth.address, token1.address)).to.be.reverted - }) - }) - - describe('#consult', () => { - let slidingWindowOracle: Contract - - beforeEach( - 'deploy oracle', - async () => (slidingWindowOracle = await deployOracle(defaultWindowSize, defaultGranularity)) - ) - - // must come after setting time to 0 for correct cumulative price computations in the pair - beforeEach('add default liquidity', () => addLiquidity()) - - it('fails if previous bucket not set', async () => { - await slidingWindowOracle.update(token0.address, token1.address, overrides) - await expect(slidingWindowOracle.consult(token0.address, 0, token1.address)).to.be.revertedWith( - 'SlidingWindowOracle: MISSING_HISTORICAL_OBSERVATION' - ) - }) - - it('fails for invalid pair', async () => { - await expect(slidingWindowOracle.consult(weth.address, 0, token1.address)).to.be.reverted - }) - - describe('happy path', () => { - let blockTimestamp: number - let previousBlockTimestamp: number - let previousCumulativePrices: any - beforeEach('add some prices', async () => { - previousBlockTimestamp = (await pair.getReserves())[2] - previousCumulativePrices = [await pair.price0CumulativeLast(), await pair.price1CumulativeLast()] - await slidingWindowOracle.update(token0.address, token1.address, overrides) - blockTimestamp = previousBlockTimestamp + 23 * 3600 - await mineBlock(provider, blockTimestamp) - await slidingWindowOracle.update(token0.address, token1.address, overrides) - }) - - it('has cumulative price in previous bucket', async () => { - expect( - await slidingWindowOracle.pairObservations(pair.address, observationIndexOf(previousBlockTimestamp)) - ).to.deep.eq([bigNumberify(previousBlockTimestamp), previousCumulativePrices[0], previousCumulativePrices[1]]) - }).retries(5) // test flaky because timestamps aren't mocked - - it('has cumulative price in current bucket', async () => { - const timeElapsed = blockTimestamp - previousBlockTimestamp - const prices = encodePrice(defaultToken0Amount, defaultToken1Amount) - expect( - await slidingWindowOracle.pairObservations(pair.address, observationIndexOf(blockTimestamp)) - ).to.deep.eq([bigNumberify(blockTimestamp), prices[0].mul(timeElapsed), prices[1].mul(timeElapsed)]) - }).retries(5) // test flaky because timestamps aren't mocked - - it('provides the current ratio in consult token0', async () => { - expect(await slidingWindowOracle.consult(token0.address, 100, token1.address)).to.eq(200) - }) - - it('provides the current ratio in consult token1', async () => { - expect(await slidingWindowOracle.consult(token1.address, 100, token0.address)).to.eq(50) - }) - }) - - describe('price changes over period', () => { - const hour = 3600 - beforeEach('add some prices', async () => { - // starting price of 1:2, or token0 = 2token1, token1 = 0.5token0 - await slidingWindowOracle.update(token0.address, token1.address, overrides) // hour 0, 1:2 - // change the price at hour 3 to 1:1 and immediately update - await mineBlock(provider, startTime + 3 * hour) - await addLiquidity(defaultToken0Amount, bigNumberify(0)) - await slidingWindowOracle.update(token0.address, token1.address, overrides) - - // change the ratios at hour 6:00 to 2:1, don't update right away - await mineBlock(provider, startTime + 6 * hour) - await token0.transfer(pair.address, defaultToken0Amount.mul(2)) - await pair.sync() - - // update at hour 9:00 (price has been 2:1 for 3 hours, invokes counterfactual) - await mineBlock(provider, startTime + 9 * hour) - await slidingWindowOracle.update(token0.address, token1.address, overrides) - // move to hour 23:00 so we can check prices - await mineBlock(provider, startTime + 23 * hour) - }) - - it('provides the correct ratio in consult token0', async () => { - // at hour 23, price of token 0 spent 3 hours at 2, 3 hours at 1, 17 hours at 0.5 so price should - // be less than 1 - expect(await slidingWindowOracle.consult(token0.address, 100, token1.address)).to.eq(76) - }) - - it('provides the correct ratio in consult token1', async () => { - // price should be greater than 1 - expect(await slidingWindowOracle.consult(token1.address, 100, token0.address)).to.eq(167) - }) - - // price has been 2:1 all of 23 hours - describe('hour 32', () => { - beforeEach('set hour 32', () => mineBlock(provider, startTime + 32 * hour)) - it('provides the correct ratio in consult token0', async () => { - // at hour 23, price of token 0 spent 3 hours at 2, 3 hours at 1, 17 hours at 0.5 so price should - // be less than 1 - expect(await slidingWindowOracle.consult(token0.address, 100, token1.address)).to.eq(50) - }) - - it('provides the correct ratio in consult token1', async () => { - // price should be greater than 1 - expect(await slidingWindowOracle.consult(token1.address, 100, token0.address)).to.eq(200) - }) - }) - }) - }) -}) diff --git a/test/ExampleSwapToPrice.spec.ts b/test/ExampleSwapToPrice.spec.ts deleted file mode 100644 index ca4eff32..00000000 --- a/test/ExampleSwapToPrice.spec.ts +++ /dev/null @@ -1,198 +0,0 @@ -import chai, { expect } from 'chai' -import { Contract } from 'ethers' -import { MaxUint256 } from 'ethers/constants' -import { BigNumber, bigNumberify, defaultAbiCoder, formatEther } from 'ethers/utils' -import { solidity, MockProvider, createFixtureLoader, deployContract } from 'ethereum-waffle' - -import { expandTo18Decimals } from './shared/utilities' -import { dxswapFixture } from './shared/fixtures' - -import ExampleSwapToPrice from '../build/ExampleSwapToPrice.json' - -chai.use(solidity) - -const overrides = { - gasLimit: 9999999 -} - -describe('ExampleSwapToPrice', () => { - const provider = new MockProvider({ - hardfork: 'istanbul', - mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn', - gasLimit: 9999999 - }) - const [wallet] = provider.getWallets() - const loadFixture = createFixtureLoader(provider, [wallet]) - - let token0: Contract - let token1: Contract - let pair: Contract - let swapToPriceExample: Contract - let router: Contract - beforeEach(async function() { - const fixture = await loadFixture(dxswapFixture) - token0 = fixture.token0 - token1 = fixture.token1 - pair = fixture.pair - router = fixture.router - swapToPriceExample = await deployContract( - wallet, - ExampleSwapToPrice, - [fixture.dxswapFactory.address, fixture.router.address], - overrides - ) - }) - - beforeEach('set up price differential of 1:100', async () => { - await token0.transfer(pair.address, expandTo18Decimals(10)) - await token1.transfer(pair.address, expandTo18Decimals(1000)) - await pair.sync(overrides) - }) - - beforeEach('approve the swap contract to spend any amount of both tokens', async () => { - await token0.approve(swapToPriceExample.address, MaxUint256) - await token1.approve(swapToPriceExample.address, MaxUint256) - }) - - it('correct router address', async () => { - expect(await swapToPriceExample.router()).to.eq(router.address) - }) - - describe('#swapToPrice', () => { - it('requires non-zero true price inputs', async () => { - await expect( - swapToPriceExample.swapToPrice( - token0.address, - token1.address, - 0, - 0, - MaxUint256, - MaxUint256, - wallet.address, - MaxUint256 - ) - ).to.be.revertedWith('ExampleSwapToPrice: ZERO_PRICE') - await expect( - swapToPriceExample.swapToPrice( - token0.address, - token1.address, - 10, - 0, - MaxUint256, - MaxUint256, - wallet.address, - MaxUint256 - ) - ).to.be.revertedWith('ExampleSwapToPrice: ZERO_PRICE') - await expect( - swapToPriceExample.swapToPrice( - token0.address, - token1.address, - 0, - 10, - MaxUint256, - MaxUint256, - wallet.address, - MaxUint256 - ) - ).to.be.revertedWith('ExampleSwapToPrice: ZERO_PRICE') - }) - - it('requires non-zero max spend', async () => { - await expect( - swapToPriceExample.swapToPrice(token0.address, token1.address, 1, 100, 0, 0, wallet.address, MaxUint256) - ).to.be.revertedWith('ExampleSwapToPrice: ZERO_SPEND') - }) - - it('moves the price to 1:90', async () => { - await expect( - swapToPriceExample.swapToPrice( - token0.address, - token1.address, - 1, - 90, - MaxUint256, - MaxUint256, - wallet.address, - MaxUint256, - overrides - ) - ) - // (1e19 + 529063791046788173) : (1e21 - 50128619708044703422) ~= 1:90 - .to.emit(token0, 'Transfer') - .withArgs(wallet.address, swapToPriceExample.address, '529063791046788173') - .to.emit(token0, 'Approval') - .withArgs(swapToPriceExample.address, router.address, '529063791046788173') - .to.emit(token0, 'Transfer') - .withArgs(swapToPriceExample.address, pair.address, '529063791046788173') - .to.emit(token1, 'Transfer') - .withArgs(pair.address, wallet.address, '50128619708044703422') - }) - - it('moves the price to 1:110', async () => { - await expect( - swapToPriceExample.swapToPrice( - token0.address, - token1.address, - 1, - 110, - MaxUint256, - MaxUint256, - wallet.address, - MaxUint256, - overrides - ) - ) - // (1e21 + 47616056844306438751) : (1e19 - 453433431741210547) ~= 1:110 - .to.emit(token1, 'Transfer') - .withArgs(wallet.address, swapToPriceExample.address, '47616056844306438751') - .to.emit(token1, 'Approval') - .withArgs(swapToPriceExample.address, router.address, '47616056844306438751') - .to.emit(token1, 'Transfer') - .withArgs(swapToPriceExample.address, pair.address, '47616056844306438751') - .to.emit(token0, 'Transfer') - .withArgs(pair.address, wallet.address, '453433431741210547') - }) - - it('reverse token order', async () => { - await expect( - swapToPriceExample.swapToPrice( - token1.address, - token0.address, - 110, - 1, - MaxUint256, - MaxUint256, - wallet.address, - MaxUint256, - overrides - ) - ) - // (1e21 + 47616056844306438751) : (1e19 - 453433431741210547) ~= 1:110 - .to.emit(token1, 'Transfer') - .withArgs(wallet.address, swapToPriceExample.address, '47616056844306438751') - .to.emit(token1, 'Approval') - .withArgs(swapToPriceExample.address, router.address, '47616056844306438751') - .to.emit(token1, 'Transfer') - .withArgs(swapToPriceExample.address, pair.address, '47616056844306438751') - .to.emit(token0, 'Transfer') - .withArgs(pair.address, wallet.address, '453433431741210547') - }) - - it('swap gas cost', async () => { - const tx = await swapToPriceExample.swapToPrice( - token0.address, - token1.address, - 1, - 110, - MaxUint256, - MaxUint256, - wallet.address, - MaxUint256, - overrides - ) - const receipt = await tx.wait() - expect(receipt.gasUsed).to.eq('133310') - }).retries(2) // gas test is inconsistent - }) -}) diff --git a/test/shared/fixtures.ts b/test/shared/fixtures.ts index da92e2e0..d09abfb0 100644 --- a/test/shared/fixtures.ts +++ b/test/shared/fixtures.ts @@ -1,109 +1,127 @@ -import { Wallet, Contract } from 'ethers' -import { Web3Provider } from 'ethers/providers' -import { deployContract } from 'ethereum-waffle' - import { expandTo18Decimals } from './utilities' - -import DXswapFactory from '@swapr/core/build/DXswapFactory.json' -import IDXswapPair from '@swapr/core/build/IDXswapPair.json' - -import ERC20 from '../../build/ERC20.json' -import WETH9 from '../../build/WETH9.json' -import DXswapRouter from '../../build/DXswapRouter.json' -import RouterEventEmitter from '../../build/RouterEventEmitter.json' -import DXswapRelayer from '../../build/DXswapRelayer.json' -import OracleCreator from '../../build/OracleCreator.json' - - -const overrides = { - gasLimit: 9999999 -} +import { DXswapFactory, DXswapFactory__factory, DXswapPair, DXswapPair__factory, DXswapRelayer, DXswapRelayer__factory, DXswapRouter, DXswapRouter__factory, ERC20Mintable, ERC20Mintable__factory, OracleCreator, OracleCreator__factory, RouterEventEmitter, RouterEventEmitter__factory, WETH9, WETH9__factory, DeflatingERC20__factory, DeflatingERC20, DXswapTradeRelayer, DXswapTradeRelayer__factory, } from './../../typechain' +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' interface DXswapFixture { - token0: Contract - token1: Contract - WETH: Contract - WETHPartner: Contract - dxswapFactory: Contract - routerEventEmitter: Contract - router: Contract - pair: Contract - WETHPair: Contract - dxswapPair: Contract - dxswapRouter: Contract - uniFactory: Contract - uniRouter: Contract - uniPair: Contract - oracleCreator: Contract - dxRelayer: Contract + token0: ERC20Mintable + token1: ERC20Mintable + token2: ERC20Mintable + WETH: WETH9 + WETHPartner: ERC20Mintable + dxswapFactory: DXswapFactory + routerEventEmitter: RouterEventEmitter + router: DXswapRouter + WETHPair: DXswapPair + uniWETHPair: DXswapPair + dxswapPair: DXswapPair + dxswapRouter: DXswapRouter + uniFactory: DXswapFactory + uniRouter: DXswapRouter + uniPair: DXswapPair + oracleCreator: OracleCreator + dxRelayer: DXswapRelayer + DTT: DeflatingERC20 + DTT2: DeflatingERC20 + DTTPair: DXswapPair + WETHDTTPair: DXswapPair + dxTrade: DXswapTradeRelayer } -export async function dxswapFixture(provider: Web3Provider, [wallet]: Wallet[]): Promise { +export async function dxswapFixture(wallet: SignerWithAddress): Promise { + // deploy tokens - const tokenA = await deployContract(wallet, ERC20, [expandTo18Decimals(10000)]) - const tokenB = await deployContract(wallet, ERC20, [expandTo18Decimals(10000)]) - const WETH = await deployContract(wallet, WETH9) - const WETHPartner = await deployContract(wallet, ERC20, [expandTo18Decimals(10000)]) + const tokenA = await new ERC20Mintable__factory(wallet).deploy(expandTo18Decimals(10000)) + const tokenB = await new ERC20Mintable__factory(wallet).deploy(expandTo18Decimals(10000)) + const tokenC = await new ERC20Mintable__factory(wallet).deploy(expandTo18Decimals(10000)) + + const WETH = await new WETH9__factory(wallet).deploy() + const WETHPartner = await new ERC20Mintable__factory(wallet).deploy(expandTo18Decimals(10000)) + + const DTT = await new DeflatingERC20__factory(wallet).deploy(expandTo18Decimals(10000)) + const DTT2 = await new DeflatingERC20__factory(wallet).deploy(expandTo18Decimals(10000)) // deploy DXswapFactory - const dxswapFactory = await deployContract(wallet, DXswapFactory, [wallet.address]) + const dxswapFactory = await new DXswapFactory__factory(wallet).deploy(wallet.address) + + // deploy UniswapFactory + const uniFactory = await new DXswapFactory__factory(wallet).deploy(wallet.address) - // deploy router - const router = await deployContract(wallet, DXswapRouter, [dxswapFactory.address, WETH.address], overrides) - const dxswapRouter = await deployContract(wallet, DXswapRouter, [dxswapFactory.address, WETH.address], overrides) - const uniRouter = await deployContract(wallet, DXswapRouter, [dxswapFactory.address, WETH.address], overrides) + // deploy router + const router = await new DXswapRouter__factory(wallet).deploy(dxswapFactory.address, WETH.address) + const dxswapRouter = await new DXswapRouter__factory(wallet).deploy(dxswapFactory.address, WETH.address) + const uniRouter = await new DXswapRouter__factory(wallet).deploy(uniFactory.address, WETH.address) // event emitter for testing - const routerEventEmitter = await deployContract(wallet, RouterEventEmitter, []) + const routerEventEmitter = await new RouterEventEmitter__factory(wallet).deploy() + + // initialize DXswapPair factory + const dxSwapPair_factory = await new DXswapPair__factory(wallet).deploy() - // initialize DXswapFactory + // create pairs await dxswapFactory.createPair(tokenA.address, tokenB.address) const pairAddress = await dxswapFactory.getPair(tokenA.address, tokenB.address) - const pair = new Contract(pairAddress, JSON.stringify(IDXswapPair.abi), provider).connect(wallet) - const dxswapPair = new Contract(pairAddress, JSON.stringify(IDXswapPair.abi), provider).connect(wallet) + const dxswapPair = dxSwapPair_factory.attach(pairAddress) - const token0Address = await pair.token0() + // get addresses of sorted pair tokens + const token0Address = await dxswapPair.token0() const token0 = tokenA.address === token0Address ? tokenA : tokenB const token1 = tokenA.address === token0Address ? tokenB : tokenA + const token2 = tokenC + // deploy weth/erc20 pair await dxswapFactory.createPair(WETH.address, WETHPartner.address) const WETHPairAddress = await dxswapFactory.getPair(WETH.address, WETHPartner.address) - const WETHPair = new Contract(WETHPairAddress, JSON.stringify(IDXswapPair.abi), provider).connect(wallet) + const WETHPair = dxSwapPair_factory.attach(WETHPairAddress) - // deploy UniswapFactory - const uniFactory = await deployContract(wallet, DXswapFactory, [wallet.address]) + // deploy weth/erc20 pair Uniswap + await uniFactory.createPair(WETH.address, WETHPartner.address) + const uniWETHPairAddress = await uniFactory.getPair(WETH.address, WETHPartner.address) + const uniWETHPair = dxSwapPair_factory.attach(uniWETHPairAddress) + + // deploy deflating tokens pair + await dxswapFactory.createPair(DTT.address, DTT2.address) + const DTTPairAddress = await dxswapFactory.getPair(DTT.address, DTT2.address) + const DTTPair = dxSwapPair_factory.attach(DTTPairAddress) + + // deploy weth/deflating_token pair + await dxswapFactory.createPair(WETH.address, DTT.address) + const WETHDTTPairAddress = await dxswapFactory.getPair(WETH.address, DTT.address) + const WETHDTTPair = dxSwapPair_factory.attach(WETHDTTPairAddress) - // initialize DXswapFactory + // initialize DXswapPair await uniFactory.createPair(tokenA.address, tokenB.address) const uniPairAddress = await uniFactory.getPair(tokenA.address, tokenB.address) - const uniPair = new Contract(uniPairAddress, JSON.stringify(IDXswapPair.abi), provider).connect(wallet) + const uniPair = dxSwapPair_factory.attach(uniPairAddress) // deploy oracleCreator - const oracleCreator = await deployContract(wallet, OracleCreator) + const oracleCreator = await new OracleCreator__factory(wallet).deploy() - const dxRelayer = await deployContract( - wallet, - DXswapRelayer, - [wallet.address, dxswapFactory.address, dxswapRouter.address, uniFactory.address, uniRouter.address, WETH.address, oracleCreator.address], - overrides - ) + // deploy Relayer and TradeRelayer + const dxRelayer = await new DXswapRelayer__factory(wallet).deploy(wallet.address, dxswapFactory.address, dxswapRouter.address, uniFactory.address, uniRouter.address, WETH.address, oracleCreator.address) + const dxTrade = await new DXswapTradeRelayer__factory(wallet).deploy(wallet.address, dxswapFactory.address, dxswapRouter.address, uniFactory.address, uniRouter.address, WETH.address, oracleCreator.address) return { token0, token1, + token2, WETH, WETHPartner, dxswapFactory, routerEventEmitter, router, - pair, WETHPair, + uniWETHPair, dxswapPair, dxswapRouter, uniFactory, uniRouter, uniPair, oracleCreator, - dxRelayer + dxRelayer, + DTT, + DTT2, + DTTPair, + WETHDTTPair, + dxTrade } } \ No newline at end of file diff --git a/test/shared/utilities.ts b/test/shared/utilities.ts index 52de7fa1..a5168e0e 100644 --- a/test/shared/utilities.ts +++ b/test/shared/utilities.ts @@ -1,15 +1,15 @@ -import { Contract } from 'ethers' -import { Web3Provider } from 'ethers/providers' -import { BigNumber, bigNumberify, keccak256, defaultAbiCoder, toUtf8Bytes, solidityPack } from 'ethers/utils' +import { BigNumber, Contract, ethers, providers } from 'ethers' +import { defaultAbiCoder, keccak256, solidityPack, toUtf8Bytes } from 'ethers/lib/utils' +import { DXswapPair } from './../../typechain' -export const MINIMUM_LIQUIDITY = bigNumberify(10).pow(3) +export const MINIMUM_LIQUIDITY = ethers.BigNumber.from(10).pow(3) const PERMIT_TYPEHASH = keccak256( toUtf8Bytes('Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)') ) export function expandTo18Decimals(n: number): BigNumber { - return bigNumberify(n).mul(bigNumberify(10).pow(18)) + return ethers.BigNumber.from(n).mul(ethers.BigNumber.from(10).pow(18)) } function getDomainSeparator(name: string, tokenAddress: string) { @@ -57,21 +57,25 @@ export async function getApprovalDigest( ) } -export async function mineBlock(provider: Web3Provider, timestamp: number): Promise { - await new Promise(async (resolve, reject) => { - ;(provider._web3Provider.sendAsync as any)( - { jsonrpc: '2.0', method: 'evm_mine', params: [timestamp] }, - (error: any, result: any): void => { - if (error) { - reject(error) - } else { - resolve(result) - } - } - ) - }) +export async function mineBlock(provider: providers.JsonRpcProvider, timestamp: number, force = false): Promise { + if (force) { + await provider.send("evm_setNextBlockTimestamp", [timestamp]) + return provider.send("evm_mine", []) + } + return provider.send('evm_mine', [timestamp]) + // return new Promise((resolve) => {resolve()}) } export function encodePrice(reserve0: BigNumber, reserve1: BigNumber) { - return [reserve1.mul(bigNumberify(2).pow(112)).div(reserve0), reserve0.mul(bigNumberify(2).pow(112)).div(reserve1)] + return [reserve1.mul(ethers.BigNumber.from(2).pow(112)).div(reserve0), reserve0.mul(ethers.BigNumber.from(2).pow(112)).div(reserve1)] +} + +export function reduce15Decimals(n: BigNumber): number { + return (n.div(ethers.BigNumber.from(10).pow(15))).toNumber() } + +export async function sortTokens(tokenA: string, tokenB: string, pair: DXswapPair) { + const token0 = tokenA === await pair.token0() ? tokenA : tokenB + const token1 = tokenA === await pair.token0() ? tokenB : tokenA + return [token0, token1] +} \ No newline at end of file diff --git a/truffle-config.js b/truffle-config.js deleted file mode 100644 index dbc33bd8..00000000 --- a/truffle-config.js +++ /dev/null @@ -1,80 +0,0 @@ -const HDWalletProvider = require('truffle-hdwallet-provider') -const { wrapProvider } = require('arb-ethers-web3-bridge') -require('dotenv').config(); - -mnemonic = process.env.KEY_MNEMONIC; -infuraApiKey = process.env.KEY_INFURA_API_KEY; - -module.exports = { - networks: { - rpc: { - network_id: '*', - host: 'localhost', - port: 8545, - gas: 9000000, - gasPrice: 10000000000 //10 Gwei - }, - develop: { - network_id: '66', - host: 'localhost', - port: 8545, - gas: 9000000, - gasPrice: 10000000000 //10 Gwei - }, - mainnet: { - provider: function () { - return new HDWalletProvider(mnemonic, `https://mainnet.infura.io/v3/${infuraApiKey}`) - }, - network_id: '1', - gas: 9000000, - gasPrice: 10000000000 //10 Gwei - }, - rinkeby: { - provider: function () { - return new HDWalletProvider(mnemonic, `https://rinkeby.infura.io/v3/${infuraApiKey}`) - }, - network_id: '4', - gas: 9000000, - gasPrice: 10000000000 //10 Gwei - }, - ropsten: { - provider: function () { - return new HDWalletProvider(mnemonic, `https://ropsten.infura.io/v3/${infuraApiKey}`) - }, - network_id: '3', - gas: 8000000, - gasPrice: 10000000000 //10 Gwei - }, - kovan: { - provider: function () { - return new HDWalletProvider(mnemonic, `https://kovan.infura.io/v3/${infuraApiKey}`) - }, - network_id: '42', - gas: 9000000, - gasPrice: 10000000000 //10 Gwei - }, - arbitrumTestnetV3: { - provider: function() { - return wrapProvider(new HDWalletProvider(mnemonic, 'https://kovan3.arbitrum.io/rpc')) - }, - network_id: '79377087078960', - gas: 9000000, - gasPrice: 10000000000 //10 Gwei - } - }, - build: {}, - compilers: { - solc: { - version: '0.6.6', - settings: { - evmVersion: 'istanbul', - } - } - }, - solc: { - optimizer: { - enabled: true, - runs: 200 - } - }, -} diff --git a/yarn.lock b/yarn.lock index e2e32843..ad0a8942 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,274 +2,1082 @@ # yarn lockfile v1 -"@ethereum-waffle/chai@^2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-2.5.1.tgz#8bdc055952fc80ff78132571396a2771a36d97ae" - integrity sha512-g/PTnycTM5bODJCumO0XnccKeLITKELwuWOll3EAK+lE5u/OYvfVH5tAsDMJkB8m7J6wVKJ8iT+UiLEKb1qO1g== +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: - "@ethereum-waffle/provider" "^2.5.1" - ethers "^4.0.45" + "@babel/highlight" "^7.10.4" -"@ethereum-waffle/compiler@^2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/compiler/-/compiler-2.5.1.tgz#955a1fd6558f66b388707c4cec05459e6253535f" - integrity sha512-H08PgcJ+M4URDP2JBjDeYJRMtsh7PusEdRTaEQ7bHeVyjqqv18UEtFPBD7bR169sK9RGlkzjYmCeIRWomCQLlw== - dependencies: - "@resolver-engine/imports" "^0.3.3" - "@resolver-engine/imports-fs" "^0.3.3" - "@types/mkdirp" "^0.5.2" - "@types/node-fetch" "^2.5.5" - ethers "^4.0.45" - mkdirp "^0.5.1" - node-fetch "^2.6.0" - solc "^0.6.3" +"@babel/code-frame@^7.0.0": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" -"@ethereum-waffle/mock-contract@^2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/mock-contract/-/mock-contract-2.5.1.tgz#83dbd85bbcab0c0747eadca1bb802f228d7b0874" - integrity sha512-KuUCaCaMRKOI9sJ/MqiJU9ne8wpMWN4NB3beGZpPEo66jK2Ythvz5mgYLNAwAZdzM531NPKc/cWmLUdEF7jnlw== +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - ethers "^4.0.45" + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@ethereum-waffle/provider@^2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/provider/-/provider-2.5.1.tgz#fba3c120239c4928caae82db6b1bc4a4e294017a" - integrity sha512-J2yAB7F8eLIPHghcEKjPHBD4Zuix5mM8V4c5JHO20FTrqElWJbZ8pkg/aoztPms2JEt9gEvadAFTcxhd9eYDnA== +"@cspotcode/source-map-consumer@0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz" + integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== + +"@cspotcode/source-map-support@0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz" + integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== + dependencies: + "@cspotcode/source-map-consumer" "0.8.0" + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@ethereumjs/block@^3.5.0", "@ethereumjs/block@^3.6.2", "@ethereumjs/block@^3.6.3": + version "3.6.3" + resolved "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz" + integrity sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg== + dependencies: + "@ethereumjs/common" "^2.6.5" + "@ethereumjs/tx" "^3.5.2" + ethereumjs-util "^7.1.5" + merkle-patricia-tree "^4.2.4" + +"@ethereumjs/blockchain@^5.5.2", "@ethereumjs/blockchain@^5.5.3": + version "5.5.3" + resolved "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz" + integrity sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw== + dependencies: + "@ethereumjs/block" "^3.6.2" + "@ethereumjs/common" "^2.6.4" + "@ethereumjs/ethash" "^1.1.0" + debug "^4.3.3" + ethereumjs-util "^7.1.5" + level-mem "^5.0.1" + lru-cache "^5.1.1" + semaphore-async-await "^1.5.1" + +"@ethereumjs/common@^2.3.0", "@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5": + version "2.6.5" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" + integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== dependencies: - ethers "^4.0.45" - ganache-core "^2.10.2" + crc-32 "^1.2.0" + ethereumjs-util "^7.1.5" -"@resolver-engine/core@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@resolver-engine/core/-/core-0.2.1.tgz#0d71803f6d3b8cb2e9ed481a1bf0ca5f5256d0c0" - integrity sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A== +"@ethereumjs/ethash@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz" + integrity sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA== dependencies: - debug "^3.1.0" - request "^2.85.0" + "@ethereumjs/block" "^3.5.0" + "@types/levelup" "^4.3.0" + buffer-xor "^2.0.1" + ethereumjs-util "^7.1.1" + miller-rabin "^4.0.0" -"@resolver-engine/core@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/core/-/core-0.3.3.tgz#590f77d85d45bc7ecc4e06c654f41345db6ca967" - integrity sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ== +"@ethereumjs/tx@^3.2.1", "@ethereumjs/tx@^3.5.1", "@ethereumjs/tx@^3.5.2": + version "3.5.2" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" + integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== dependencies: - debug "^3.1.0" - is-url "^1.2.4" - request "^2.85.0" + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" -"@resolver-engine/fs@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@resolver-engine/fs/-/fs-0.2.1.tgz#f98a308d77568cc02651d03636f46536b941b241" - integrity sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg== +"@ethereumjs/vm@^5.9.0": + version "5.9.3" + resolved "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.9.3.tgz" + integrity sha512-Ha04TeF8goEglr8eL7hkkYyjhzdZS0PsoRURzYlTF6I0VVId5KjKb0N7MrA8GMgheN+UeTncfTgYx52D/WhEmg== dependencies: - "@resolver-engine/core" "^0.2.1" - debug "^3.1.0" + "@ethereumjs/block" "^3.6.3" + "@ethereumjs/blockchain" "^5.5.3" + "@ethereumjs/common" "^2.6.5" + "@ethereumjs/tx" "^3.5.2" + async-eventemitter "^0.2.4" + core-js-pure "^3.0.1" + debug "^4.3.3" + ethereumjs-util "^7.1.5" + functional-red-black-tree "^1.0.1" + mcl-wasm "^0.7.1" + merkle-patricia-tree "^4.2.4" + rustbn.js "~0.2.0" -"@resolver-engine/fs@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/fs/-/fs-0.3.3.tgz#fbf83fa0c4f60154a82c817d2fe3f3b0c049a973" - integrity sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ== +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + +"@ethersproject/abi@5.6.4", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.6.3": + version "5.6.4" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.4.tgz" + integrity sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg== + dependencies: + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + +"@ethersproject/abstract-provider@5.6.1", "@ethersproject/abstract-provider@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz" + integrity sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.3" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/web" "^5.6.1" + +"@ethersproject/abstract-signer@5.6.2", "@ethersproject/abstract-signer@^5.4.1", "@ethersproject/abstract-signer@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz" + integrity sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ== + dependencies: + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + +"@ethersproject/address@5.6.1", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz" + integrity sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/rlp" "^5.6.1" + +"@ethersproject/base64@5.6.1", "@ethersproject/base64@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz" + integrity sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + +"@ethersproject/basex@5.6.1", "@ethersproject/basex@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz" + integrity sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/properties" "^5.6.0" + +"@ethersproject/bignumber@5.6.2", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.4.1", "@ethersproject/bignumber@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz" + integrity sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.6.1", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz" + integrity sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g== + dependencies: + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/constants@5.6.1", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz" + integrity sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + +"@ethersproject/contracts@5.6.2", "@ethersproject/contracts@^5.4.1": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.2.tgz" + integrity sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g== + dependencies: + "@ethersproject/abi" "^5.6.3" + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.2" + +"@ethersproject/hash@5.6.1", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz" + integrity sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + +"@ethersproject/hdnode@5.6.2", "@ethersproject/hdnode@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.2.tgz" + integrity sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/basex" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.1" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/wordlists" "^5.6.1" + +"@ethersproject/json-wallets@5.6.1", "@ethersproject/json-wallets@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz" + integrity sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hdnode" "^5.6.2" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.1" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.1" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.6.1", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz" + integrity sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + js-sha3 "0.8.0" + +"@ethersproject/logger@5.6.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz" + integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== + +"@ethersproject/networks@5.6.4", "@ethersproject/networks@^5.6.3": + version "5.6.4" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.4.tgz" + integrity sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ== dependencies: - "@resolver-engine/core" "^0.3.3" - debug "^3.1.0" + "@ethersproject/logger" "^5.6.0" -"@resolver-engine/imports-fs@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz#5a81ef3285dbf0411ab3b15205080a1ad7622d9e" - integrity sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ== +"@ethersproject/pbkdf2@5.6.1", "@ethersproject/pbkdf2@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz" + integrity sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ== dependencies: - "@resolver-engine/fs" "^0.2.1" - "@resolver-engine/imports" "^0.2.2" - debug "^3.1.0" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/sha2" "^5.6.1" -"@resolver-engine/imports-fs@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz#4085db4b8d3c03feb7a425fbfcf5325c0d1e6c1b" - integrity sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA== +"@ethersproject/properties@5.6.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz" + integrity sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg== + dependencies: + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/providers@5.6.8", "@ethersproject/providers@^5.4.4", "@ethersproject/providers@^5.4.7": + version "5.6.8" + resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.8.tgz" + integrity sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w== + dependencies: + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/base64" "^5.6.1" + "@ethersproject/basex" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.3" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.1" + "@ethersproject/rlp" "^5.6.1" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/web" "^5.6.1" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@5.6.1", "@ethersproject/random@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.1.tgz" + integrity sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/rlp@5.6.1", "@ethersproject/rlp@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz" + integrity sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/sha2@5.6.1", "@ethersproject/sha2@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz" + integrity sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@5.6.2", "@ethersproject/signing-key@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz" + integrity sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/solidity@5.6.1", "@ethersproject/solidity@^5.4.0": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.1.tgz" + integrity sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/strings" "^5.6.1" + +"@ethersproject/strings@5.6.1", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz" + integrity sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/transactions@5.6.2", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz" + integrity sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q== + dependencies: + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/rlp" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + +"@ethersproject/units@5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.1.tgz" + integrity sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/wallet@5.6.2", "@ethersproject/wallet@^5.4.0": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.2.tgz" + integrity sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg== + dependencies: + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/hdnode" "^5.6.2" + "@ethersproject/json-wallets" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/wordlists" "^5.6.1" + +"@ethersproject/web@5.6.1", "@ethersproject/web@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz" + integrity sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA== + dependencies: + "@ethersproject/base64" "^5.6.1" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + +"@ethersproject/wordlists@5.6.1", "@ethersproject/wordlists@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.1.tgz" + integrity sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== dependencies: - "@resolver-engine/fs" "^0.3.3" - "@resolver-engine/imports" "^0.3.3" - debug "^3.1.0" + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.1" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@resolver-engine/imports@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@resolver-engine/imports/-/imports-0.2.2.tgz#d3de55a1bb5f3beb7703fdde743298f321175843" - integrity sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg== +"@metamask/eth-sig-util@^4.0.0": + version "4.0.1" + resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" + integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== dependencies: - "@resolver-engine/core" "^0.2.1" - debug "^3.1.0" - hosted-git-info "^2.6.0" + ethereumjs-abi "^0.6.8" + ethereumjs-util "^6.2.1" + ethjs-util "^0.1.6" + tweetnacl "^1.0.3" + tweetnacl-util "^0.15.1" -"@resolver-engine/imports@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/imports/-/imports-0.3.3.tgz#badfb513bb3ff3c1ee9fd56073e3144245588bcc" - integrity sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q== +"@noble/hashes@1.1.1", "@noble/hashes@~1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.1.tgz" + integrity sha512-Lkp9+NijmV7eSVZqiUvt3UCuuHeJpUVmRrvh430gyJjJiuJMqkeHf6/A9lQ/smmbWV/0spDeJscscPzyB4waZg== + +"@noble/secp256k1@1.6.0", "@noble/secp256k1@~1.6.0": + version "1.6.0" + resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.0.tgz" + integrity sha512-DWSsg8zMHOYMYBqIQi96BQuthZrp98LCeMNcUOaffCIVYQ5yxDbNikLF+H7jEnmNNmXbtVic46iCuVWzar+MgA== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@nomicfoundation/hardhat-chai-matchers@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.1.tgz" + integrity sha512-7gl02+kyXu5gVsCQfC84IQ6zQJNsi/5T4FDjREKjD589mq+Y8o2knoShlwRoRqfnvgk18OTYgZCL3vqrajLviQ== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@types/chai-as-promised" "^7.1.3" + chai-as-promised "^7.1.1" + chalk "^2.4.2" + deep-eql "^4.0.1" + ordinal "^1.0.3" + +"@nomicfoundation/hardhat-network-helpers@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.2.tgz" + integrity sha512-e+0kpXtNgRfCn3iq7pHmFwv+Ay8MkE7yP/UQdp7njRHo+LVWE3gJJ+qXB3z3isOLZ639tnxvG/8xjjYm0fvdRA== + dependencies: + ethereumjs-util "^7.1.4" + +"@nomiclabs/hardhat-ethers@^2.0.0": + version "2.1.0" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.1.0.tgz" + integrity sha512-vlW90etB3675QWG7tMrHaDoTa7ymMB7irM4DAQ98g8zJoe9YqEggeDnbO6v5b+BLth/ty4vN6Ko/kaqRN1krHw== + +"@nomiclabs/hardhat-etherscan@^2.1.6": + version "2.1.8" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-2.1.8.tgz" + integrity sha512-0+rj0SsZotVOcTLyDOxnOc3Gulo8upo0rsw/h+gBPcmtj91YqYJNhdARHoBxOhhE8z+5IUQPx+Dii04lXT14PA== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@ethersproject/address" "^5.0.2" + cbor "^5.0.2" + debug "^4.1.1" + fs-extra "^7.0.1" + node-fetch "^2.6.0" + semver "^6.3.0" + +"@scure/base@~1.1.0": + version "1.1.1" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz" + integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== + +"@scure/bip32@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz" + integrity sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q== dependencies: - "@resolver-engine/core" "^0.3.3" - debug "^3.1.0" - hosted-git-info "^2.6.0" - path-browserify "^1.0.0" - url "^0.11.0" + "@noble/hashes" "~1.1.1" + "@noble/secp256k1" "~1.6.0" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz" + integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== + dependencies: + "@noble/hashes" "~1.1.1" + "@scure/base" "~1.1.0" + +"@sentry/core@5.30.0": + version "5.30.0" + resolved "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz" + integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/minimal" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/hub@5.30.0": + version "5.30.0" + resolved "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz" + integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== + dependencies: + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/minimal@5.30.0": + version "5.30.0" + resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz" + integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/types" "5.30.0" + tslib "^1.9.3" + +"@sentry/node@^5.18.1": + version "5.30.0" + resolved "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz" + integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== + dependencies: + "@sentry/core" "5.30.0" + "@sentry/hub" "5.30.0" + "@sentry/tracing" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^1.9.3" + +"@sentry/tracing@5.30.0": + version "5.30.0" + resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz" + integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/minimal" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/types@5.30.0": + version "5.30.0" + resolved "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz" + integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== + +"@sentry/utils@5.30.0": + version "5.30.0" + resolved "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz" + integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== + dependencies: + "@sentry/types" "5.30.0" + tslib "^1.9.3" "@sindresorhus/is@^0.14.0": version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@solidity-parser/parser@^0.6.0": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.6.2.tgz#49707fc4e06649d39d6b25bdab2e9093d372ce50" - integrity sha512-kUVUvrqttndeprLoXjI5arWHeiP3uh4XODAKbG+ZaWHCVQeelxCbnXBeWxZ2BPHdXgH0xR9dU1b916JhDhbgAA== +"@solidity-parser/parser@^0.14.0", "@solidity-parser/parser@^0.14.1": + version "0.14.2" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.2.tgz" + integrity sha512-10cr0s+MtRtqjEw0WFJrm2rwULN30xx7btd/v9cmqME2617/2M5MbHDkFIGIGTa7lwNw4bN9mVGfhlLzrYw8pA== + dependencies: + antlr4ts "^0.5.0-alpha.4" + +"@solidity-parser/parser@^0.14.2": + version "0.14.3" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.3.tgz" + integrity sha512-29g2SZ29HtsqA58pLCtopI1P/cPy5/UAzlcAXO6T/CNJimG6yA8kx4NaseMyJULiC+TEs02Y9/yeHzClqoA0hw== + dependencies: + antlr4ts "^0.5.0-alpha.4" "@swapr/core@^0.3.17": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@swapr/core/-/core-0.3.17.tgz#fe9d230675e6cb333185a87deb70ac1642404006" - integrity sha512-2jBDMVT+LCf/sAtP5LvT6EgCVHYbK/5OR6wrcmZ4KiSg4QhX8C3jtFwd0bpRdjzZ9NsGP+v4bBCpH54AT2QYIQ== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@swapr/core/-/core-0.3.20.tgz#2ba381565b09298a1c298fbf3939788783a2fa83" + integrity sha512-wUBRsb+Oahm4HUHBP1Ou/X3wY+6gLKjj0Zz6+G5nqDmtkpQhYSGRQvmtNZXbVKFtQAsNlLo2mGNF1T1haMOWSQ== dependencies: typescript "^3.9.5" "@szmarczak/http-timer@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: defer-to-connect "^1.0.1" -"@types/bignumber.js@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/bignumber.js/-/bignumber.js-5.0.0.tgz#d9f1a378509f3010a3255e9cc822ad0eeb4ab969" - integrity sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA== +"@truffle/error@^0.1.0": + version "0.1.0" + resolved "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz" + integrity sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg== + +"@truffle/interface-adapter@^0.5.17": + version "0.5.17" + resolved "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.17.tgz" + integrity sha512-2MJ+YLAL4y2QqlWc90NKizBLpavcETTzV8EpYkYJgAM326xKrAt+N3wx3f3tgRPSsbdtiEVKf1JRXHmDYQ+xIg== + dependencies: + bn.js "^5.1.3" + ethers "^4.0.32" + web3 "1.5.3" + +"@truffle/provider@^0.2.24": + version "0.2.55" + resolved "https://registry.npmjs.org/@truffle/provider/-/provider-0.2.55.tgz" + integrity sha512-Tjs2cZsmRnzgBtFNXwO8cc1W7jIv0UaaLt3fOzks7rSUETo7M11GJ4U+uoCHSntrIW7E6sYS3KecOpzqJPw3Hg== + dependencies: + "@truffle/error" "^0.1.0" + "@truffle/interface-adapter" "^0.5.17" + web3 "1.5.3" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@typechain/ethers-v5@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.1.0.tgz#068d7dc7014502354696dab59590a7841091e951" + integrity sha512-3LIb+eUpV3mNCrjUKT5oqp8PBsZYSnVrkfk6pY/ZM0boRs2mKxjFZ7bktx42vfDye8PPz3NxtW4DL5NsNsFqlg== + dependencies: + lodash "^4.17.15" + ts-essentials "^7.0.1" + +"@typechain/hardhat@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-6.1.2.tgz#d3beccc6937d93f9b437616b741f839a8b953693" + integrity sha512-k4Ea3pVITKB2DH8p1a5U38cyy7KZPD04Spo4q5b4wO+n2mT+uAz5dxckPtbczn/Kk5wiFq+ZkuOtw5ZKFhL/+w== dependencies: - bignumber.js "*" + fs-extra "^9.1.0" + lodash "^4.17.15" -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4": +"@types/abstract-leveldown@*": + version "7.2.0" + resolved "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz" + integrity sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ== + +"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== dependencies: "@types/node" "*" -"@types/chai@^4.2.6": - version "4.2.12" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.12.tgz#6160ae454cd89dae05adc3bb97997f488b608201" - integrity sha512-aN5IAC8QNtSUdQzxu7lGBgYAOuU1tmRU4c9dIq5OKGf/SBVjXo+ffM2wEjudAWbgpOhy60nLoAGH1xm8fpCKFQ== +"@types/bn.js@^5.1.0": + version "5.1.0" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz" + integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + dependencies: + "@types/node" "*" + +"@types/chai-as-promised@^7.1.3": + version "7.1.5" + resolved "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz" + integrity sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4.2.14": + version "4.3.1" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz" + integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== -"@types/mkdirp@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" - integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== +"@types/concat-stream@^1.6.0": + version "1.6.1" + resolved "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz" + integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== + dependencies: + "@types/node" "*" + +"@types/form-data@0.0.33": + version "0.0.33" + resolved "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz" + integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1", "@types/glob@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: + "@types/minimatch" "*" "@types/node" "*" -"@types/mocha@^5.2.7": - version "5.2.7" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" - integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== +"@types/json-schema@^7.0.7": + version "7.0.11" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/level-errors@*": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz" + integrity sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ== -"@types/node-fetch@^2.5.5": - version "2.5.7" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" - integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== +"@types/levelup@^4.3.0": + version "4.3.3" + resolved "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz" + integrity sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA== dependencies: + "@types/abstract-leveldown" "*" + "@types/level-errors" "*" "@types/node" "*" - form-data "^3.0.0" + +"@types/lru-cache@^5.1.0": + version "5.1.1" + resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== + +"@types/minimatch@*": + version "3.0.5" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/mocha@^8.0.4": + version "8.2.3" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz" + integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== "@types/node@*": version "14.0.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" + resolved "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz" integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== -"@types/node@^10.12.18", "@types/node@^10.3.2": - version "10.17.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.28.tgz#0e36d718a29355ee51cec83b42d921299200f6d9" - integrity sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ== +"@types/node@^10.0.3": + version "10.17.60" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^12.12.6": + version "12.20.55" + resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^12.6.1": - version "12.12.54" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" - integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== +"@types/node@^8.0.0": + version "8.10.66" + resolved "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz" + integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== "@types/pbkdf2@^3.0.0": version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== dependencies: "@types/node" "*" +"@types/prettier@^2.1.1": + version "2.6.3" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz" + integrity sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg== + +"@types/qs@^6.2.31", "@types/qs@^6.9.7": + version "6.9.7" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + "@types/secp256k1@^4.0.1": version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.1.tgz#fb3aa61a1848ad97d7425ff9dcba784549fca5a4" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz" integrity sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog== dependencies: "@types/node" "*" -"@web3-js/scrypt-shim@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz#0bf7529ab6788311d3e07586f7d89107c3bea2cc" - integrity sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw== +"@typescript-eslint/eslint-plugin@^4.29.3": + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== dependencies: - scryptsy "^2.1.0" - semver "^6.3.0" + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.33.0": + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.29.3": + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== + dependencies: + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== -"@web3-js/websocket@^1.0.29": - version "1.0.30" - resolved "https://registry.yarnpkg.com/@web3-js/websocket/-/websocket-1.0.30.tgz#9ea15b7b582cf3bf3e8bc1f4d3d54c0731a87f87" - integrity sha512-fDwrD47MiDrzcJdSeTLF75aCcxVVt8B1N74rA+vh2XCAvFy4tEWJjtnUtj2QG7/zlQ6g9cQ88bZFBxwd9/FmtA== - dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abstract-leveldown@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz#5cb89f958a44f526779d740d1440e743e0c30a57" - integrity sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ== - dependencies: - xtend "~4.0.0" +abbrev@1.0.x: + version "1.0.9" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" + integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== -abstract-leveldown@^2.4.1, abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: - xtend "~4.0.0" + event-target-shim "^5.0.0" -abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz#f7128e1f86ccabf7d2893077ce5d06d798e386c6" - integrity sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A== +abstract-leveldown@^6.2.1: + version "6.3.0" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz" + integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" xtend "~4.0.0" -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== +abstract-leveldown@~6.2.1: + version "6.2.3" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz" + integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" xtend "~4.0.0" accepts@~1.3.7: version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: mime-types "~2.1.24" negotiator "0.6.2" +acorn-jsx@^5.0.0, acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^6.0.7: + version "6.4.2" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.4.1: + version "8.7.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== + +address@^1.0.1: + version "1.2.0" + resolved "https://registry.npmjs.org/address/-/address-1.2.0.tgz" + integrity sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig== + +adm-zip@^0.4.16: + version "0.4.16" + resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" + integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== + aes-js@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= -aes-js@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.6.1, ajv@^6.9.1: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" ajv@^6.12.3: version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz" integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== dependencies: fast-deep-equal "^3.1.1" @@ -277,71 +1085,164 @@ ajv@^6.12.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.1: + version "8.11.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== + ansi-colors@3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + version "3.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -any-promise@1.3.0, any-promise@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" -arb-ethers-web3-bridge@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/arb-ethers-web3-bridge/-/arb-ethers-web3-bridge-0.7.3.tgz#a80cfeb8c61e46e2ae997e3dbba164e134104d63" - integrity sha512-dmnys5OU2RyLrVckNzC+NPR/BZDr38svO45vEaZ1oz2cEacKiVaU1g1bgjvJBQbM0jHaXVk7r7JL1U7xVcaA3A== +antlr4@4.7.1: + version "4.7.1" + resolved "https://registry.npmjs.org/antlr4/-/antlr4-4.7.1.tgz" + integrity sha512-haHyTW7Y9joE5MVs37P2lNYfU2RWBLfcRDD8OWldcdZm5TiCE91B5Xl1oWSwiDUSd4rlExpt2pu1fksYQjRBYQ== + +antlr4ts@^0.5.0-alpha.4: + version "0.5.0-alpha.4" + resolved "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz" + integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== + +anymatch@~3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: - ethers-providers "^2.1.19" - ethers-utils "^2.1.11" + normalize-path "^3.0.0" + picomatch "^2.0.4" arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-back@^3.0.1, array-back@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-back@^4.0.1, array-back@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" + integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== + array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + +array.prototype.reduce@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" + integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + asn1.js@^5.2.0: version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" @@ -351,688 +1252,181 @@ asn1.js@^5.2.0: asn1@~0.2.3: version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -async-eventemitter@^0.2.2: +ast-parents@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz" + integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-eventemitter@^0.2.4: version "0.2.4" - resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" + resolved "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz" integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== dependencies: async "^2.4.0" async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" - integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== - dependencies: - lodash "^4.17.11" - -async@^1.4.2: +async@1.x: version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0, async@^2.6.1: +async@^2.4.0: version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== dependencies: lodash "^4.17.14" asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: version "1.10.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz" integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.14, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" - integrity sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU= - dependencies: - babel-core "^6.0.14" - object-assign "^4.0.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" - integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8= +axios@^0.21.1: + version "0.21.4" + resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== dependencies: - precond "0.2" + follow-redirects "^1.14.0" balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base-x@^3.0.2: version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz" integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== dependencies: safe-buffer "^5.0.1" +base-x@^3.0.8: + version "3.0.9" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + base64-js@^1.0.2: version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" -bignumber.js@*: - version "9.0.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" - integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== - -bindings@^1.3.1, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip39@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.5.0.tgz#51cbd5179460504a63ea3c000db3f787ca051235" - integrity sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA== - dependencies: - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - safe-buffer "^5.0.1" - unorm "^1.3.3" +bech32@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= - dependencies: - safe-buffer "^5.0.1" +bignumber.js@^9.0.0, bignumber.js@^9.0.1: + version "9.0.2" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" + integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== blakejs@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" + resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz" integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= bluebird@^3.5.0: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bn.js@4.11.6: version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.4.0, bn.js@^4.8.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8: version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== +bn.js@^4.11.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + bn.js@^5.1.1, bn.js@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz" integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== +bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + body-parser@1.19.0, body-parser@^1.16.0: version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: bytes "3.1.0" @@ -1048,25 +1442,39 @@ body-parser@1.19.0, body-parser@^1.16.0: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -brorand@^1.0.1: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify-aes@^1.2.0: +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -1078,7 +1486,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify- browserify-cipher@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" @@ -1087,7 +1495,7 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" @@ -1097,7 +1505,7 @@ browserify-des@^1.0.0: browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz" integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: bn.js "^4.1.0" @@ -1105,7 +1513,7 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: browserify-sign@^4.0.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: bn.js "^5.1.1" @@ -1118,106 +1526,80 @@ browserify-sign@^4.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - bs58@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= dependencies: base-x "^3.0.2" bs58check@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" create-hash "^1.1.0" safe-buffer "^5.1.2" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-to-arraybuffer@^0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + resolved "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz" integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer-xor@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-2.0.2.tgz#34f7c64f04c777a1f8aac5e661273bb9dd320289" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz" integrity sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ== dependencies: safe-buffer "^5.1.1" -buffer@^5.0.5, buffer@^5.2.1, buffer@^5.6.0: +buffer@^5.0.5, buffer@^5.6.0: version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz" integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +bufferutil@^4.0.1: + version "4.0.6" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz" + integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== + dependencies: + node-gyp-build "^4.3.0" + bytes@3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -bytewise-core@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/bytewise-core/-/bytewise-core-1.2.3.tgz#3fb410c7e91558eb1ab22a82834577aa6bd61d42" - integrity sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI= - dependencies: - typewise-core "^1.2" - -bytewise@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/bytewise/-/bytewise-1.1.0.tgz#1d13cbff717ae7158094aa881b35d081b387253e" - integrity sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4= - dependencies: - bytewise-core "^1.2.2" - typewise "^1.0.3" +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacheable-request@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== dependencies: clone-response "^1.0.2" @@ -1228,86 +1610,204 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" -cachedown@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cachedown/-/cachedown-1.0.0.tgz#d43f036e4510696b31246d7db31ebf0f7ac32d15" - integrity sha1-1D8DbkUQaWsxJG19sx6/D3rDLRU= +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== dependencies: - abstract-leveldown "^2.4.1" - lru-cache "^3.2.0" + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30000844: - version "1.0.30001113" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001113.tgz#22016ab55b5a8b04fa00ca342d9ee1b98df48065" - integrity sha512-qMvjHiKH21zzM/VDZr6oosO6Ri3U0V2tC015jRXjOecwQCJtsU5zklTNTk31jQbIOP8gha0h1ccM/g0ECP+4BA== +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caseless@~0.12.0: +caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chai@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" - integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== +cbor@^5.0.2: + version "5.2.0" + resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" + integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== + dependencies: + bignumber.js "^9.0.1" + nofilter "^1.0.4" + +chai-as-promised@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz" + integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== + dependencies: + check-error "^1.0.2" + +chai@^4.3.4: + version "4.3.6" + resolved "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz" + integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== dependencies: assertion-error "^1.1.0" check-error "^1.0.2" deep-eql "^3.0.1" get-func-name "^2.0.0" - pathval "^1.1.0" + loupe "^2.3.1" + pathval "^1.1.1" type-detect "^4.0.5" -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.1: +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +"charenc@>= 0.0.1": + version "0.0.2" + resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + check-error@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - integrity sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY= - dependencies: - functional-red-black-tree "^1.0.1" +chokidar@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" + integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.2.0" + optionalDependencies: + fsevents "~2.1.1" + +chokidar@3.5.3, chokidar@^3.4.0, chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" chownr@^1.1.1: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-table3@^0.5.0: + version "0.5.1" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -1317,60 +1817,106 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + clone-response@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= dependencies: mimic-response "^1.0.0" -clone@2.1.2, clone@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@1.4.0, colors@^1.1.2: + version "1.4.0" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" command-exists@^1.2.8: version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== +command-line-args@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" + integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== + dependencies: + array-back "^3.1.0" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +command-line-usage@^6.1.0: + version "6.1.3" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" + integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== + dependencies: + array-back "^4.0.2" + chalk "^2.4.2" + table-layout "^1.0.2" + typical "^5.2.0" + +commander@2.18.0: + version "2.18.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz" + integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ== + commander@3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^2.8.1: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.1: +concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -1380,64 +1926,81 @@ concat-stream@^1.5.1: content-disposition@0.5.3: version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== dependencies: safe-buffer "5.1.2" +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + content-type@~1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + cookiejar@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" + resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz" integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== core-js-pure@^3.0.1: version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz" integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cors@^2.8.1: version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: object-assign "^4" vary "^1" +cosmiconfig@^5.0.7: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + create-ecdh@^4.0.0: version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" @@ -1445,7 +2008,7 @@ create-ecdh@^4.0.0: create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -1456,7 +2019,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -1466,17 +2029,39 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.3.tgz#e8a0b3c54598136e037f8650f8e823ccdfac198e" - integrity sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw== +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: - node-fetch "2.1.2" - whatwg-fetch "2.0.4" + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +"crypt@>= 0.0.1": + version "0.0.2" + resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== crypto-browserify@3.12.0: version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" @@ -1493,7 +2078,7 @@ crypto-browserify@3.12.0: d@1, d@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: es5-ext "^0.10.50" @@ -1501,159 +2086,122 @@ d@1, d@^1.0.1: dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: +death@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/death/-/death-1.1.0.tgz" + integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== + +debug@2.6.9, debug@^2.2.0, debug@^2.6.0: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@3.2.6, debug@^3.1.0: +debug@3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" +debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= decompress-response@^3.2.0, decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= dependencies: mimic-response "^1.0.0" -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" - integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - deep-eql@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== dependencies: type-detect "^4.0.0" -deep-equal@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== +deep-eql@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.0.tgz" + integrity sha512-4YM7QHOMBoVWqGPnp3OPPK7+WCIhUR2OTpahlNQFiyTH3QEeiu9MtBiTAJBkfny4PNhpFbV/jm3lv0iCfb40MA== dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" + type-detect "^4.0.0" + +deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== defer-to-connect@^1.0.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" - -deferred-leveldown@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz#0b0570087827bf480a23494b398f04c128c19a20" - integrity sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww== +deferred-leveldown@~5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz" + integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== dependencies: - abstract-leveldown "~5.0.0" + abstract-leveldown "~6.2.1" inherits "^2.0.3" -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - object-keys "^1.0.12" - -defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" @@ -1661,69 +2209,73 @@ des.js@^1.0.0: destroy@~1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= +detect-port@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz" + integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== dependencies: - repeating "^2.0.0" + address "^1.0.1" + debug "^2.6.0" diff@3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== +diff@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + diff@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== diffie-hellman@^5.0.0: version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" randombytes "^2.0.0" -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" -dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" -dotignore@~0.1.2: +dom-walk@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" + resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs= - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== duplexer3@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" @@ -1731,112 +2283,158 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.47: - version "1.3.533" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.533.tgz#d7e5ca4d57e9bc99af87efbe13e7be5dde729b0f" - integrity sha512-YqAL+NXOzjBnpY+dcOKDlZybJDCOzgsq4koW3fvyty/ldTmsb4QazZpOWmVvZ2m0t5jbBf7L0lIGU3BUipwG+A== - -elliptic@6.3.3: - version "6.3.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.3.tgz#5482d9646d54bcb89fd7d994fc9e2e9568876e3f" - integrity sha1-VILZZG1UvLif19mU/J4ulWiHbj8= - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - inherits "^2.0.1" - -elliptic@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" -elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" +emoji-regex@^10.1.0: + version "10.1.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.1.0.tgz" + integrity sha512-xAEnNCT3w2Tg6MA7ly6QqYJvEoY1tm9iIjJ3yMKK9JPlWuRHAMoe5iETwQnx3M9TVbFMfsrBgWKR+IsmswwNjg== emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encode-utf8@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz" + integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding-down@5.0.4, encoding-down@~5.0.0: - version "5.0.4" - resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-5.0.4.tgz#1e477da8e9e9d0f7c8293d320044f8b2cd8e9614" - integrity sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw== +encoding-down@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz" + integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== dependencies: - abstract-leveldown "^5.0.0" + abstract-leveldown "^6.2.1" inherits "^2.0.3" level-codec "^9.0.0" level-errors "^2.0.0" - xtend "^4.0.1" - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" +enquirer@^2.3.0, enquirer@^2.3.5, enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + errno@~0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz" integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" -es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-abstract@^1.20.4: + version "1.20.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" + integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + unbox-primitive "^1.0.2" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -1845,7 +2443,7 @@ es-to-primitive@^1.2.1: es5-ext@^0.10.35, es5-ext@^0.10.50: version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz" integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== dependencies: es6-iterator "~2.0.3" @@ -1854,7 +2452,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.50: es6-iterator@~2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= dependencies: d "1" @@ -1863,91 +2461,279 @@ es6-iterator@~2.0.3: es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== dependencies: d "^1.0.1" ext "^1.1.2" +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@1.8.x: + version "1.8.1" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz" + integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1: + version "1.4.3" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@^5.6.0: + version "5.16.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.11" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +eslint@^7.32.0: + version "7.32.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@2.7.x, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" + integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== + esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esquery@^1.0.1, esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" + integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -eth-block-tracker@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz#95cd5e763c7293e0b1b2790a2a39ac2ac188a5e1" - integrity sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug== - dependencies: - eth-query "^2.1.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.3" - ethjs-util "^0.1.3" - json-rpc-engine "^3.6.0" - pify "^2.3.0" - tape "^4.6.3" - eth-ens-namehash@2.0.8: version "2.0.8" - resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" - integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= + resolved "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz" + integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== dependencies: idna-uts46-hx "^2.3.1" js-sha3 "^0.5.7" -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f" - integrity sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-middleware "^1.5.0" - json-rpc-engine "^3.4.0" - json-rpc-error "^2.0.0" - -eth-json-rpc-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f" - integrity sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q== - dependencies: - async "^2.5.0" - eth-query "^2.1.2" - eth-tx-summary "^3.1.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.1.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^3.6.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - tape "^4.6.3" - -eth-lib@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - integrity sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco= +eth-gas-reporter@^0.2.24: + version "0.2.25" + resolved "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz" + integrity sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ== + dependencies: + "@ethersproject/abi" "^5.0.0-beta.146" + "@solidity-parser/parser" "^0.14.0" + cli-table3 "^0.5.0" + colors "1.4.0" + ethereum-cryptography "^1.0.3" + ethers "^4.0.40" + fs-readdir-recursive "^1.1.0" + lodash "^4.17.14" + markdown-table "^1.1.3" + mocha "^7.1.1" + req-cwd "^2.0.0" + request "^2.88.0" + request-promise-native "^1.0.5" + sha1 "^1.1.1" + sync-request "^6.0.0" + +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== dependencies: bn.js "^4.11.6" elliptic "^6.4.0" @@ -1955,7 +2741,7 @@ eth-lib@0.2.7: eth-lib@^0.1.26: version "0.1.29" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz" integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== dependencies: bn.js "^4.11.6" @@ -1965,80 +2751,16 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" -eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" - integrity sha1-1nQdkAAQa1FRDHLbktY2VFam2l4= - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-sig-util@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-2.3.0.tgz#c54a6ac8e8796f7e25f59cf436982a930e645231" - integrity sha512-ugD1AvaggvKaZDgnS19W5qOfepjGc7qHrt7TrAaL54gJw9SHvgIXJ3r2xOMW30RWJZNP+1GlTOy5oye7yXA4xA== - dependencies: - buffer "^5.2.1" - elliptic "^6.4.0" - ethereumjs-abi "0.6.5" - ethereumjs-util "^5.1.1" - tweetnacl "^1.0.0" - tweetnacl-util "^0.15.0" - -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" - integrity sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA= - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" - integrity sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg== - dependencies: - async "^2.1.2" - clone "^2.0.0" - concat-stream "^1.5.1" - end-of-stream "^1.1.0" - eth-query "^2.0.2" - ethereumjs-block "^1.4.1" - ethereumjs-tx "^1.1.1" - ethereumjs-util "^5.0.1" - ethereumjs-vm "^2.6.0" - through2 "^2.0.3" - -ethashjs@~0.0.7: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ethashjs/-/ethashjs-0.0.8.tgz#227442f1bdee409a548fb04136e24c874f3aa6f9" - integrity sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw== - dependencies: - async "^2.1.2" - buffer-xor "^2.0.1" - ethereumjs-util "^7.0.2" - miller-rabin "^4.0.0" - ethereum-bloom-filters@^1.0.6: version "1.0.7" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz#b7b80735e385dbb7f944ce6b4533e24511306060" + resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz" integrity sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ== dependencies: js-sha3 "^0.8.0" -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - -ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" - integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= - ethereum-cryptography@^0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== dependencies: "@types/pbkdf2" "^3.0.0" @@ -2057,280 +2779,56 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereum-waffle@^2.4.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-2.5.1.tgz#537325bb5112fae35ee00a0e783343f8a6f6b917" - integrity sha512-GPumiHpJHN9ONO7owo4mEZJDZzyDRawV3ukBdd+mPCxJkJbe69LTvza1nxcgwMjruXOd9GHaOnE/C2Sb+uGuMA== - dependencies: - "@ethereum-waffle/chai" "^2.5.1" - "@ethereum-waffle/compiler" "^2.5.1" - "@ethereum-waffle/mock-contract" "^2.5.1" - "@ethereum-waffle/provider" "^2.5.1" - ethers "^4.0.45" - -ethereumjs-abi@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241" - integrity sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE= - dependencies: - bn.js "^4.10.0" - ethereumjs-util "^4.3.0" - -ethereumjs-abi@0.6.7: - version "0.6.7" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.7.tgz#d1d1c5cdb8d910a7d97645ba9e93be5d153bba2e" - integrity sha512-EMLOA8ICO5yAaXDhjVEfYjsJIXYutY8ufTE93eEKwsVtp2usQreKwsDTJ9zvam3omYqNuffr8IONIqb2uUslGQ== +ethereum-cryptography@^1.0.3: + version "1.1.0" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.0.tgz" + integrity sha512-wyNVTBR4wIR2yoXdMv4Qt44mTVBpPgSW/DQCTmNO6nQluwpyrAIvmL4mxPbziFuc6VWJQa3rwUxn0nUFU03nyQ== dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" + "@noble/hashes" "1.1.1" + "@noble/secp256k1" "1.6.0" + "@scure/bip32" "1.1.0" + "@scure/bip39" "1.1.0" -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": +ethereumjs-abi@^0.6.8: version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b" + resolved "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz" + integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== dependencies: bn.js "^4.11.8" ethereumjs-util "^6.0.0" -ethereumjs-account@3.0.0, ethereumjs-account@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz#728f060c8e0c6e87f1e987f751d3da25422570a9" - integrity sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA== - dependencies: - ethereumjs-util "^6.0.0" - rlp "^2.2.1" - safe-buffer "^5.1.1" - -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@2.2.2, ethereumjs-block@^2.2.2, ethereumjs-block@~2.2.0, ethereumjs-block@~2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-blockchain@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz#30f2228dc35f6dcf94423692a6902604ae34960f" - integrity sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ== - dependencies: - async "^2.6.1" - ethashjs "~0.0.7" - ethereumjs-block "~2.2.2" - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.1.0" - flow-stoplight "^1.0.0" - level-mem "^3.0.1" - lru-cache "^5.1.1" - rlp "^2.2.2" - semaphore "^1.1.0" - -ethereumjs-common@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz#d3e82fc7c47c0cef95047f431a99485abc9bb1cd" - integrity sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ== - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@2.1.2, ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - -ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-util@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz#23ec79b2488a7d041242f01e25f24e5ad0357960" - integrity sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "0.1.6" - keccak "^2.0.0" - rlp "^2.2.3" - secp256k1 "^3.0.1" - -ethereumjs-util@^4.3.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz#f4bf9b3b515a484e3cc8781d61d9d980f7c83bd0" - integrity sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w== - dependencies: - bn.js "^4.8.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - rlp "^2.0.0" - -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.3, ethereumjs-util@^5.1.5: - version "5.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0: +ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== dependencies: "@types/bn.js" "^4.11.3" bn.js "^4.11.0" create-hash "^1.1.2" elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - -ethereumjs-util@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.4.tgz#f4b2022a91416bf421b35b0d5b81c21e8abd8b7f" - integrity sha512-isldtbCn9fdnhBPxedMNbFkNWVZ8ZdQvKRDSrdflame/AycAPKMer+vEpndpBxYIB3qxN6bd3Gh1YCQW9LDkCQ== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-vm@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz#e885e861424e373dbc556278f7259ff3fca5edab" - integrity sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - core-js-pure "^3.0.1" - ethereumjs-account "^3.0.0" - ethereumjs-block "^2.2.2" - ethereumjs-blockchain "^4.0.3" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.2" - ethereumjs-util "^6.2.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - util.promisify "^1.0.0" - -ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - -ethereumjs-wallet@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.3.tgz#b0eae6f327637c2aeb9ccb9047b982ac542e6ab1" - integrity sha512-qiXPiZOsStem+Dj/CQHbn5qex+FVkuPmGH7SvSnA9F3tdRDt8dLMyvIj3+U05QzVZNPYh4HXEdnzoYI4dZkr9w== - dependencies: - aes-js "^3.1.1" - bs58check "^2.1.2" - ethereumjs-util "^6.0.0" - hdkey "^1.1.0" - randombytes "^2.0.6" - safe-buffer "^5.1.2" - scrypt.js "^0.3.0" - utf8 "^3.0.0" - uuid "^3.3.2" - -ethers-providers@^2.1.19: - version "2.1.19" - resolved "https://registry.yarnpkg.com/ethers-providers/-/ethers-providers-2.1.19.tgz#d597e298f70cfbf8da207c303af0a5cbed5b4cd2" - integrity sha512-usjJ5qyGO84kMmIYImwGhJo12nnG5uzqpZlViYQFEfwBzqoj7b9e55xnc7fP6XWcnPrrbMqIa0KrW8BKy9bYpg== - dependencies: - ethers-utils "^2.1.0" - inherits "2.0.1" - xmlhttprequest "1.8.0" - -ethers-utils@^2.1.0, ethers-utils@^2.1.11: - version "2.1.11" - resolved "https://registry.yarnpkg.com/ethers-utils/-/ethers-utils-2.1.11.tgz#b27535ca3226118be300211c39c896b1e5e21641" - integrity sha512-BfkGStBmmLjhTldmp5lifiwUeDjx/yowoWfmUnnvPNsix5PFE8IXQdY5VT/Qo1SXMgxzCe8m0Z8ysUw6Q9OmAw== - dependencies: - bn.js "^4.4.0" - hash.js "^1.0.0" - js-sha3 "0.5.7" - xmlhttprequest "1.8.0" - -ethers@4.0.0-beta.3: - version "4.0.0-beta.3" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.0-beta.3.tgz#15bef14e57e94ecbeb7f9b39dd0a4bd435bc9066" - integrity sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog== - dependencies: - "@types/node" "^10.3.2" - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.3.3" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.3" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.3" + +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: + version "7.1.5" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" -ethers@^4.0.45: - version "4.0.47" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.47.tgz#91b9cd80473b1136dd547095ff9171bd1fc68c85" - integrity sha512-hssRYhngV4hiDNeZmVU/k5/E8xmLG8UpcNUzg6mb7lqhgpFPH/t7nuv20RjRrEf0gblzvi2XwR5Te+V3ZFc9pQ== +ethers@^4.0.32, ethers@^4.0.40: + version "4.0.49" + resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== dependencies: aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.2" + bn.js "^4.11.9" + elliptic "6.5.4" hash.js "1.1.3" js-sha3 "0.5.7" scrypt-js "2.0.4" @@ -2338,35 +2836,71 @@ ethers@^4.0.45: uuid "2.0.1" xmlhttprequest "1.8.0" +ethers@^5.4.6: + version "5.6.9" + resolved "https://registry.npmjs.org/ethers/-/ethers-5.6.9.tgz" + integrity sha512-lMGC2zv9HC5EC+8r429WaWu3uWJUCgUCt8xxKCFqkrFuBDZXDYIdzDUECxzjf2BMF8IVBByY1EBoGSL3RTm8RA== + dependencies: + "@ethersproject/abi" "5.6.4" + "@ethersproject/abstract-provider" "5.6.1" + "@ethersproject/abstract-signer" "5.6.2" + "@ethersproject/address" "5.6.1" + "@ethersproject/base64" "5.6.1" + "@ethersproject/basex" "5.6.1" + "@ethersproject/bignumber" "5.6.2" + "@ethersproject/bytes" "5.6.1" + "@ethersproject/constants" "5.6.1" + "@ethersproject/contracts" "5.6.2" + "@ethersproject/hash" "5.6.1" + "@ethersproject/hdnode" "5.6.2" + "@ethersproject/json-wallets" "5.6.1" + "@ethersproject/keccak256" "5.6.1" + "@ethersproject/logger" "5.6.0" + "@ethersproject/networks" "5.6.4" + "@ethersproject/pbkdf2" "5.6.1" + "@ethersproject/properties" "5.6.0" + "@ethersproject/providers" "5.6.8" + "@ethersproject/random" "5.6.1" + "@ethersproject/rlp" "5.6.1" + "@ethersproject/sha2" "5.6.1" + "@ethersproject/signing-key" "5.6.2" + "@ethersproject/solidity" "5.6.1" + "@ethersproject/strings" "5.6.1" + "@ethersproject/transactions" "5.6.2" + "@ethersproject/units" "5.6.1" + "@ethersproject/wallet" "5.6.2" + "@ethersproject/web" "5.6.1" + "@ethersproject/wordlists" "5.6.1" + ethjs-unit@0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + resolved "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz" integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= dependencies: bn.js "4.11.6" number-to-bn "1.7.0" -ethjs-util@0.1.6, ethjs-util@^0.1.3: +ethjs-util@0.1.6, ethjs-util@^0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== dependencies: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" -eventemitter3@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -2374,7 +2908,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: express@^4.14.0: version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== dependencies: accepts "~1.3.7" @@ -2410,80 +2944,104 @@ express@^4.14.0: ext@^1.1.2: version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz" integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== dependencies: type "^2.0.0" extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" - integrity sha1-S4w6z7Ugr635hgsfFM2M40As3dM= - dependencies: - checkpoint-store "^1.1.0" - -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.0.3, fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - integrity sha1-rjzl9zLGReq4fkroeTQUcJsjmJM= +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: - node-fetch "~1.7.1" + reusify "^1.0.4" -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" -file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - integrity sha1-LdvqfHP/42No365J3DOMBYwritY= +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" finalhandler@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" @@ -2494,6 +3052,13 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + find-up@3.0.0, find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -2501,41 +3066,97 @@ find-up@3.0.0, find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= dependencies: locate-path "^2.0.0" +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + flat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== dependencies: is-buffer "~2.0.3" -flow-stoplight@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/flow-stoplight/-/flow-stoplight-1.0.0.tgz#4a292c5bcff8b39fa6cc0cb1a853d86f27eeff7b" - integrity sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s= +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flatted@^3.1.0: + version "3.2.6" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz" + integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== + +fmix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz" + integrity sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w== + dependencies: + imul "^1.0.0" -for-each@~0.3.3: +follow-redirects@^1.12.1, follow-redirects@^1.14.0: + version "1.15.1" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + +for-each@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -form-data@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" - integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== +form-data@^2.2.0: + version "2.5.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -2543,7 +3164,7 @@ form-data@^3.0.0: form-data@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -2552,22 +3173,27 @@ form-data@~2.3.2: forwarded@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +fp-ts@1.19.3: + version "1.19.3" + resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz" + integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== + +fp-ts@^1.0.0: + version "1.19.5" + resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.5.tgz" + integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== + fresh@0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - fs-extra@^0.30.0: version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz" integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= dependencies: graceful-fs "^4.1.2" @@ -2576,116 +3202,193 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" +fs-extra@^10.0.0: + version "10.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^4.0.2: version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^7.0.0, fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^1.2.5: version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: minipass "^2.6.0" +fs-readdir-recursive@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -function-bind@^1.1.1, function-bind@~1.1.1: +fsevents@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -ganache-core@^2.10.2: - version "2.11.2" - resolved "https://registry.yarnpkg.com/ganache-core/-/ganache-core-2.11.2.tgz#821a8e7beaa65b32e408ccae2e2ec49194c4e378" - integrity sha512-yZSMdR2xtqG2IdApeB6OywtMxwcHMp6Y5TUBwPyKe5/GripP8xnEpSKBluhxoyqEotg+Z2S8mjIXJyAm+NnMGw== - dependencies: - abstract-leveldown "3.0.0" - async "2.6.2" - bip39 "2.5.0" - cachedown "1.0.0" - clone "2.1.2" - debug "3.2.6" - encoding-down "5.0.4" - eth-sig-util "2.3.0" - ethereumjs-abi "0.6.7" - ethereumjs-account "3.0.0" - ethereumjs-block "2.2.2" - ethereumjs-common "1.5.0" - ethereumjs-tx "2.1.2" - ethereumjs-util "6.2.0" - ethereumjs-vm "4.2.0" - heap "0.2.6" - level-sublevel "6.6.4" - levelup "3.1.1" - lodash "4.17.14" - lru-cache "5.1.1" - merkle-patricia-tree "2.3.2" - seedrandom "3.0.1" - source-map-support "0.5.12" - tmp "0.1.0" - web3-provider-engine "14.2.1" - websocket "1.0.29" - optionalDependencies: - ethereumjs-wallet "0.6.3" - web3 "1.2.4" +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -get-caller-file@^2.0.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-port@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" + integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== get-stream@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= get-stream@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" +ghost-testrpc@^0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz" + integrity sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ== + dependencies: + chalk "^2.4.2" + node-emoji "^1.10.0" + +glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-promise@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-5.0.0.tgz#aee3317ee1c211866d0425e1ac2e9089ded09c28" + integrity sha512-YQ7+beqmmQ3yUzybHoxnj7XMImztIdusIFate36/aB1gEWugR1qZI9a2u1A5mt6gYRqYldipZ7NB9s1UEq3vzw== + dependencies: + "@types/glob" "^7.2.0" + glob@7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -2698,9 +3401,56 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3, glob@~7.1.6: +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.1.2: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.3: version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" @@ -2710,22 +3460,78 @@ glob@^7.1.3, glob@~7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + global@~4.3.0: version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + resolved "https://registry.npmjs.org/global/-/global-4.3.2.tgz" integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= dependencies: min-document "^2.19.0" process "~0.5.1" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== +globals@^11.7.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.15.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz" + integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== + dependencies: + type-fest "^0.20.2" + +globby@^10.0.1: + version "10.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + +globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" got@9.6.0: version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== dependencies: "@sindresorhus/is" "^0.14.0" @@ -2742,7 +3548,7 @@ got@9.6.0: got@^7.1.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz" integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== dependencies: decompress-response "^3.2.0" @@ -2760,68 +3566,213 @@ got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + growl@1.10.5: version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +handlebars@^4.0.1: + version "4.7.7" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" har-schema "^2.0.0" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= +hardhat-dependency-compiler@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hardhat-dependency-compiler/-/hardhat-dependency-compiler-1.1.3.tgz#1e49e23f68878bd713f860c66648a711bc4a4a79" + integrity sha512-bCDqsOxGST6WkbMvj4lPchYWidNSSBm5CFnkyAex1T11cGmr9otZTGl81W6f9pmrtBXbKCvr3OSuNJ6Q394sAw== + +hardhat-deploy-ethers@^0.3.0-beta.10: + version "0.3.0-beta.13" + resolved "https://registry.npmjs.org/hardhat-deploy-ethers/-/hardhat-deploy-ethers-0.3.0-beta.13.tgz" + integrity sha512-PdWVcKB9coqWV1L7JTpfXRCI91Cgwsm7KLmBcwZ8f0COSm1xtABHZTyz3fvF6p42cTnz1VM0QnfDvMFlIRkSNw== + +hardhat-deploy@^0.9.0: + version "0.9.29" + resolved "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.9.29.tgz" + integrity sha512-8tIGszPFmOaXtyloCbASiZPvoAgLNGGL/Ubys3YW/oj4dvoPa8G6YDyaOCdsAhsENZ+QgR280NFSG9JdN7SU9Q== + dependencies: + "@ethersproject/abi" "^5.4.0" + "@ethersproject/abstract-signer" "^5.4.1" + "@ethersproject/address" "^5.4.0" + "@ethersproject/bignumber" "^5.4.1" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/contracts" "^5.4.1" + "@ethersproject/providers" "^5.4.4" + "@ethersproject/solidity" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + "@ethersproject/wallet" "^5.4.0" + "@types/qs" "^6.9.7" + axios "^0.21.1" + chalk "^4.1.2" + chokidar "^3.5.2" + debug "^4.3.2" + enquirer "^2.3.6" + form-data "^4.0.0" + fs-extra "^10.0.0" + match-all "^1.2.6" + murmur-128 "^0.2.1" + qs "^6.9.4" + +hardhat-gas-reporter@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.8.tgz" + integrity sha512-1G5thPnnhcwLHsFnl759f2tgElvuwdkzxlI65fC9PwxYMEe9cmjkVAAWTf3/3y8uP6ZSPiUiOW8PgZnykmZe0g== dependencies: - ansi-regex "^2.0.0" + array-uniq "1.0.3" + eth-gas-reporter "^0.2.24" + sha1 "^1.1.1" + +hardhat@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.10.0.tgz#23a640293d52ce79388660b2872624b2c6f94e5d" + integrity sha512-9VUorKvWNyW96qFXkwkpDUSeWND3gOZpm0oJ8l63JQJvWhxyxTJ92BcOrNylOKy9hzNNGdMfM2QWNP80fGOjpA== + dependencies: + "@ethereumjs/block" "^3.6.2" + "@ethereumjs/blockchain" "^5.5.2" + "@ethereumjs/common" "^2.6.4" + "@ethereumjs/tx" "^3.5.1" + "@ethereumjs/vm" "^5.9.0" + "@ethersproject/abi" "^5.1.2" + "@metamask/eth-sig-util" "^4.0.0" + "@sentry/node" "^5.18.1" + "@solidity-parser/parser" "^0.14.2" + "@types/bn.js" "^5.1.0" + "@types/lru-cache" "^5.1.0" + abort-controller "^3.0.0" + adm-zip "^0.4.16" + aggregate-error "^3.0.0" + ansi-escapes "^4.3.0" + chalk "^2.4.2" + chokidar "^3.4.0" + ci-info "^2.0.0" + debug "^4.1.1" + enquirer "^2.3.0" + env-paths "^2.2.0" + ethereum-cryptography "^1.0.3" + ethereumjs-abi "^0.6.8" + ethereumjs-util "^7.1.4" + find-up "^2.1.0" + fp-ts "1.19.3" + fs-extra "^7.0.1" + glob "7.2.0" + immutable "^4.0.0-rc.12" + io-ts "1.10.4" + lodash "^4.17.11" + merkle-patricia-tree "^4.2.4" + mnemonist "^0.38.0" + mocha "^10.0.0" + p-map "^4.0.0" + qs "^6.7.0" + raw-body "^2.4.1" + resolve "1.17.0" + semver "^6.3.0" + slash "^3.0.0" + solc "0.7.3" + source-map-support "^0.5.13" + stacktrace-parser "^0.1.10" + "true-case-path" "^2.2.1" + tsort "0.0.1" + undici "^5.4.0" + uuid "^8.3.2" + ws "^7.4.6" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" has-symbol-support-x@^1.4.1: version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== -has-symbols@^1.0.0, has-symbols@^1.0.1: +has-symbols@^1.0.0, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-symbols@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== has-to-string-tag-x@^1.2.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz" integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== dependencies: has-symbol-support-x "^1.4.1" -has@^1.0.3, has@~1.0.3: +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" @@ -2830,69 +3781,52 @@ hash-base@^3.0.0: hash.js@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz" integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hdkey@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-1.1.2.tgz#c60f9cf6f90fbf24a8a52ea06893f36a0108cd3e" - integrity sha512-PTQ4VKu0oRnCrYfLp04iQZ7T2Cxz0UsEXYauk2j8eh6PJXCpbXuCFhOmtIFtbET0i3PMWmHN9J11gU8LEgUljQ== - dependencies: - bs58check "^2.1.2" - safe-buffer "^5.1.1" - secp256k1 "^3.0.1" - he@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -heap@0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" - integrity sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw= - -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= +http-basic@^8.1.1: + version "8.1.3" + resolved "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz" + integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.6.0: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + caseless "^0.12.0" + concat-stream "^1.6.2" + http-response-object "^3.0.1" + parse-cache-control "^1.0.1" http-cache-semantics@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== http-errors@1.7.2: version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== dependencies: depd "~1.1.2" @@ -2901,9 +3835,20 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + http-errors@~1.7.2: version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz" integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== dependencies: depd "~1.1.2" @@ -2914,213 +3859,413 @@ http-errors@~1.7.2: http-https@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + resolved "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz" integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= +http-response-object@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz" + integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== + dependencies: + "@types/node" "^10.0.3" + http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" -iconv-lite@0.4.24: +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - idna-uts46-hx@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + resolved "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz" integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== dependencies: punycode "2.1.0" +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ieee754@^1.1.4: version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.1, ignore@^5.1.8, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + immediate@^3.2.3: version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" + resolved "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== immediate@~3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" + resolved "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz" integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= +immutable@^4.0.0-rc.12: + version "4.1.0" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz" + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imul@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz" + integrity sha512-WFAgfwPLAjU66EKt6vRdTlKj4nAgIDQzh29JonLa4Bqtl6D8JrIMvWjCnx7xEjVNmP3U0fM5o8ZObk7d0f62bA== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@^6.2.2: + version "6.5.2" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +io-ts@1.10.4: + version "1.10.4" + resolved "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz" + integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== dependencies: - loose-envify "^1.0.0" + fp-ts "^1.0.0" ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-buffer@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.0: +is-callable@^1.1.3, is-callable@^1.1.4: version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz" integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== +is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + is-date-object@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" - integrity sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw= +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-function@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-hex-prefixed@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-object@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz" integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= is-plain-obj@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-regex@^1.0.4, is-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-regex@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: - has "^1.0.3" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-retry-allowed@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + is-symbol@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: has-symbols "^1.0.1" +is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-url@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= isurl@^1.0.0-alpha5: version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz" integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== dependencies: has-to-string-tag-x "^1.2.0" @@ -3128,24 +4273,19 @@ isurl@^1.0.0-alpha5: js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== -"js-tokens@^3.0.0 || ^4.0.0": +js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - js-yaml@3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -3154,99 +4294,92 @@ js-yaml@3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - json-buffer@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= -json-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz#9d4ff447241792e1d0a232f6ef927302bb0c62a9" - integrity sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA== - dependencies: - async "^2.0.1" - babel-preset-env "^1.7.0" - babelify "^7.3.0" - json-rpc-error "^2.0.0" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" - integrity sha1-p6+cICg4tekFxyUOVH8a/3cligI= - dependencies: - inherits "^2.0.1" - -json-rpc-random-id@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" - integrity sha1-uknZat7RRE27jaPSA3SKy7zeyMg= +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= -json-stable-stringify@^1.0.1: +json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= optionalDependencies: graceful-fs "^4.1.6" jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonschema@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" + integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== jsprim@^1.2.2: version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" @@ -3254,19 +4387,9 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -keccak@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-2.1.0.tgz#734ea53f2edcfd0f42cdb8d5f4c358fef052752b" - integrity sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q== - dependencies: - bindings "^1.5.0" - inherits "^2.0.4" - nan "^2.14.0" - safe-buffer "^5.2.0" - keccak@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz" integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== dependencies: node-addon-api "^2.0.0" @@ -3274,152 +4397,113 @@ keccak@^3.0.0: keyv@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: json-buffer "3.0.0" +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + klaw@^1.0.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= optionalDependencies: graceful-fs "^4.1.9" level-codec@^9.0.0: version "9.0.2" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" + resolved "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz" integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== dependencies: buffer "^5.6.0" -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== - -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== - dependencies: - errno "~0.1.1" +level-concat-iterator@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz" + integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== level-errors@^2.0.0, level-errors@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" + resolved "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz" integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== dependencies: errno "~0.1.1" -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== - dependencies: - errno "~0.1.1" - -level-iterator-stream@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-2.0.3.tgz#ccfff7c046dcf47955ae9a86f46dfa06a31688b4" - integrity sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.5" - xtend "^4.0.0" - -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - integrity sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0= +level-iterator-stream@~4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz" + integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + xtend "^4.0.2" -level-iterator-stream@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz#2c98a4f8820d87cdacab3132506815419077c730" - integrity sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g== +level-mem@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz" + integrity sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg== dependencies: - inherits "^2.0.1" - readable-stream "^2.3.6" - xtend "^4.0.0" + level-packager "^5.0.3" + memdown "^5.0.0" -level-mem@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/level-mem/-/level-mem-3.0.1.tgz#7ce8cf256eac40f716eb6489654726247f5a89e5" - integrity sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg== +level-packager@^5.0.3: + version "5.1.1" + resolved "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz" + integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== dependencies: - level-packager "~4.0.0" - memdown "~3.0.0" + encoding-down "^6.3.0" + levelup "^4.3.2" -level-packager@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-4.0.1.tgz#7e7d3016af005be0869bc5fa8de93d2a7f56ffe6" - integrity sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q== +level-supports@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz" + integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== dependencies: - encoding-down "~5.0.0" - levelup "^3.0.0" + xtend "^4.0.2" -level-post@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/level-post/-/level-post-1.0.7.tgz#19ccca9441a7cc527879a0635000f06d5e8f27d0" - integrity sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew== +level-ws@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz" + integrity sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA== dependencies: - ltgt "^2.1.2" + inherits "^2.0.3" + readable-stream "^3.1.0" + xtend "^4.0.1" -level-sublevel@6.6.4: - version "6.6.4" - resolved "https://registry.yarnpkg.com/level-sublevel/-/level-sublevel-6.6.4.tgz#f7844ae893919cd9d69ae19d7159499afd5352ba" - integrity sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA== +levelup@^4.3.2: + version "4.4.0" + resolved "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz" + integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== dependencies: - bytewise "~1.1.0" - level-codec "^9.0.0" - level-errors "^2.0.0" - level-iterator-stream "^2.0.3" - ltgt "~2.1.1" - pull-defer "^0.2.2" - pull-level "^2.0.3" - pull-stream "^3.6.8" - typewiselite "~1.0.0" + deferred-leveldown "~5.3.0" + level-errors "~2.0.0" + level-iterator-stream "~4.0.0" + level-supports "~1.0.0" xtend "~4.0.0" -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - integrity sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos= - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - -levelup@3.1.1, levelup@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-3.1.1.tgz#c2c0b3be2b4dc316647c53b42e2f559e232d2189" - integrity sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg== +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: - deferred-leveldown "~4.0.0" - level-errors "~2.0.0" - level-iterator-stream "~3.0.0" - xtend "~4.0.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" + prelude-ls "^1.2.1" + type-check "~0.4.0" locate-path@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= dependencies: p-locate "^2.0.0" @@ -3433,89 +4517,112 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -lodash@4.17.14: - version "4.17.14" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" - integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -log-symbols@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -looper@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/looper/-/looper-2.0.0.tgz#66cd0c774af3d4fedac53794f742db56da8f09ec" - integrity sha1-Zs0Md0rz1P7axTeU90LbVtqPCew= +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -looper@^3.0.0: +log-symbols@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/looper/-/looper-3.0.0.tgz#2efa54c3b1cbaba9b94aee2e5914b0be57fbb749" - integrity sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k= + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== +log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +loupe@^2.3.1: + version "2.3.4" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz" + integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== dependencies: - js-tokens "^3.0.0 || ^4.0.0" + get-func-name "^2.0.0" lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@5.1.1, lru-cache@^5.1.1: +lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" -lru-cache@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" - integrity sha1-cXibO39Tmb7IVl3aOKow0qCX7+4= +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: - pseudomap "^1.0.1" + yallist "^4.0.0" + +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== -ltgt@^2.1.2, ltgt@~2.2.0: +ltgt@~2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" + resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= -ltgt@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.1.3.tgz#10851a06d9964b971178441c23c9e52698eece34" - integrity sha1-EIUaBtmWS5cReEQcI8nlJpjuzjQ= - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +markdown-table@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz" + integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== + +match-all@^1.2.6: + version "1.2.6" + resolved "https://registry.npmjs.org/match-all/-/match-all-1.2.6.tgz" + integrity sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ== + +mcl-wasm@^0.7.1: + version "0.7.9" + resolved "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz" + integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== + md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -3524,65 +4631,64 @@ md5.js@^1.3.4: media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - integrity sha1-tOThkhdGZP+65BNhqlAPMRnv4hU= - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - -memdown@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-3.0.0.tgz#93aca055d743b20efc37492e9e399784f2958309" - integrity sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA== +memdown@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz" + integrity sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw== dependencies: - abstract-leveldown "~5.0.0" + abstract-leveldown "~6.2.1" functional-red-black-tree "~1.0.1" immediate "~3.2.3" inherits "~2.0.1" ltgt "~2.2.0" - safe-buffer "~5.1.1" + safe-buffer "~5.2.0" memorystream@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merkle-patricia-tree@2.3.2, merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +merkle-patricia-tree@^4.2.4: + version "4.2.4" + resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz" + integrity sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w== + dependencies: + "@types/levelup" "^4.3.0" + ethereumjs-util "^7.1.4" + level-mem "^5.0.1" + level-ws "^2.0.0" + readable-stream "^3.6.0" + semaphore-async-await "^1.5.1" methods@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" @@ -3590,58 +4696,82 @@ miller-rabin@^4.0.0: mime-db@1.44.0: version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: mime-db "1.44.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== min-document@^2.19.0: version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= dependencies: dom-walk "^0.1.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= +"minimatch@2 || 3", minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.5, minimist@~1.2.5: +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.5: version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" @@ -3649,44 +4779,80 @@ minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: minizlib@^1.2.1: version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: minipass "^2.9.0" mkdirp-promise@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz" integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= dependencies: mkdirp "*" mkdirp@*, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" - integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== - dependencies: - minimist "^1.2.5" - -mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.5.5, mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mocha@^6.2.2: - version "6.2.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" - integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== +mkdirp@0.5.x: + version "0.5.6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mnemonist@^0.38.0: + version "0.38.5" + resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz" + integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== + dependencies: + obliterator "^2.0.0" + +mocha@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.0.0.tgz#205447d8993ec755335c4b13deba3d3a13c4def9" + integrity sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +mocha@^7.1.1: + version "7.2.0" + resolved "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz" + integrity sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ== dependencies: ansi-colors "3.2.3" browser-stdout "1.3.1" + chokidar "3.3.0" debug "3.2.6" diff "3.5.0" escape-string-regexp "1.0.5" @@ -3695,11 +4861,11 @@ mocha@^6.2.2: growl "1.10.5" he "1.2.0" js-yaml "3.13.1" - log-symbols "2.2.0" + log-symbols "3.0.0" minimatch "3.0.4" - mkdirp "0.5.4" + mkdirp "0.5.5" ms "2.1.1" - node-environment-flags "1.0.5" + node-environment-flags "1.0.6" object.assign "4.1.0" strip-json-comments "2.0.1" supports-color "6.0.0" @@ -3711,93 +4877,173 @@ mocha@^6.2.2: mock-fs@^4.1.0: version "4.12.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.12.0.tgz#a5d50b12d2d75e5bec9dac3b67ffe3c41d31ade4" + resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.12.0.tgz" integrity sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ== ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.1.1: +ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nan@^2.0.8, nan@^2.14.0: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +murmur-128@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/murmur-128/-/murmur-128-0.2.1.tgz" + integrity sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg== + dependencies: + encode-utf8 "^1.0.2" + fmix "^0.1.0" + imul "^1.0.0" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== nano-json-stream-parser@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + resolved "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz" integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= -ncp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" - integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + next-tick@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + node-addon-api@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-environment-flags@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" - integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== +node-emoji@^1.10.0: + version "1.11.0" + resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== + dependencies: + lodash "^4.17.21" + +node-environment-flags@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" + integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== dependencies: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-fetch@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" - integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= - node-fetch@^2.6.0: version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -node-fetch@~1.7.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.5.0" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + +nofilter@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz" + integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== + +nopt@3.x: + version "3.0.6" + resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" + integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" + abbrev "1" -node-gyp-build@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" - integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^4.1.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== number-to-bn@1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + resolved "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz" integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= dependencies: bn.js "4.11.6" @@ -3805,43 +5051,25 @@ number-to-bn@1.7.0: oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-inspect@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" +object-inspect@^1.12.0, object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.11, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - -object.assign@4.1.0, object.assign@^4.1.0: +object.assign@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== @@ -3851,63 +5079,121 @@ object.assign@4.1.0, object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.5" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" + integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== + dependencies: + array.prototype.reduce "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" -oboe@2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" - integrity sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY= +obliterator@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" + integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== + +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz" + integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== dependencies: http-https "^1.0.0" on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.3" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ordinal@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz" + integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== -os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= p-cancelable@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz" integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== p-cancelable@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-limit@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" @@ -3919,9 +5205,16 @@ p-limit@^2.0.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-locate@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: p-limit "^1.1.0" @@ -3933,16 +5226,30 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + p-timeout@^1.1.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz" integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= dependencies: p-finally "^1.0.0" p-try@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= p-try@^2.0.0: @@ -3950,9 +5257,16 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: asn1.js "^5.2.0" @@ -3961,49 +5275,87 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-cache-control@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" + integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== + parse-headers@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" + resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz" integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -path-browserify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -pathval@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +pbkdf2@^3.0.17, pbkdf2@^3.0.3: version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz" integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== dependencies: create-hash "^1.1.2" @@ -4012,84 +5364,95 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: safe-buffer "^5.0.1" sha.js "^2.4.8" -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -precond@0.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" - integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw= +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prepend-http@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= prepend-http@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -prettier@^1.19.1: +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier-plugin-solidity@^1.0.0-beta.17: + version "1.0.0-dev.22" + resolved "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-dev.22.tgz" + integrity sha512-0v+O2/sqq6WMlZ2TsnRBXaNmKF4zANn0uLLWuvNra4BjmKUtp33EZ4AVKB26fzWy14BkVGeJfPAtKry0x3SFfQ== + dependencies: + "@solidity-parser/parser" "^0.14.2" + emoji-regex "^10.1.0" + escape-string-regexp "^4.0.0" + semver "^7.3.7" + solidity-comments-extractor "^0.0.7" + string-width "^4.2.3" + +prettier@^1.14.3: version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== +prettier@^2.3.1, prettier@^2.3.2: + version "2.7.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@~0.5.1: version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + resolved "https://registry.npmjs.org/process/-/process-0.5.2.tgz" integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= -promise-to-callback@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" - integrity sha1-XSp0kBC/tn2WNZj805YHRqaP7vc= +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise@^8.0.0: + version "8.1.0" + resolved "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz" + integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" + asap "~2.0.6" proxy-addr@~2.0.5: version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz" integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== dependencies: forwarded "~0.1.2" @@ -4097,22 +5460,17 @@ proxy-addr@~2.0.5: prr@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -pseudomap@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - psl@^1.1.28: version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== public-encrypt@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" @@ -4122,129 +5480,78 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" -pull-cat@^1.1.9: - version "1.1.11" - resolved "https://registry.yarnpkg.com/pull-cat/-/pull-cat-1.1.11.tgz#b642dd1255da376a706b6db4fa962f5fdb74c31b" - integrity sha1-tkLdElXaN2pwa220+pYvX9t0wxs= - -pull-defer@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/pull-defer/-/pull-defer-0.2.3.tgz#4ee09c6d9e227bede9938db80391c3dac489d113" - integrity sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA== - -pull-level@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pull-level/-/pull-level-2.0.4.tgz#4822e61757c10bdcc7cf4a03af04c92734c9afac" - integrity sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg== - dependencies: - level-post "^1.0.7" - pull-cat "^1.1.9" - pull-live "^1.0.1" - pull-pushable "^2.0.0" - pull-stream "^3.4.0" - pull-window "^2.1.4" - stream-to-pull-stream "^1.7.1" - -pull-live@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pull-live/-/pull-live-1.0.1.tgz#a4ecee01e330155e9124bbbcf4761f21b38f51f5" - integrity sha1-pOzuAeMwFV6RJLu89HYfIbOPUfU= - dependencies: - pull-cat "^1.1.9" - pull-stream "^3.4.0" - -pull-pushable@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pull-pushable/-/pull-pushable-2.2.0.tgz#5f2f3aed47ad86919f01b12a2e99d6f1bd776581" - integrity sha1-Xy867UethpGfAbEqLpnW8b13ZYE= - -pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.6.8: - version "3.6.14" - resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.6.14.tgz#529dbd5b86131f4a5ed636fdf7f6af00781357ee" - integrity sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew== - -pull-window@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/pull-window/-/pull-window-2.1.4.tgz#fc3b86feebd1920c7ae297691e23f705f88552f0" - integrity sha1-/DuG/uvRkgx64pdpHiP3BfiFUvA= - dependencies: - looper "^2.0.0" - pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - punycode@2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz" integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== qs@6.7.0: version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@^6.4.0, qs@^6.7.0, qs@^6.9.4: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + qs@~6.5.2: version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== query-string@^5.0.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== dependencies: decode-uri-component "^0.2.0" object-assign "^4.1.0" strict-uri-encode "^1.0.0" -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" -randomhex@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - integrity sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU= - range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== raw-body@2.4.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== dependencies: bytes "3.1.0" @@ -4252,19 +5559,19 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -readable-stream@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= +raw-body@^2.4.1: + version "2.5.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.2.2: version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -4275,83 +5582,100 @@ readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.6.0: +readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= +readdirp@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" + integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" + picomatch "^2.0.4" -regenerate@^1.2.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== +recursive-readdir@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" + minimatch "3.0.4" -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + functions-have-names "^1.2.2" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^2.0.0: +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +req-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= + resolved "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz" + integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" + req-from "^2.0.0" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= +req-from@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz" + integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== + dependencies: + resolve-from "^3.0.0" -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== dependencies: - jsesc "~0.5.0" + lodash "^4.17.19" -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= +request-promise-native@^1.0.5: + version "1.0.9" + resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: - is-finite "^1.0.0" + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" -request@^2.79.0, request@^2.85.0: +request@^2.79.0, request@^2.88.0: version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -4377,12 +5701,12 @@ request@^2.79.0, request@^2.85.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^2.0.0: +require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== require-main-filename@^2.0.0: @@ -4390,189 +5714,212 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -resolve@~1.17.0: +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@1.1.x: + version "1.1.7" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== + +resolve@1.17.0: version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" +resolve@^1.1.6: + version "1.22.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= dependencies: lowercase-keys "^1.0.0" -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: - through "~2.3.4" + glob "^7.1.3" -rimraf@^2.2.8, rimraf@^2.6.3: +rimraf@^2.2.8: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4: +rlp@^2.2.3: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + +rlp@^2.2.4: version "2.2.6" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" + resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz" integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== dependencies: bn.js "^4.11.1" +run-async@^2.2.0: + version "2.4.1" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + rustbn.js@~0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" + resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== +rxjs@^6.4.0: + version "6.6.7" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-event-emitter@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" - integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: - events "^3.0.0" + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scrypt-js@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.3.tgz#bb0040be03043da9a012a2cea9fc9f852cfc87d4" - integrity sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q= +sc-istanbul@^0.4.5: + version "0.4.6" + resolved "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz" + integrity sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g== + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" scrypt-js@2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== -scrypt-js@^3.0.0: +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== -scrypt.js@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.3.0.tgz#6c62d61728ad533c8c376a2e5e3e86d41a95c4c0" - integrity sha512-42LTc1nyFsyv/o0gcHtDztrn+aqpkaCNt5Qh7ATBZfhEZU7IC/0oT/qbBH+uRNoAPvs2fwiOId68FDEoSRA8/A== - dependencies: - scryptsy "^1.2.1" - optionalDependencies: - scrypt "^6.0.2" - -scrypt@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/scrypt/-/scrypt-6.0.3.tgz#04e014a5682b53fa50c2d5cce167d719c06d870d" - integrity sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0= - dependencies: - nan "^2.0.8" - -scryptsy@2.1.0, scryptsy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" - integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== - -scryptsy@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-1.2.1.tgz#a3225fa4b2524f802700761e2855bdf3b2d92163" - integrity sha1-oyJfpLJST4AnAHYeKFW987LZIWM= - dependencies: - pbkdf2 "^3.0.3" - -secp256k1@^3.0.1: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - secp256k1@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz" integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== dependencies: elliptic "^6.5.2" node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -seedrandom@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.1.tgz#eb3dde015bcf55df05a233514e5df44ef9dce083" - integrity sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg== - -seek-bzip@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" - integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== - dependencies: - commander "^2.8.1" - -semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - -semver@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db" - integrity sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A== +semaphore-async-await@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz" + integrity sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg== -semver@^5.3.0, semver@^5.5.0, semver@^5.7.0: +semver@^5.5.0, semver@^5.5.1, semver@^5.7.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== +semver@^7.2.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: + version "7.3.7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" send@0.17.1: version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== dependencies: debug "2.6.9" @@ -4589,9 +5936,16 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + serve-static@1.14.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: encodeurl "~1.0.2" @@ -4601,7 +5955,7 @@ serve-static@1.14.1: servify@^0.1.12: version "0.1.12" - resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + resolved "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz" integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== dependencies: body-parser "^1.16.0" @@ -4613,62 +5967,136 @@ servify@^0.1.12: set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== setimmediate@1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz" integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= setprototypeof@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" +sha1@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz" + integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== + dependencies: + charenc ">= 0.0.1" + crypt ">= 0.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shelljs@^0.8.3: + version "0.8.5" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + simple-concat@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^2.7.0: version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz" integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== dependencies: decompress-response "^3.3.0" once "^1.3.1" simple-concat "^1.0.0" -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" -solc@0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.6.6.tgz#0d4b9c2e7105dd6015583f5e1c5ba6a35861ea71" - integrity sha512-p0IO/1fRaHWKN+qR+mUivpwnBpFYD8EoFAzT8VL4lmllNwsyEO7TJJAc2QK0XUeWOYOT92NWKhDNNNLTVbHShA== +solc@0.7.3: + version "0.7.3" + resolved "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz" + integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== dependencies: command-exists "^1.2.8" commander "3.0.2" + follow-redirects "^1.12.1" fs-extra "^0.30.0" js-sha3 "0.8.0" memorystream "^0.3.1" @@ -4676,61 +6104,105 @@ solc@0.6.6: semver "^5.5.0" tmp "0.0.33" -solc@^0.6.3: - version "0.6.12" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.6.12.tgz#48ac854e0c729361b22a7483645077f58cba080e" - integrity sha512-Lm0Ql2G9Qc7yPP2Ba+WNmzw2jwsrd3u4PobHYlSOxaut3TtUbj9+5ZrT6f4DUpNPEoBaFUOEg9Op9C0mk7ge9g== +solc@0.8.15: + version "0.8.15" + resolved "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz" + integrity sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w== dependencies: command-exists "^1.2.8" - commander "3.0.2" - fs-extra "^0.30.0" + commander "^8.1.0" + follow-redirects "^1.12.1" js-sha3 "0.8.0" memorystream "^0.3.1" - require-from-string "^2.0.0" semver "^5.5.0" tmp "0.0.33" -source-map-support@0.5.12: - version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.17: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== +solhint-plugin-prettier@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz" + integrity sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA== + dependencies: + prettier-linter-helpers "^1.0.0" + +solhint@^3.3.6: + version "3.3.7" + resolved "https://registry.npmjs.org/solhint/-/solhint-3.3.7.tgz" + integrity sha512-NjjjVmXI3ehKkb3aNtRJWw55SUVJ8HMKKodwe0HnejA+k0d2kmhw7jvpa+MCTbcEgt8IWSwx0Hu6aCo/iYOZzQ== + dependencies: + "@solidity-parser/parser" "^0.14.1" + ajv "^6.6.1" + antlr4 "4.7.1" + ast-parents "0.0.1" + chalk "^2.4.2" + commander "2.18.0" + cosmiconfig "^5.0.7" + eslint "^5.6.0" + fast-diff "^1.1.2" + glob "^7.1.3" + ignore "^4.0.6" + js-yaml "^3.12.0" + lodash "^4.17.11" + semver "^6.3.0" + optionalDependencies: + prettier "^1.14.3" + +solidity-comments-extractor@^0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz" + integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== + +solidity-coverage@^0.7.20: + version "0.7.21" + resolved "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.7.21.tgz" + integrity sha512-O8nuzJ9yXiKUx3NdzVvHrUW0DxoNVcGzq/I7NzewNO9EZE3wYAQ4l8BwcnV64r4aC/HB6Vnw/q2sF0BQHv/3fg== + dependencies: + "@solidity-parser/parser" "^0.14.0" + "@truffle/provider" "^0.2.24" + chalk "^2.4.2" + death "^1.1.0" + detect-port "^1.3.0" + fs-extra "^8.1.0" + ghost-testrpc "^0.0.2" + global-modules "^2.0.0" + globby "^10.0.1" + jsonschema "^1.2.4" + lodash "^4.17.15" + node-emoji "^1.10.0" + pify "^4.0.1" + recursive-readdir "^2.2.2" + sc-istanbul "^0.4.5" + semver "^7.3.4" + shelljs "^0.8.3" + web3-utils "^1.3.0" + +source-map-support@^0.5.13: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" + integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== + dependencies: + amdefine ">=0.0.4" + sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" @@ -4743,27 +6215,41 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +stacktrace-parser@^0.1.10: + version "0.1.10" + resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" + integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== + dependencies: + type-fest "^0.7.1" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stream-to-pull-stream@^1.7.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz#4161aa2d2eb9964de60bfa1af7feaf917e874ece" - integrity sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg== - dependencies: - looper "^3.0.0" - pull-stream "^3.2.3" +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= -"string-width@^1.0.2 || 2": +string-format@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" + integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== + +"string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" @@ -4771,96 +6257,109 @@ strict-uri-encode@^1.0.0: string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trim@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" - integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - is-natural-number "^4.0.1" + ansi-regex "^5.0.1" strip-hex-prefix@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@2.0.1: +strip-json-comments@2.0.1, strip-json-comments@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@6.0.0: version "6.0.0" @@ -4869,26 +6368,46 @@ supports-color@6.0.0: dependencies: has-flag "^3.0.0" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^3.1.0: + version "3.2.3" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== + dependencies: + has-flag "^1.0.0" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -swarm-js@0.1.39: - version "0.1.39" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.39.tgz#79becb07f291d4b2a178c50fee7aa6e10342c0e8" - integrity sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg== +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +swarm-js@^0.1.40: + version "0.1.40" + resolved "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz" + integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== dependencies: bluebird "^3.5.0" buffer "^5.0.5" - decompress "^4.0.0" eth-lib "^0.1.26" fs-extra "^4.0.2" got "^7.1.0" @@ -4897,45 +6416,58 @@ swarm-js@0.1.39: mock-fs "^4.1.0" setimmediate "^1.0.5" tar "^4.0.2" - xhr-request-promise "^0.1.2" + xhr-request "^1.0.1" -tape@^4.6.3: - version "4.13.3" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.13.3.tgz#51b3d91c83668c7a45b1a594b607dee0a0b46278" - integrity sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw== - dependencies: - deep-equal "~1.1.1" - defined "~1.0.0" - dotignore "~0.1.2" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.6" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.0.5" - minimist "~1.2.5" - object-inspect "~1.7.0" - resolve "~1.17.0" - resumer "~0.0.0" - string.prototype.trim "~1.2.1" - through "~2.3.8" - -tar-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" +sync-request@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz" + integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== + dependencies: + http-response-object "^3.0.1" + sync-rpc "^1.2.1" + then-request "^6.0.0" + +sync-rpc@^1.2.1: + version "1.3.6" + resolved "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz" + integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== + dependencies: + get-port "^3.1.0" + +table-layout@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" + integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== + dependencies: + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +table@^6.0.9: + version "6.8.0" + resolved "https://registry.npmjs.org/table/-/table-6.8.0.tgz" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" tar@^4.0.2: version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + resolved "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== dependencies: chownr "^1.1.1" @@ -4946,138 +6478,190 @@ tar@^4.0.2: safe-buffer "^5.1.2" yallist "^3.0.3" -through2@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.8, through@~2.3.4, through@~2.3.8: +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +then-request@^6.0.0: + version "6.0.2" + resolved "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz" + integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== + dependencies: + "@types/concat-stream" "^1.6.0" + "@types/form-data" "0.0.33" + "@types/node" "^8.0.0" + "@types/qs" "^6.2.31" + caseless "~0.12.0" + concat-stream "^1.6.0" + form-data "^2.2.0" + http-basic "^8.1.1" + http-response-object "^3.0.1" + promise "^8.0.0" + qs "^6.4.0" + +through@^2.3.6: version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= -tmp@0.0.33: +tmp@0.0.33, tmp@^0.0.33: version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - to-readable-stream@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + toidentifier@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -tough-cookie@~2.5.0: +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" punycode "^2.1.1" -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -truffle-flattener@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/truffle-flattener/-/truffle-flattener-1.4.4.tgz#747a99204001f7d6dce43ea92771e1ff6ac3eafb" - integrity sha512-S/WmvubzlUj1mn56wEI6yo1bmPpKDNdEe5rtyVC1C5iNfZWobD/V69pAYI15IBDJrDqUyh+iXgpTkzov50zpQw== - dependencies: - "@resolver-engine/imports-fs" "^0.2.2" - "@solidity-parser/parser" "^0.6.0" - find-up "^2.1.0" - mkdirp "^1.0.4" - tsort "0.0.1" +"true-case-path@^2.2.1": + version "2.2.1" + resolved "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz" + integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q== -truffle-hdwallet-provider@^1.0.17: - version "1.0.17" - resolved "https://registry.yarnpkg.com/truffle-hdwallet-provider/-/truffle-hdwallet-provider-1.0.17.tgz#fe8edd0d6974eeb31af9959e41525fb19abd74ca" - integrity sha512-s6DvSP83jiIAc6TUcpr7Uqnja1+sLGJ8og3X7n41vfyC4OCaKmBtXL5HOHf+SsU3iblOvnbFDgmN6Y1VBL/fsg== +ts-command-line-args@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.3.1.tgz#b6188e42efc6cf7a8898e438a873fbb15505ddd6" + integrity sha512-FR3y7pLl/fuUNSmnPhfLArGqRrpojQgIEEOVzYx9DhTmfIN7C9RWSfpkJEF4J+Gk7aVx5pak8I7vWZsaN4N84g== dependencies: - any-promise "^1.3.0" - bindings "^1.3.1" - web3 "1.2.1" - websocket "^1.0.28" + chalk "^4.1.0" + command-line-args "^5.1.1" + command-line-usage "^6.1.0" + string-format "^2.0.0" -ts-node@^8.5.4: - version "8.10.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" - integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== - dependencies: +ts-essentials@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz" + integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== + +ts-node@10.7.0: + version "10.7.0" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz" + integrity sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A== + dependencies: + "@cspotcode/source-map-support" "0.7.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" arg "^4.1.0" + create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" - source-map-support "^0.5.17" + v8-compile-cache-lib "^3.0.0" yn "3.1.1" +tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + tsort@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" + resolved "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz" integrity sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y= +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" -tweetnacl-util@^0.15.0: +tweetnacl-util@^0.15.1: version "0.15.1" - resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -tweetnacl@^1.0.0: +tweetnacl@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" + integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" @@ -5085,707 +6669,512 @@ type-is@~1.6.17, type-is@~1.6.18: type@^1.0.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + resolved "https://registry.npmjs.org/type/-/type-2.0.0.tgz" integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== +typechain@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.1.0.tgz#fc4902ce596519cb2ccfd012e4ddf92a9945b569" + integrity sha512-5jToLgKTjHdI1VKqs/K8BLYy42Sr3o8bV5ojh4MnR9ExHO83cyyUdw+7+vMJCpKXUiVUvARM4qmHTFuyaCMAZQ== + dependencies: + "@types/prettier" "^2.1.1" + debug "^4.3.1" + fs-extra "^7.0.0" + glob "7.1.7" + js-sha3 "^0.8.0" + lodash "^4.17.15" + mkdirp "^1.0.4" + prettier "^2.3.1" + ts-command-line-args "^2.2.0" + ts-essentials "^7.0.1" + typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@^3.7.3, typescript@^3.9.5: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== +typescript@^3.9.5: + version "3.9.10" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" + integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== -typewise-core@^1.2, typewise-core@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/typewise-core/-/typewise-core-1.2.0.tgz#97eb91805c7f55d2f941748fa50d315d991ef195" - integrity sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU= +typescript@^4.5.2: + version "4.7.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== -typewise@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typewise/-/typewise-1.0.3.tgz#1067936540af97937cc5dcf9922486e9fa284651" - integrity sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE= - dependencies: - typewise-core "^1.2.0" +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== -typewiselite@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typewiselite/-/typewiselite-1.0.0.tgz#c8882fa1bb1092c06005a97f34ef5c8508e3664e" - integrity sha1-yIgvobsQksBgBal/NO9chQjjZk4= +typical@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + +uglify-js@^3.1.4: + version "3.16.1" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.1.tgz" + integrity sha512-X5BGTIDH8U6IQ1TIRP62YC36k+ULAa1d59BxlWvPUJ1NkW5L3FwcGfEzuVvGmhJFBu0YJ5Ge25tmRISqCmLiRQ== ultron@~1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== -unbzip2-stream@^1.0.9: - version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - buffer "^5.2.1" - through "^2.3.8" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== +undici@^5.4.0: + version "5.5.1" + resolved "https://registry.npmjs.org/undici/-/undici-5.5.1.tgz" + integrity sha512-MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw== universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -unorm@^1.3.3: - version "1.6.0" - resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af" - integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= uri-js@^4.2.2: version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: punycode "^2.1.0" url-parse-lax@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz" integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= dependencies: prepend-http "^1.0.1" url-parse-lax@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= dependencies: prepend-http "^2.0.0" url-set-query@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + resolved "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz" integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= url-to-options@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz" integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= +utf-8-validate@^5.0.2: + version "5.0.9" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz" + integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== dependencies: - punycode "1.3.2" - querystring "0.2.0" + node-gyp-build "^4.3.0" -utf8@3.0.0, utf8@^3.0.0: +utf8@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + resolved "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util.promisify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== +util@^0.12.0: + version "0.12.4" + resolved "https://registry.npmjs.org/util/-/util-0.12.4.tgz" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" + resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz" integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= uuid@3.3.2: version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== uuid@^3.3.2: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + vary@^1, vary@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" -web3-bzz@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.1.tgz#c3bd1e8f0c02a13cd6d4e3c3e9e1713f144f6f0d" - integrity sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw== - dependencies: - got "9.6.0" - swarm-js "0.1.39" - underscore "1.9.1" - -web3-bzz@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.4.tgz#a4adb7a8cba3d260de649bdb1f14ed359bfb3821" - integrity sha512-MqhAo/+0iQSMBtt3/QI1rU83uvF08sYq8r25+OUZ+4VtihnYsmkkca+rdU0QbRyrXY2/yGIpI46PFdh0khD53A== +web3-bzz@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.3.tgz" + integrity sha512-SlIkAqG0eS6cBS9Q2eBOTI1XFzqh83RqGJWnyrNZMDxUwsTVHL+zNnaPShVPvrWQA1Ub5b0bx1Kc5+qJVxsTJg== dependencies: - "@types/node" "^10.12.18" + "@types/node" "^12.12.6" got "9.6.0" - swarm-js "0.1.39" - underscore "1.9.1" - -web3-core-helpers@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz#f5f32d71c60a4a3bd14786118e633ce7ca6d5d0d" - integrity sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw== - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.1" - web3-utils "1.2.1" - -web3-core-helpers@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.4.tgz#ffd425861f4d66b3f38df032afdb39ea0971fc0f" - integrity sha512-U7wbsK8IbZvF3B7S+QMSNP0tni/6VipnJkB0tZVEpHEIV2WWeBHYmZDnULWcsS/x/jn9yKhJlXIxWGsEAMkjiw== - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.4" - web3-utils "1.2.4" - -web3-core-method@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.1.tgz#9df1bafa2cd8be9d9937e01c6a47fc768d15d90a" - integrity sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ== - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.1" - web3-core-promievent "1.2.1" - web3-core-subscriptions "1.2.1" - web3-utils "1.2.1" - -web3-core-method@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.4.tgz#a0fbc50b8ff5fd214021435cc2c6d1e115807aed" - integrity sha512-8p9kpL7di2qOVPWgcM08kb+yKom0rxRCMv6m/K+H+yLSxev9TgMbCgMSbPWAHlyiF3SJHw7APFKahK5Z+8XT5A== - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.4" - web3-core-promievent "1.2.4" - web3-core-subscriptions "1.2.4" - web3-utils "1.2.4" - -web3-core-promievent@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz#003e8a3eb82fb27b6164a6d5b9cad04acf733838" - integrity sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw== - dependencies: - any-promise "1.3.0" - eventemitter3 "3.1.2" - -web3-core-promievent@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.4.tgz#75e5c0f2940028722cdd21ba503ebd65272df6cb" - integrity sha512-gEUlm27DewUsfUgC3T8AxkKi8Ecx+e+ZCaunB7X4Qk3i9F4C+5PSMGguolrShZ7Zb6717k79Y86f3A00O0VAZw== - dependencies: - any-promise "1.3.0" - eventemitter3 "3.1.2" - -web3-core-requestmanager@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz#fa2e2206c3d738db38db7c8fe9c107006f5c6e3d" - integrity sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg== - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.1" - web3-providers-http "1.2.1" - web3-providers-ipc "1.2.1" - web3-providers-ws "1.2.1" - -web3-core-requestmanager@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.4.tgz#0a7020a23fb91c6913c611dfd3d8c398d1e4b4a8" - integrity sha512-eZJDjyNTDtmSmzd3S488nR/SMJtNnn/GuwxnMh3AzYCqG3ZMfOylqTad2eYJPvc2PM5/Gj1wAMQcRpwOjjLuPg== - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.4" - web3-providers-http "1.2.4" - web3-providers-ipc "1.2.4" - web3-providers-ws "1.2.4" - -web3-core-subscriptions@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz#8c2368a839d4eec1c01a4b5650bbeb82d0e4a099" - integrity sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g== - dependencies: - eventemitter3 "3.1.2" - underscore "1.9.1" - web3-core-helpers "1.2.1" - -web3-core-subscriptions@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.4.tgz#0dc095b5cfd82baa527a39796e3515a846b21b99" - integrity sha512-3D607J2M8ymY9V+/WZq4MLlBulwCkwEjjC2U+cXqgVO1rCyVqbxZNCmHyNYHjDDCxSEbks9Ju5xqJxDSxnyXEw== - dependencies: - eventemitter3 "3.1.2" - underscore "1.9.1" - web3-core-helpers "1.2.4" - -web3-core@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.1.tgz#7278b58fb6495065e73a77efbbce781a7fddf1a9" - integrity sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg== - dependencies: - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-core-requestmanager "1.2.1" - web3-utils "1.2.1" - -web3-core@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.4.tgz#2df13b978dcfc59c2abaa887d27f88f21ad9a9d6" - integrity sha512-CHc27sMuET2cs1IKrkz7xzmTdMfZpYswe7f0HcuyneTwS1yTlTnHyqjAaTy0ZygAb/x4iaVox+Gvr4oSAqSI+A== - dependencies: - "@types/bignumber.js" "^5.0.0" - "@types/bn.js" "^4.11.4" - "@types/node" "^12.6.1" - web3-core-helpers "1.2.4" - web3-core-method "1.2.4" - web3-core-requestmanager "1.2.4" - web3-utils "1.2.4" - -web3-eth-abi@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz#9b915b1c9ebf82f70cca631147035d5419064689" - integrity sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g== - dependencies: - ethers "4.0.0-beta.3" - underscore "1.9.1" - web3-utils "1.2.1" - -web3-eth-abi@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.4.tgz#5b73e5ef70b03999227066d5d1310b168845e2b8" - integrity sha512-8eLIY4xZKoU3DSVu1pORluAw9Ru0/v4CGdw5so31nn+7fR8zgHMgwbFe0aOqWQ5VU42PzMMXeIJwt4AEi2buFg== - dependencies: - ethers "4.0.0-beta.3" - underscore "1.9.1" - web3-utils "1.2.4" - -web3-eth-accounts@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz#2741a8ef337a7219d57959ac8bd118b9d68d63cf" - integrity sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ== - dependencies: - any-promise "1.3.0" - crypto-browserify "3.12.0" - eth-lib "0.2.7" - scryptsy "2.1.0" - semver "6.2.0" - underscore "1.9.1" - uuid "3.3.2" - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-utils "1.2.1" - -web3-eth-accounts@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.4.tgz#ada6edc49542354328a85cafab067acd7f88c288" - integrity sha512-04LzT/UtWmRFmi4hHRewP5Zz43fWhuHiK5XimP86sUQodk/ByOkXQ3RoXyGXFMNoRxdcAeRNxSfA2DpIBc9xUw== - dependencies: - "@web3-js/scrypt-shim" "^0.1.0" - any-promise "1.3.0" + swarm-js "^0.1.40" + +web3-core-helpers@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz" + integrity sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw== + dependencies: + web3-eth-iban "1.5.3" + web3-utils "1.5.3" + +web3-core-method@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.3.tgz" + integrity sha512-8wJrwQ2qD9ibWieF9oHXwrJsUGrv3XAtEkNeyvyNMpktNTIjxJ2jaFGQUuLiyUrMubD18XXgLk4JS6PJU4Loeg== + dependencies: + "@ethereumjs/common" "^2.4.0" + "@ethersproject/transactions" "^5.0.0-beta.135" + web3-core-helpers "1.5.3" + web3-core-promievent "1.5.3" + web3-core-subscriptions "1.5.3" + web3-utils "1.5.3" + +web3-core-promievent@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz" + integrity sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg== + dependencies: + eventemitter3 "4.0.4" + +web3-core-requestmanager@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz" + integrity sha512-9k/Bze2rs8ONix5IZR+hYdMNQv+ark2Ek2kVcrFgWO+LdLgZui/rn8FikPunjE+ub7x7pJaKCgVRbYFXjo3ZWg== + dependencies: + util "^0.12.0" + web3-core-helpers "1.5.3" + web3-providers-http "1.5.3" + web3-providers-ipc "1.5.3" + web3-providers-ws "1.5.3" + +web3-core-subscriptions@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.3.tgz" + integrity sha512-L2m9vG1iRN6thvmv/HQwO2YLhOQlmZU8dpLG6GSo9FBN14Uch868Swk0dYVr3rFSYjZ/GETevSXU+O+vhCummA== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.5.3" + +web3-core@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.5.3.tgz" + integrity sha512-ACTbu8COCu+0eUNmd9pG7Q9EVsNkAg2w3Y7SqhDr+zjTgbSHZV01jXKlapm9z+G3AN/BziV3zGwudClJ4u4xXQ== + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-core-requestmanager "1.5.3" + web3-utils "1.5.3" + +web3-eth-abi@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz" + integrity sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.5.3" + +web3-eth-accounts@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz" + integrity sha512-pdGhXgeBaEJENMvRT6W9cmji3Zz/46ugFSvmnLLw79qi5EH7XJhKISNVb41eWCrs4am5GhI67GLx5d2s2a72iw== + dependencies: + "@ethereumjs/common" "^2.3.0" + "@ethereumjs/tx" "^3.2.1" crypto-browserify "3.12.0" - eth-lib "0.2.7" - ethereumjs-common "^1.3.2" - ethereumjs-tx "^2.1.1" - underscore "1.9.1" + eth-lib "0.2.8" + ethereumjs-util "^7.0.10" + scrypt-js "^3.0.1" uuid "3.3.2" - web3-core "1.2.4" - web3-core-helpers "1.2.4" - web3-core-method "1.2.4" - web3-utils "1.2.4" - -web3-eth-contract@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz#3542424f3d341386fd9ff65e78060b85ac0ea8c4" - integrity sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g== - dependencies: - underscore "1.9.1" - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-core-promievent "1.2.1" - web3-core-subscriptions "1.2.1" - web3-eth-abi "1.2.1" - web3-utils "1.2.1" - -web3-eth-contract@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.4.tgz#68ef7cc633232779b0a2c506a810fbe903575886" - integrity sha512-b/9zC0qjVetEYnzRA1oZ8gF1OSSUkwSYi5LGr4GeckLkzXP7osEnp9lkO/AQcE4GpG+l+STnKPnASXJGZPgBRQ== - dependencies: - "@types/bn.js" "^4.11.4" - underscore "1.9.1" - web3-core "1.2.4" - web3-core-helpers "1.2.4" - web3-core-method "1.2.4" - web3-core-promievent "1.2.4" - web3-core-subscriptions "1.2.4" - web3-eth-abi "1.2.4" - web3-utils "1.2.4" - -web3-eth-ens@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz#a0e52eee68c42a8b9865ceb04e5fb022c2d971d5" - integrity sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q== - dependencies: + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-utils "1.5.3" + +web3-eth-contract@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.3.tgz" + integrity sha512-Gdlt1L6cdHe83k7SdV6xhqCytVtOZkjD0kY/15x441AuuJ4JLubCHuqu69k2Dr3tWifHYVys/vG8QE/W16syGg== + dependencies: + "@types/bn.js" "^4.11.5" + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-core-promievent "1.5.3" + web3-core-subscriptions "1.5.3" + web3-eth-abi "1.5.3" + web3-utils "1.5.3" + +web3-eth-ens@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.3.tgz" + integrity sha512-QmGFFtTGElg0E+3xfCIFhiUF+1imFi9eg/cdsRMUZU4F1+MZCC/ee+IAelYLfNTGsEslCqfAusliKOT9DdGGnw== + dependencies: + content-hash "^2.5.2" eth-ens-namehash "2.0.8" - underscore "1.9.1" - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-promievent "1.2.1" - web3-eth-abi "1.2.1" - web3-eth-contract "1.2.1" - web3-utils "1.2.1" - -web3-eth-ens@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.4.tgz#b95b3aa99fb1e35c802b9e02a44c3046a3fa065e" - integrity sha512-g8+JxnZlhdsCzCS38Zm6R/ngXhXzvc3h7bXlxgKU4coTzLLoMpgOAEz71GxyIJinWTFbLXk/WjNY0dazi9NwVw== - dependencies: - eth-ens-namehash "2.0.8" - underscore "1.9.1" - web3-core "1.2.4" - web3-core-helpers "1.2.4" - web3-core-promievent "1.2.4" - web3-eth-abi "1.2.4" - web3-eth-contract "1.2.4" - web3-utils "1.2.4" - -web3-eth-iban@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz#2c3801718946bea24e9296993a975c80b5acf880" - integrity sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ== - dependencies: - bn.js "4.11.8" - web3-utils "1.2.1" - -web3-eth-iban@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.4.tgz#8e0550fd3fd8e47a39357d87fe27dee9483ee476" - integrity sha512-D9HIyctru/FLRpXakRwmwdjb5bWU2O6UE/3AXvRm6DCOf2e+7Ve11qQrPtaubHfpdW3KWjDKvlxV9iaFv/oTMQ== - dependencies: - bn.js "4.11.8" - web3-utils "1.2.4" - -web3-eth-personal@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz#244e9911b7b482dc17c02f23a061a627c6e47faf" - integrity sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg== - dependencies: - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-net "1.2.1" - web3-utils "1.2.1" - -web3-eth-personal@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.4.tgz#3224cca6851c96347d9799b12c1b67b2a6eb232b" - integrity sha512-5Russ7ZECwHaZXcN3DLuLS7390Vzgrzepl4D87SD6Sn1DHsCZtvfdPIYwoTmKNp69LG3mORl7U23Ga5YxqkICw== - dependencies: - "@types/node" "^12.6.1" - web3-core "1.2.4" - web3-core-helpers "1.2.4" - web3-core-method "1.2.4" - web3-net "1.2.4" - web3-utils "1.2.4" - -web3-eth@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.1.tgz#b9989e2557c73a9e8ffdc107c6dafbe72c79c1b0" - integrity sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA== - dependencies: - underscore "1.9.1" - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-core-subscriptions "1.2.1" - web3-eth-abi "1.2.1" - web3-eth-accounts "1.2.1" - web3-eth-contract "1.2.1" - web3-eth-ens "1.2.1" - web3-eth-iban "1.2.1" - web3-eth-personal "1.2.1" - web3-net "1.2.1" - web3-utils "1.2.1" - -web3-eth@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.4.tgz#24c3b1f1ac79351bbfb808b2ab5c585fa57cdd00" - integrity sha512-+j+kbfmZsbc3+KJpvHM16j1xRFHe2jBAniMo1BHKc3lho6A8Sn9Buyut6odubguX2AxoRArCdIDCkT9hjUERpA== - dependencies: - underscore "1.9.1" - web3-core "1.2.4" - web3-core-helpers "1.2.4" - web3-core-method "1.2.4" - web3-core-subscriptions "1.2.4" - web3-eth-abi "1.2.4" - web3-eth-accounts "1.2.4" - web3-eth-contract "1.2.4" - web3-eth-ens "1.2.4" - web3-eth-iban "1.2.4" - web3-eth-personal "1.2.4" - web3-net "1.2.4" - web3-utils "1.2.4" - -web3-net@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.1.tgz#edd249503315dd5ab4fa00220f6509d95bb7ab10" - integrity sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw== - dependencies: - web3-core "1.2.1" - web3-core-method "1.2.1" - web3-utils "1.2.1" - -web3-net@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.4.tgz#1d246406d3aaffbf39c030e4e98bce0ca5f25458" - integrity sha512-wKOsqhyXWPSYTGbp7ofVvni17yfRptpqoUdp3SC8RAhDmGkX6irsiT9pON79m6b3HUHfLoBilFQyt/fTUZOf7A== - dependencies: - web3-core "1.2.4" - web3-core-method "1.2.4" - web3-utils "1.2.4" - -web3-provider-engine@14.2.1: - version "14.2.1" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz#ef351578797bf170e08d529cb5b02f8751329b95" - integrity sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^3.0.0" - eth-json-rpc-infura "^3.1.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-providers-http@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.1.tgz#c93ea003a42e7b894556f7e19dd3540f947f5013" - integrity sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ== - dependencies: - web3-core-helpers "1.2.1" - xhr2-cookies "1.1.0" - -web3-providers-http@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.4.tgz#514fcad71ae77832c2c15574296282fbbc5f4a67" - integrity sha512-dzVCkRrR/cqlIrcrWNiPt9gyt0AZTE0J+MfAu9rR6CyIgtnm1wFUVVGaxYRxuTGQRO4Dlo49gtoGwaGcyxqiTw== - dependencies: - web3-core-helpers "1.2.4" + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-promievent "1.5.3" + web3-eth-abi "1.5.3" + web3-eth-contract "1.5.3" + web3-utils "1.5.3" + +web3-eth-iban@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz" + integrity sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw== + dependencies: + bn.js "^4.11.9" + web3-utils "1.5.3" + +web3-eth-personal@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz" + integrity sha512-JzibJafR7ak/Icas8uvos3BmUNrZw1vShuNR5Cxjo+vteOC8XMqz1Vr7RH65B4bmlfb3bm9xLxetUHO894+Sew== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-net "1.5.3" + web3-utils "1.5.3" + +web3-eth@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.3.tgz" + integrity sha512-saFurA1L23Bd7MEf7cBli6/jRdMhD4X/NaMiO2mdMMCXlPujoudlIJf+VWpRWJpsbDFdu7XJ2WHkmBYT5R3p1Q== + dependencies: + web3-core "1.5.3" + web3-core-helpers "1.5.3" + web3-core-method "1.5.3" + web3-core-subscriptions "1.5.3" + web3-eth-abi "1.5.3" + web3-eth-accounts "1.5.3" + web3-eth-contract "1.5.3" + web3-eth-ens "1.5.3" + web3-eth-iban "1.5.3" + web3-eth-personal "1.5.3" + web3-net "1.5.3" + web3-utils "1.5.3" + +web3-net@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.5.3.tgz" + integrity sha512-0W/xHIPvgVXPSdLu0iZYnpcrgNnhzHMC888uMlGP5+qMCt8VuflUZHy7tYXae9Mzsg1kxaJAS5lHVNyeNw4CoQ== + dependencies: + web3-core "1.5.3" + web3-core-method "1.5.3" + web3-utils "1.5.3" + +web3-providers-http@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.3.tgz" + integrity sha512-5DpUyWGHtDAr2RYmBu34Fu+4gJuBAuNx2POeiJIooUtJ+Mu6pIx4XkONWH6V+Ez87tZAVAsFOkJRTYuzMr3rPw== + dependencies: + web3-core-helpers "1.5.3" xhr2-cookies "1.1.0" -web3-providers-ipc@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz#017bfc687a8fc5398df2241eb98f135e3edd672c" - integrity sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA== - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.1" - -web3-providers-ipc@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.4.tgz#9d6659f8d44943fb369b739f48df09092be459bd" - integrity sha512-8J3Dguffin51gckTaNrO3oMBo7g+j0UNk6hXmdmQMMNEtrYqw4ctT6t06YOf9GgtOMjSAc1YEh3LPrvgIsR7og== - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.4" - -web3-providers-ws@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz#2d941eaf3d5a8caa3214eff8dc16d96252b842cb" - integrity sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA== +web3-providers-ipc@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.3.tgz" + integrity sha512-JmeAptugVpmXI39LGxUSAymx0NOFdgpuI1hGQfIhbEAcd4sv7fhfd5D+ZU4oLHbRI8IFr4qfGU0uhR8BXhDzlg== dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.1" - websocket "github:web3-js/WebSocket-Node#polyfill/globalThis" + oboe "2.1.5" + web3-core-helpers "1.5.3" -web3-providers-ws@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.4.tgz#099ee271ee03f6ea4f5df9cfe969e83f4ce0e36f" - integrity sha512-F/vQpDzeK+++oeeNROl1IVTufFCwCR2hpWe5yRXN0ApLwHqXrMI7UwQNdJ9iyibcWjJf/ECbauEEQ8CHgE+MYQ== - dependencies: - "@web3-js/websocket" "^1.0.29" - underscore "1.9.1" - web3-core-helpers "1.2.4" - -web3-shh@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.1.tgz#4460e3c1e07faf73ddec24ccd00da46f89152b0c" - integrity sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA== +web3-providers-ws@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.3.tgz" + integrity sha512-6DhTw4Q7nm5CFYEUHOJM0gAb3xFx+9gWpVveg3YxJ/ybR1BUvEWo3bLgIJJtX56cYX0WyY6DS35a7f0LOI1kVg== dependencies: - web3-core "1.2.1" - web3-core-method "1.2.1" - web3-core-subscriptions "1.2.1" - web3-net "1.2.1" + eventemitter3 "4.0.4" + web3-core-helpers "1.5.3" + websocket "^1.0.32" -web3-shh@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.4.tgz#5c8ff5ab624a3b14f08af0d24d2b16c10e9f70dd" - integrity sha512-z+9SCw0dE+69Z/Hv8809XDbLj7lTfEv9Sgu8eKEIdGntZf4v7ewj5rzN5bZZSz8aCvfK7Y6ovz1PBAu4QzS4IQ== +web3-shh@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.3.tgz" + integrity sha512-COfEXfsqoV/BkcsNLRxQqnWc1Teb8/9GxdGag5GtPC5gQC/vsN+7hYVJUwNxY9LtJPKYTij2DHHnx6UkITng+Q== dependencies: - web3-core "1.2.4" - web3-core-method "1.2.4" - web3-core-subscriptions "1.2.4" - web3-net "1.2.4" + web3-core "1.5.3" + web3-core-method "1.5.3" + web3-core-subscriptions "1.5.3" + web3-net "1.5.3" -web3-utils@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.1.tgz#21466e38291551de0ab34558de21512ac4274534" - integrity sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA== +web3-utils@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz" + integrity sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q== dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" + bn.js "^4.11.9" + eth-lib "0.2.8" + ethereum-bloom-filters "^1.0.6" ethjs-unit "0.1.6" number-to-bn "1.7.0" - randomhex "0.1.5" - underscore "1.9.1" + randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.4.tgz#96832a39a66b05bf8862a5b0bdad2799d709d951" - integrity sha512-+S86Ip+jqfIPQWvw2N/xBQq5JNqCO0dyvukGdJm8fEWHZbckT4WxSpHbx+9KLEWY4H4x9pUwnoRkK87pYyHfgQ== +web3-utils@^1.3.0: + version "1.7.4" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz" + integrity sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA== dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" + bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" ethjs-unit "0.1.6" number-to-bn "1.7.0" randombytes "^2.1.0" - underscore "1.9.1" utf8 "3.0.0" -web3@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.1.tgz#5d8158bcca47838ab8c2b784a2dee4c3ceb4179b" - integrity sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw== - dependencies: - web3-bzz "1.2.1" - web3-core "1.2.1" - web3-eth "1.2.1" - web3-eth-personal "1.2.1" - web3-net "1.2.1" - web3-shh "1.2.1" - web3-utils "1.2.1" - -web3@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.4.tgz#6e7ab799eefc9b4648c2dab63003f704a1d5e7d9" - integrity sha512-xPXGe+w0x0t88Wj+s/dmAdASr3O9wmA9mpZRtixGZxmBexAF0MjfqYM+MS4tVl5s11hMTN3AZb8cDD4VLfC57A== - dependencies: - "@types/node" "^12.6.1" - web3-bzz "1.2.4" - web3-core "1.2.4" - web3-eth "1.2.4" - web3-eth-personal "1.2.4" - web3-net "1.2.4" - web3-shh "1.2.4" - web3-utils "1.2.4" - -websocket@1.0.29, "websocket@github:web3-js/WebSocket-Node#polyfill/globalThis": - version "1.0.29" - resolved "https://codeload.github.com/web3-js/WebSocket-Node/tar.gz/ef5ea2f41daf4a2113b80c9223df884b4d56c400" +web3@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/web3/-/web3-1.5.3.tgz" + integrity sha512-eyBg/1K44flfv0hPjXfKvNwcUfIVDI4NX48qHQe6wd7C8nPSdbWqo9vLy6ksZIt9NLa90HjI8HsGYgnMSUxn6w== dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" + web3-bzz "1.5.3" + web3-core "1.5.3" + web3-eth "1.5.3" + web3-eth-personal "1.5.3" + web3-net "1.5.3" + web3-shh "1.5.3" + web3-utils "1.5.3" -websocket@^1.0.28: - version "1.0.31" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.31.tgz#e5d0f16c3340ed87670e489ecae6144c79358730" - integrity sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ== +websocket@^1.0.32: + version "1.0.34" + resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" + integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== dependencies: + bufferutil "^4.0.1" debug "^2.2.0" es5-ext "^0.10.50" - nan "^2.14.0" typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" yaeti "^0.0.6" -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" -which@1.3.1: +which@1.3.1, which@^1.1.1, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -5793,6 +7182,29 @@ wide-align@1.1.3: dependencies: string-width "^1.0.2 || 2" +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +wordwrapjs@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" + integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.2.0" + +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -5802,37 +7214,56 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + ws@^3.0.0: version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz" integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== dependencies: async-limiter "~1.0.0" safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^5.1.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" +ws@^7.4.6: + version "7.5.8" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz" + integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== xhr-request-promise@^0.1.2: version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + resolved "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz" integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== dependencies: xhr-request "^1.1.0" -xhr-request@^1.1.0: +xhr-request@^1.0.1, xhr-request@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + resolved "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz" integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== dependencies: buffer-to-arraybuffer "^0.0.5" @@ -5845,14 +7276,14 @@ xhr-request@^1.1.0: xhr2-cookies@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" + resolved "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz" integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= dependencies: cookiejar "^2.1.1" -xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: +xhr@^2.0.4, xhr@^2.3.3: version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" + resolved "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz" integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== dependencies: global "~4.3.0" @@ -5862,36 +7293,39 @@ xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: xmlhttprequest@1.8.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + resolved "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= - dependencies: - object-keys "~0.4.0" - y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaeti@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yargs-parser@13.1.2, yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -5900,6 +7334,16 @@ yargs-parser@13.1.2, yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + yargs-unparser@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" @@ -5909,6 +7353,16 @@ yargs-unparser@1.6.0: lodash "^4.17.15" yargs "^13.3.0" +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + yargs@13.3.2, yargs@^13.3.0: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -5925,15 +7379,25 @@ yargs@13.3.2, yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.2" -yauzl@^2.4.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==