Contract 0xF38c5b39F29600765849cA38712F302b1522C9B8 8

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x8d48a858ac6d84f91ccb5a14486d2ff5759134e1a665e523b5ef0a44d688de7fApprove331349172024-03-27 3:53:102 days 7 hrs ago0x0b58857708a6f84e7ee04beaef069a7e6d1d4a0b IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000614697652
0xbd5b7373eb34495961402aa1f40d7ef2d123981dd3890aef6fea3dede1916f9fApprove329736692024-03-17 9:23:4012 days 2 hrs ago0x94abca0177eee1f1bd254744b0ce178e3ff66cff IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000075374177
0xe6712ff42ff375af71365991496628c9bae48e4f01fedb8ab622e62e70c5af37Approve328737572024-03-11 8:29:2018 days 3 hrs ago0x7a00d7fb260ea3b15e4f86fb9de9801ef3f1cf2c IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.0002692604
0x3859f4e00e96170fa75484b639915b618c935b9501661e0807d76be98a2c81bfApprove324420502024-02-14 4:05:0544 days 7 hrs ago0xb12292711373c6919ab9b10329601855ebc9fde2 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.00284221688
0xc8c2f2eb465e9150b94f09a5e96d3ca7ade7af725b9c7feffcc965f3c804e6ecApprove324420422024-02-14 4:04:2544 days 7 hrs ago0xb12292711373c6919ab9b10329601855ebc9fde2 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.001558161706
0x8e450396bdba0ed33a07b707167273102ae3dd685cfd71792b5548ad0d7de362Approve324418222024-02-14 3:45:0044 days 8 hrs ago0xb12292711373c6919ab9b10329601855ebc9fde2 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.001404609444
0x0715ae760916f9398c2d03a354bb1761228052317e3e0dba9e894bf9fdbbb49aApprove324008052024-02-11 15:44:3046 days 20 hrs ago0xf85fecef8f31739b29efe754ed7e4d12106bf7fc IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000105812785
0x39070cc880a1f858e93386a74d549532aa052863c5a81ee9f20909ac8655ae78Approve322796692024-02-04 5:27:3554 days 6 hrs ago0xc61336b9f40ea1e03f0200cd0f636256ac806aed IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.0002815394
0xa38b6f9756d5e39e3c6a74ee4ea806aa19e1706588322d58eb1a15c4e3807980Approve316073152023-12-24 20:01:2595 days 15 hrs ago0x53a4225fcb1f0d7ce311b65c8e38fd1765963e8f IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000069249
0x9d865c7dc41ad27a4e382934adaacf2e734691969b61f37fea94995ae53a77b5Approve313545982023-12-09 12:16:05110 days 23 hrs ago0xd143ed1ae715fb149cb2356ca18138e29d308e72 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000580942592
0xb18e95d50775afce87c37451131b083eab59e4a4387a90b4594f0889649c140bApprove311925122023-11-29 15:57:30120 days 19 hrs ago0x1afba2f674d4a3bb138cb7c3e8e866b97fd6744f IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000036255
0xb5ed9c60e8216dbbd877b5f908b6f8e5b7a2bba31da36a39eaf2a83dcba4fcbeApprove309695802023-11-15 21:54:55134 days 13 hrs ago0x42c973e9bd00bff8eb5e5470694b715087d98dbf IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000515988952
0xb6d7720e66f7fc714f9f609ea527d550267fe9c73e3fb68e1ace2205e257822fApprove303758012023-10-09 17:10:05171 days 18 hrs ago0x2929b126f3176d3fa3ff30c4eb7de604192ec840 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.00005333941
0x7965ad26e761a30060ad620ff8729a467c0ed78aa7ecdfb9e31466301ae6fb53Approve303751612023-10-09 16:11:30171 days 19 hrs ago0x2929b126f3176d3fa3ff30c4eb7de604192ec840 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.00005234
0x4f9bbef66a1983e1a2d3e81a0aadff0d9fc457bae689ecdfcadcf3c1c16df24eApprove303644972023-10-09 0:17:35172 days 11 hrs ago0x2929b126f3176d3fa3ff30c4eb7de604192ec840 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000219652021
0xec8d6fc552f635ece411433beebf8641a613750c073ba0a29c0431f5605d4afbApprove303280262023-10-06 18:18:15174 days 17 hrs ago0x2929b126f3176d3fa3ff30c4eb7de604192ec840 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000036255
0xd5ad37eb30c07274f7adc86489691ce446a7b1e341b8de876ccb22fe3c59f811Approve299844332023-09-15 8:42:05196 days 3 hrs ago0x6fde7365bb2c917f8fa5abf9b0bda079b264304d IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000085531748
0x0e2c924be25c14f185a21315609b214418075c51881cb20043a9ed8f446b0728Approve299709032023-09-14 12:44:10196 days 23 hrs ago0xa3c373757d15563eb97fae18701bc2cea0bfe855 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000040869276
0x1a264c093a11d32dcabfeffbd280afbfadfc832adbeb42a104710fea255f6891Approve298881892023-09-09 12:06:00201 days 23 hrs ago0x7e8416ad4de6e12a807bc3a987ae53b0299c96fb IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000078062517
0x5d1b8ee1e40222714885f65607a95caff6ae9ba530bbd34626d3a32fd9635d14Approve295609602023-08-20 20:38:20221 days 15 hrs ago0x76f0b8e6cde5b9d82438448250660f40723da9c9 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000046166
0x92e3d3ee5285dd6df8f4b80e80db1819d85764e4985df6335eaee5e53b8c6645Approve295069392023-08-17 14:15:00224 days 21 hrs ago0xea6cc2340d16930da964e69e116a8e012fa75994 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000040764832
0x171ea5ead0d8bdd5140c52febf3096e3681466a4455f43f0467d07da905d54d9Approve295069342023-08-17 14:14:35224 days 21 hrs ago0xea6cc2340d16930da964e69e116a8e012fa75994 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000071649632
0xc95a7b55608a3a54b37fb3af55661b66b79392e689f3e7fee36afe523421348fApprove293107092023-08-05 14:12:45236 days 21 hrs ago0xfb7541c68b7d0b71ee5b0490f1e7bd03fbad3fee IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000069249
0xcca01bfa856addd0d06b900f4b70bab68788d3e5a0f553b58f0c865f8922adebApprove292335692023-07-31 22:02:55241 days 13 hrs ago0xc6a82e72156a11a2e1634633af5e4517b451f0d9 IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000046166
0x967e754db8bbe1273ebf988930a03a0443faa0302d556a75583b4fef4a2d2b85Approve288616922023-07-09 11:20:15264 days 28 mins ago0xa2f763fcd99e93fab0b258040fd8eb51f729e4af IN 0xf38c5b39f29600765849ca38712f302b1522c9b80 xDAI0.000069249
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xc0d8447d03c13d43540dcd8d62612f96348186c0e05aeea4e07d7fc6afd8a8ef200423622022-01-11 1:22:30808 days 10 hrs ago SushiSwap: V2 Factory  Contract Creation0 xDAI
[ Download CSV Export 
Index Block
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x97cffd2241ea4516b7bb9d2d7fa1e4d8b76aff76
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
UniswapV2Pair

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at gnosisscan.io on 2023-02-28
*/

/**
 *Submitted for verification at Arbiscan on 2022-03-04
*/

/**
 *Submitted for verification at Etherscan.io on 2020-09-05
*/

// File: contracts/uniswapv2/interfaces/IUniswapV2Factory.sol

pragma solidity >=0.5.0;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function migrator() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
    function setMigrator(address) external;
}

// File: contracts/uniswapv2/libraries/SafeMath.sol

pragma solidity =0.6.12;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library SafeMathUniswap {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

// File: contracts/uniswapv2/UniswapV2ERC20.sol

pragma solidity =0.6.12;


contract UniswapV2ERC20 {
    using SafeMathUniswap for uint;

    string public constant name = 'SushiSwap LP Token';
    string public constant symbol = 'SLP';
    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() 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)
            )
        );
    }

    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, 'UniswapV2: 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, 'UniswapV2: INVALID_SIGNATURE');
        _approve(owner, spender, value);
    }
}

// File: contracts/uniswapv2/libraries/Math.sol

pragma solidity =0.6.12;

// a library for performing various math operations

library Math {
    function min(uint x, uint y) internal pure returns (uint z) {
        z = x < y ? x : y;
    }

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

// File: contracts/uniswapv2/libraries/UQ112x112.sol

pragma solidity =0.6.12;

// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))

// range: [0, 2**112 - 1]
// resolution: 1 / 2**112

library UQ112x112 {
    uint224 constant Q112 = 2**112;

    // encode a uint112 as a UQ112x112
    function encode(uint112 y) internal pure returns (uint224 z) {
        z = uint224(y) * Q112; // never overflows
    }

    // divide a UQ112x112 by a uint112, returning a UQ112x112
    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
        z = x / uint224(y);
    }
}

// File: contracts/uniswapv2/interfaces/IERC20.sol

pragma solidity >=0.5.0;

interface IERC20Uniswap {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}

// File: contracts/uniswapv2/interfaces/IUniswapV2Callee.sol

pragma solidity >=0.5.0;

interface IUniswapV2Callee {
    function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external;
}

// File: contracts/uniswapv2/UniswapV2Pair.sol

pragma solidity =0.6.12;








interface IMigrator {
    // Return the desired amount of liquidity token that the migrator wants.
    function desiredLiquidity() external view returns (uint256);
}

contract UniswapV2Pair is UniswapV2ERC20 {
    using SafeMathUniswap  for uint;
    using UQ112x112 for uint224;

    uint public constant MINIMUM_LIQUIDITY = 10**3;
    bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

    address public factory;
    address public token0;
    address public token1;

    uint112 private reserve0;           // uses single storage slot, accessible via getReserves
    uint112 private reserve1;           // uses single storage slot, accessible via getReserves
    uint32  private blockTimestampLast; // uses single storage slot, accessible via getReserves

    uint public price0CumulativeLast;
    uint public price1CumulativeLast;
    uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event

    uint private unlocked = 1;
    modifier lock() {
        require(unlocked == 1, 'UniswapV2: LOCKED');
        unlocked = 0;
        _;
        unlocked = 1;
    }

    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {
        _reserve0 = reserve0;
        _reserve1 = reserve1;
        _blockTimestampLast = blockTimestampLast;
    }

    function _safeTransfer(address token, address to, uint value) private {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'UniswapV2: TRANSFER_FAILED');
    }

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    constructor() public {
        factory = msg.sender;
    }

    // called once by the factory at time of deployment
    function initialize(address _token0, address _token1) external {
        require(msg.sender == factory, 'UniswapV2: FORBIDDEN'); // sufficient check
        token0 = _token0;
        token1 = _token1;
    }

    // update reserves and, on the first call per block, price accumulators
    function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {
        require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'UniswapV2: OVERFLOW');
        uint32 blockTimestamp = uint32(block.timestamp % 2**32);
        uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired
        if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
            // * never overflows, and + overflow is desired
            price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
            price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;
        }
        reserve0 = uint112(balance0);
        reserve1 = uint112(balance1);
        blockTimestampLast = blockTimestamp;
        emit Sync(reserve0, reserve1);
    }

    // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)
    function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
        address feeTo = IUniswapV2Factory(factory).feeTo();
        feeOn = feeTo != address(0);
        uint _kLast = kLast; // gas savings
        if (feeOn) {
            if (_kLast != 0) {
                uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
                uint rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint numerator = totalSupply.mul(rootK.sub(rootKLast));
                    uint denominator = rootK.mul(5).add(rootKLast);
                    uint liquidity = numerator / denominator;
                    if (liquidity > 0) _mint(feeTo, liquidity);
                }
            }
        } else if (_kLast != 0) {
            kLast = 0;
        }
    }

    // this low-level function should be called from a contract which performs important safety checks
    function mint(address to) external lock returns (uint liquidity) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        uint balance0 = IERC20Uniswap(token0).balanceOf(address(this));
        uint balance1 = IERC20Uniswap(token1).balanceOf(address(this));
        uint amount0 = balance0.sub(_reserve0);
        uint amount1 = balance1.sub(_reserve1);

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        if (_totalSupply == 0) {
            address migrator = IUniswapV2Factory(factory).migrator();
            if (msg.sender == migrator) {
                liquidity = IMigrator(migrator).desiredLiquidity();
                require(liquidity > 0 && liquidity != uint256(-1), "Bad desired liquidity");
            } else {
                require(migrator == address(0), "Must not have migrator");
                liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
                _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
            }
        } else {
            liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);
        }
        require(liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED');
        _mint(to, liquidity);

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Mint(msg.sender, amount0, amount1);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function burn(address to) external lock returns (uint amount0, uint amount1) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        address _token0 = token0;                                // gas savings
        address _token1 = token1;                                // gas savings
        uint balance0 = IERC20Uniswap(_token0).balanceOf(address(this));
        uint balance1 = IERC20Uniswap(_token1).balanceOf(address(this));
        uint liquidity = balanceOf[address(this)];

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
        amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
        require(amount0 > 0 && amount1 > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED');
        _burn(address(this), liquidity);
        _safeTransfer(_token0, to, amount0);
        _safeTransfer(_token1, to, amount1);
        balance0 = IERC20Uniswap(_token0).balanceOf(address(this));
        balance1 = IERC20Uniswap(_token1).balanceOf(address(this));

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Burn(msg.sender, amount0, amount1, to);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
        require(amount0Out > 0 || amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT');
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        require(amount0Out < _reserve0 && amount1Out < _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY');

        uint balance0;
        uint balance1;
        { // scope for _token{0,1}, avoids stack too deep errors
        address _token0 = token0;
        address _token1 = token1;
        require(to != _token0 && to != _token1, 'UniswapV2: INVALID_TO');
        if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
        if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
        if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);
        balance0 = IERC20Uniswap(_token0).balanceOf(address(this));
        balance1 = IERC20Uniswap(_token1).balanceOf(address(this));
        }
        uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
        uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
        require(amount0In > 0 || amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT');
        { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
        uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
        uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K');
        }

        _update(balance0, balance1, _reserve0, _reserve1);
        emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
    }

    // force balances to match reserves
    function skim(address to) external lock {
        address _token0 = token0; // gas savings
        address _token1 = token1; // gas savings
        _safeTransfer(_token0, to, IERC20Uniswap(_token0).balanceOf(address(this)).sub(reserve0));
        _safeTransfer(_token1, to, IERC20Uniswap(_token1).balanceOf(address(this)).sub(reserve1));
    }

    // force reserves to match balances
    function sync() external lock {
        _update(IERC20Uniswap(token0).balanceOf(address(this)), IERC20Uniswap(token1).balanceOf(address(this)), reserve0, reserve1);
    }
}

Contract ABI

[{"inputs":[],"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":"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":"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":[{"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":"view","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":"_token0","type":"address"},{"internalType":"address","name":"_token1","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":"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":"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":"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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610acb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610af9565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b23565b604080519115158252519081900360200190f35b610339610b3a565b604080516001600160a01b039092168252519081900360200190f35b61035d610b49565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b4f565b61035d610be3565b6103b5610c07565b6040805160ff9092168252519081900360200190f35b61035d610c0c565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c12565b61035d610c96565b61035d610c9c565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610ca2565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b031661111e565b61035d611130565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316611136565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316611148565b6040805192835260208301919091528051918290030190f35b6102446114dc565b61031d600480360360408110156104e857600080fd5b506001600160a01b0381351690602001356114fb565b61035d611508565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b031661150e565b610339611680565b61033961168f565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561169e565b61035d600480360360408110156105a357600080fd5b506001600160a01b03813581169160200135166118a0565b61023a6118bd565b600c5460011461060e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55841515806106215750600084115b61065c5760405162461bcd60e51b81526004018080602001828103825260258152602001806122886025913960400191505060405180910390fd5b600080610667610af9565b5091509150816001600160701b03168710801561068c5750806001600160701b031686105b6106c75760405162461bcd60e51b81526004018080602001828103825260218152602001806122d16021913960400191505060405180910390fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107055750806001600160a01b0316896001600160a01b031614155b61074e576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a1561075f5761075f828a8d611a1f565b891561077057610770818a8c611a1f565b861561082257886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561086857600080fd5b505afa15801561087c573d6000803e3d6000fd5b505050506040513d602081101561089257600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b5051925060009150506001600160701b0385168a9003831161092b57600061093a565b89856001600160701b03160383035b9050600089856001600160701b0316038311610957576000610966565b89856001600160701b03160383035b905060008211806109775750600081115b6109b25760405162461bcd60e51b81526004018080602001828103825260248152602001806122ad6024913960400191505060405180910390fd5b60006109d46109c2846003611bb9565b6109ce876103e8611bb9565b90611c1c565b905060006109e66109c2846003611bb9565b9050610a0b620f4240610a056001600160701b038b8116908b16611bb9565b90611bb9565b610a158383611bb9565b1015610a57576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b5050610a6584848888611c6c565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280601281526020017129bab9b434a9bbb0b8102628102a37b5b2b760711b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b30338484611e2b565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bce576001600160a01b0384166000908152600260209081526040808320338452909152902054610ba99083611c1c565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610bd9848484611e8d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c68576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610cef576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c81905580610cff610af9565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d5357600080fd5b505afa158015610d67573d6000803e3d6000fd5b505050506040513d6020811015610d7d57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dd057600080fd5b505afa158015610de4573d6000803e3d6000fd5b505050506040513d6020811015610dfa57600080fd5b505190506000610e13836001600160701b038716611c1c565b90506000610e2a836001600160701b038716611c1c565b90506000610e388787611f3b565b6000549091508061100f5760055460408051637cd07e4760e01b815290516000926001600160a01b031691637cd07e47916004808301926020929190829003018186803b158015610e8857600080fd5b505afa158015610e9c573d6000803e3d6000fd5b505050506040513d6020811015610eb257600080fd5b50519050336001600160a01b0382161415610f8d57806001600160a01b03166340dc0e376040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d6020811015610f2a57600080fd5b505199508915801590610f3f57506000198a14155b610f88576040805162461bcd60e51b81526020600482015260156024820152744261642064657369726564206c697175696469747960581b604482015290519081900360640190fd5b611009565b6001600160a01b03811615610fe2576040805162461bcd60e51b815260206004820152601660248201527526bab9ba103737ba103430bb329036b4b3b930ba37b960511b604482015290519081900360640190fd5b610ffa6103e86109ce610ff58888611bb9565b61207b565b995061100960006103e86120cd565b50611052565b61104f6001600160701b0389166110268684611bb9565b8161102d57fe5b046001600160701b0389166110428685611bb9565b8161104957fe5b04612157565b98505b600089116110915760405162461bcd60e51b815260040180806020018281038252602881526020018061231a6028913960400191505060405180910390fd5b61109b8a8a6120cd565b6110a786868a8a611c6c565b81156110d1576008546110cd906001600160701b0380821691600160701b900416611bb9565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114611196576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c819055806111a6610af9565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561120257600080fd5b505afa158015611216573d6000803e3d6000fd5b505050506040513d602081101561122c57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561127a57600080fd5b505afa15801561128e573d6000803e3d6000fd5b505050506040513d60208110156112a457600080fd5b5051306000908152600160205260408120549192506112c38888611f3b565b600054909150806112d48487611bb9565b816112db57fe5b049a50806112e98486611bb9565b816112f057fe5b04995060008b118015611303575060008a115b61133e5760405162461bcd60e51b81526004018080602001828103825260288152602001806122f26028913960400191505060405180910390fd5b611348308461216f565b611353878d8d611a1f565b61135e868d8c611a1f565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b1580156113a457600080fd5b505afa1580156113b8573d6000803e3d6000fd5b505050506040513d60208110156113ce57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d602081101561144457600080fd5b5051935061145485858b8b611c6c565b811561147e5760085461147a906001600160701b0380821691600160701b900416611bb9565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b604051806040016040528060038152602001620534c560ec1b81525081565b6000610b30338484611e8d565b6103e881565b600c54600114611559576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261160292859287926115fd926001600160701b03169185916370a0823191602480820192602092909190829003018186803b1580156115cb57600080fd5b505afa1580156115df573d6000803e3d6000fd5b505050506040513d60208110156115f557600080fd5b505190611c1c565b611a1f565b61167681846115fd6008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156115cb57600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156116e8576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015611803573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906118395750886001600160a01b0316816001600160a01b0316145b61188a576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611895898989611e2b565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611908576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611a18926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516008546001600160701b0380821691600160701b900416611c6c565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310611acc5780518252601f199092019160209182019101611aad565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b2e576040519150601f19603f3d011682016040523d82523d6000602084013e611b33565b606091505b5091509150818015611b61575080511580611b615750808060200190516020811015611b5e57600080fd5b50515b611bb2576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611bd457505080820282828281611bd157fe5b04145b610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b34576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611c8a57506001600160701b038311155b611cd1576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611d0157506001600160701b03841615155b8015611d1557506001600160701b03831615155b15611d80578063ffffffff16611d3d85611d2e86612201565b6001600160e01b031690612213565b600980546001600160e01b03929092169290920201905563ffffffff8116611d6884611d2e87612201565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611eb09082611c1c565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611edf9082612238565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8c57600080fd5b505afa158015611fa0573d6000803e3d6000fd5b505050506040513d6020811015611fb657600080fd5b5051600b546001600160a01b038216158015945091925090612067578015612062576000611ff3610ff56001600160701b03888116908816611bb9565b905060006120008361207b565b90508082111561205f5760006120226120198484611c1c565b60005490611bb9565b9050600061203b83612035866005611bb9565b90612238565b9050600081838161204857fe5b049050801561205b5761205b87826120cd565b5050505b50505b612073565b8015612073576000600b555b505092915050565b600060038211156120be575080600160028204015b818110156120b8578091506002818285816120a757fe5b0401816120b057fe5b049050612090565b506120c8565b81156120c8575060015b919050565b6000546120da9082612238565b60009081556001600160a01b0383168152600160205260409020546120ff9082612238565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106121665781612168565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546121929082611c1c565b6001600160a01b038316600090815260016020526040812091909155546121b99082611c1c565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161223057fe5b049392505050565b80820182811015610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220713a8bf21df06433f34b5c9abf186abb737e72524583bdf420105a289791e24864736f6c634300060c0033

Deployed ByteCode Sourcemap

7858:10161:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15495:1903;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15495:1903:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15495:1903:0;;-1:-1:-1;15495:1903:0;-1:-1:-1;15495:1903:0;:::i;:::-;;1781:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8870:231;;;:::i;:::-;;;;-1:-1:-1;;;;;8870:231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3835:147;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3835:147:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8159:21;;;:::i;:::-;;;;-1:-1:-1;;;;;8159:21:0;;;;;;;;;;;;;;1924:24;;;:::i;:::-;;;;;;;;;;;;;;;;4137:301;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4137:301:0;;;;;;;;;;;;;;;;;:::i;2216:108::-;;;:::i;1882:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2073:31;;;:::i;9930:210::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9930:210:0;;;;;;;;;;:::i;8510:32::-;;;:::i;8549:::-;;;:::i;12124:1653::-;;;;;;;;;;;;;;;;-1:-1:-1;12124:1653:0;-1:-1:-1;;;;;12124:1653:0;;:::i;1955:41::-;;;;;;;;;;;;;;;;-1:-1:-1;1955:41:0;-1:-1:-1;;;;;1955:41:0;;:::i;8588:17::-;;;:::i;2331:38::-;;;;;;;;;;;;;;;;-1:-1:-1;2331:38:0;-1:-1:-1;;;;;2331:38:0;;:::i;13889:1494::-;;;;;;;;;;;;;;;;-1:-1:-1;13889:1494:0;-1:-1:-1;;;;;13889:1494:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1838:37;;;:::i;3990:139::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3990:139:0;;;;;;;;:::i;7980:46::-;;;:::i;17447:348::-;;;;;;;;;;;;;;;;-1:-1:-1;17447:348:0;-1:-1:-1;;;;;17447:348:0;;:::i;8130:22::-;;;:::i;8187:21::-;;;:::i;4446:674::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4446:674:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2003:61::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2003:61:0;;;;;;;;;;:::i;17844:172::-;;;:::i;15495:1903::-;8761:8;;8773:1;8761:13;8753:43;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;;;;8818:1;8807:8;:12;15609:14;;;;:32:::1;;;15640:1;15627:10;:14;15609:32;15601:82;;;;-1:-1:-1::0;;;15601:82:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15695:17;15714::::0;15736:13:::1;:11;:13::i;:::-;15694:55;;;;;15796:9;-1:-1:-1::0;;;;;15783:22:0::1;:10;:22;:48;;;;;15822:9;-1:-1:-1::0;;;;;15809:22:0::1;:10;:22;15783:48;15775:94;;;;-1:-1:-1::0;;;15775:94:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16014:6;::::0;16049::::1;::::0;15882:13:::1;::::0;;;-1:-1:-1;;;;;16014:6:0;;::::1;::::0;16049;;::::1;::::0;16074:13;::::1;::::0;::::1;::::0;::::1;::::0;:30:::1;;;16097:7;-1:-1:-1::0;;;;;16091:13:0::1;:2;-1:-1:-1::0;;;;;16091:13:0::1;;;16074:30;16066:64;;;::::0;;-1:-1:-1;;;16066:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;16066:64:0;;;;;;;;;;;;;::::1;;16145:14:::0;;16141:58:::1;;16161:38;16175:7;16184:2;16188:10;16161:13;:38::i;:::-;16248:14:::0;;16244:58:::1;;16264:38;16278:7;16287:2;16291:10;16264:13;:38::i;:::-;16351:15:::0;;16347:97:::1;;16385:2;-1:-1:-1::0;;;;;16368:34:0::1;;16403:10;16415;16427;16439:4;;16368:76;;;;;;;;;;;;;-1:-1:-1::0;;;;;16368:76:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16347:97;16466:47;::::0;;-1:-1:-1;;;16466:47:0;;16507:4:::1;16466:47;::::0;::::1;::::0;;;-1:-1:-1;;;;;16466:32:0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16466:47:0;16535::::1;::::0;;-1:-1:-1;;;16535:47:0;;16576:4:::1;16535:47;::::0;::::1;::::0;;;16466;;-1:-1:-1;;;;;;16535:32:0;::::1;::::0;::::1;::::0;:47;;;;;16466::::1;::::0;16535;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16535:47:0;;-1:-1:-1;16604:14:0::1;::::0;-1:-1:-1;;;;;;;16632:22:0;::::1;::::0;;::::1;16621:33:::0;::::1;:75;;16695:1;16621:75;;;16681:10;16669:9;-1:-1:-1::0;;;;;16669:22:0::1;;16657:8;:35;16621:75;16604:92;;16707:14;16747:10;16735:9;-1:-1:-1::0;;;;;16735:22:0::1;;16724:8;:33;:75;;16798:1;16724:75;;;16784:10;16772:9;-1:-1:-1::0;;;;;16772:22:0::1;;16760:8;:35;16724:75;16707:92;;16830:1;16818:9;:13;:30;;;;16847:1;16835:9;:13;16818:30;16810:79;;;;-1:-1:-1::0;;;16810:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16975:21;16999:40;17022:16;:9:::0;17036:1:::1;17022:13;:16::i;:::-;16999:18;:8:::0;17012:4:::1;16999:12;:18::i;:::-;:22:::0;::::1;:40::i;:::-;16975:64:::0;-1:-1:-1;17050:21:0::1;17074:40;17097:16;:9:::0;17111:1:::1;17097:13;:16::i;17074:40::-;17050:64:::0;-1:-1:-1;17175:43:0::1;17210:7;17175:30;-1:-1:-1::0;;;;;17175:15:0;;::::1;::::0;:30;::::1;:19;:30::i;:::-;:34:::0;::::1;:43::i;:::-;17133:38;:16:::0;17154;17133:20:::1;:38::i;:::-;:85;;17125:110;;;::::0;;-1:-1:-1;;;17125:110:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;17125:110:0;;;;;;;;;;;;;::::1;;8830:1;;17259:49;17267:8;17277;17287:9;17298;17259:7;:49::i;:::-;17324:66;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17324:66:0;::::1;::::0;17329:10:::1;::::0;17324:66:::1;::::0;;;;;;;::::1;-1:-1:-1::0;;8853:1:0;8842:8;:12;-1:-1:-1;;;;;;;;;15495:1903:0:o;1781:50::-;;;;;;;;;;;;;;-1:-1:-1;;;1781:50:0;;;;:::o;8870:231::-;9003:8;;-1:-1:-1;;;;;9003:8:0;;;;-1:-1:-1;;;9034:8:0;;;;;;-1:-1:-1;;;9075:18:0;;;;;8870:231::o;3835:147::-;3899:4;3916:36;3925:10;3937:7;3946:5;3916:8;:36::i;:::-;-1:-1:-1;3970:4:0;3835:147;;;;;:::o;8159:21::-;;;-1:-1:-1;;;;;8159:21:0;;:::o;1924:24::-;;;;:::o;4137:301::-;-1:-1:-1;;;;;4236:15:0;;4215:4;4236:15;;;:9;:15;;;;;;;;4252:10;4236:27;;;;;;;;-1:-1:-1;;4236:39:0;4232:140;;-1:-1:-1;;;;;4322:15:0;;;;;;:9;:15;;;;;;;;4338:10;4322:27;;;;;;;;:38;;4354:5;4322:31;:38::i;:::-;-1:-1:-1;;;;;4292:15:0;;;;;;:9;:15;;;;;;;;4308:10;4292:27;;;;;;;:68;4232:140;4382:26;4392:4;4398:2;4402:5;4382:9;:26::i;:::-;-1:-1:-1;4426:4:0;4137:301;;;;;:::o;2216:108::-;2258:66;2216:108;:::o;1882:35::-;1915:2;1882:35;:::o;2073:31::-;;;;:::o;9930:210::-;10026:7;;-1:-1:-1;;;;;10026:7:0;10012:10;:21;10004:54;;;;;-1:-1:-1;;;10004:54:0;;;;;;;;;;;;-1:-1:-1;;;10004:54:0;;;;;;;;;;;;;;;10089:6;:16;;-1:-1:-1;;;;;10089:16:0;;;-1:-1:-1;;;;;;10089:16:0;;;;;;;10116:6;:16;;;;;;;;;;;9930:210::o;8510:32::-;;;;:::o;8549:::-;;;;:::o;12124:1653::-;12173:14;8761:8;;8773:1;8761:13;8753:43;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;;;;8818:1;8807:8;:12;;;8818:1;12242:13:::1;:11;:13::i;:::-;-1:-1:-1::0;12311:6:0::1;::::0;12297:46:::1;::::0;;-1:-1:-1;;;12297:46:0;;12337:4:::1;12297:46;::::0;::::1;::::0;;;12200:55;;-1:-1:-1;12200:55:0;;-1:-1:-1;12281:13:0::1;::::0;-1:-1:-1;;;;;12311:6:0;;::::1;::::0;12297:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;12311:6;12297:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12297:46:0;12384:6:::1;::::0;12370:46:::1;::::0;;-1:-1:-1;;;12370:46:0;;12410:4:::1;12370:46;::::0;::::1;::::0;;;12297;;-1:-1:-1;12354:13:0::1;::::0;-1:-1:-1;;;;;12384:6:0;;::::1;::::0;12370:31:::1;::::0;:46;;;;;12297::::1;::::0;12370;;;;;;;;12384:6;12370:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12370:46:0;;-1:-1:-1;12427:12:0::1;12442:23;:8:::0;-1:-1:-1;;;;;12442:23:0;::::1;:12;:23::i;:::-;12427:38:::0;-1:-1:-1;12476:12:0::1;12491:23;:8:::0;-1:-1:-1;;;;;12491:23:0;::::1;:12;:23::i;:::-;12476:38;;12527:10;12540:30;12549:9;12560;12540:8;:30::i;:::-;12581:17;12601:11:::0;12527:43;;-1:-1:-1;12705:17:0;12701:751:::1;;12776:7;::::0;12758:37:::1;::::0;;-1:-1:-1;;;12758:37:0;;;;12739:16:::1;::::0;-1:-1:-1;;;;;12776:7:0::1;::::0;12758:35:::1;::::0;:37:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;12776:7;12758:37;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12758:37:0;;-1:-1:-1;12814:10:0::1;-1:-1:-1::0;;;;;12814:22:0;::::1;;12810:500;;;12879:8;-1:-1:-1::0;;;;;12869:36:0::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12869:38:0;;-1:-1:-1;12934:13:0;;;;;:41:::1;;;-1:-1:-1::0;;12951:9:0::1;:24;;12934:41;12926:75;;;::::0;;-1:-1:-1;;;12926:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12926:75:0;;;;;;;;;;;;;::::1;;12810:500;;;-1:-1:-1::0;;;;;13050:22:0;::::1;::::0;13042:57:::1;;;::::0;;-1:-1:-1;;;13042:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;13042:57:0;;;;;;;;;;;;;::::1;;13130:54;8021:5;13130:31;13140:20;:7:::0;13152;13140:11:::1;:20::i;:::-;13130:9;:31::i;:54::-;13118:66;;13203:36;13217:1;8021:5;13203;:36::i;:::-;12701:751;;;;13354:86;-1:-1:-1::0;;;;;13363:37:0;::::1;:25;:7:::0;13375:12;13363:11:::1;:25::i;:::-;:37;;;;;;-1:-1:-1::0;;;;;13402:37:0;::::1;:25;:7:::0;13414:12;13402:11:::1;:25::i;:::-;:37;;;;;;13354:8;:86::i;:::-;13342:98;;12701:751;13482:1;13470:9;:13;13462:66;;;;-1:-1:-1::0;;;13462:66:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13539:20;13545:2;13549:9;13539:5;:20::i;:::-;13572:49;13580:8;13590;13600:9;13611;13572:7;:49::i;:::-;13636:5;13632:47;;;13670:8;::::0;13651:28:::1;::::0;-1:-1:-1;;;;;13656:8:0;;::::1;::::0;-1:-1:-1;;;13670:8:0;::::1;;13651:18;:28::i;:::-;13643:5;:36:::0;13632:47:::1;13735:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;13740:10:::1;::::0;13735:34:::1;::::0;;;;;;::::1;-1:-1:-1::0;;8853:1:0;8842:8;:12;-1:-1:-1;12124:1653:0;;;-1:-1:-1;;;;;;12124:1653:0:o;1955:41::-;;;;;;;;;;;;;:::o;8588:17::-;;;;:::o;2331:38::-;;;;;;;;;;;;;:::o;13889:1494::-;13938:12;13952;8761:8;;8773:1;8761:13;8753:43;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;;;;8818:1;8807:8;:12;;;8818:1;14019:13:::1;:11;:13::i;:::-;-1:-1:-1::0;14076:6:0::1;::::0;14157::::1;::::0;14236:47:::1;::::0;;-1:-1:-1;;;14236:47:0;;14277:4:::1;14236:47;::::0;::::1;::::0;;;13977:55;;-1:-1:-1;13977:55:0;;-1:-1:-1;;;;;;14076:6:0;;::::1;::::0;14157;::::1;::::0;14058:15:::1;::::0;14076:6;;14236:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;14076:6;14236:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14236:47:0;14310::::1;::::0;;-1:-1:-1;;;14310:47:0;;14351:4:::1;14310:47;::::0;::::1;::::0;;;14236;;-1:-1:-1;14294:13:0::1;::::0;-1:-1:-1;;;;;14310:32:0;::::1;::::0;::::1;::::0;:47;;;;;14236::::1;::::0;14310;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14310:47:0;14403:4:::1;14368:14;14385:24:::0;;;:9:::1;14310:47;14385:24:::0;;;;;14310:47;;-1:-1:-1;14435:30:0::1;14444:9:::0;14455;14435:8:::1;:30::i;:::-;14476:17;14496:11:::0;14422:43;;-1:-1:-1;14496:11:0;14606:23:::1;:9:::0;14620:8;14606:13:::1;:23::i;:::-;:38;;;;;;::::0;-1:-1:-1;14739:12:0;14713:23:::1;:9:::0;14727:8;14713:13:::1;:23::i;:::-;:38;;;;;;14703:48;;14828:1;14818:7;:11;:26;;;;;14843:1;14833:7;:11;14818:26;14810:79;;;;-1:-1:-1::0;;;14810:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14900:31;14914:4;14921:9;14900:5;:31::i;:::-;14942:35;14956:7;14965:2;14969:7;14942:13;:35::i;:::-;14988;15002:7;15011:2;15015:7;14988:13;:35::i;:::-;15045:47;::::0;;-1:-1:-1;;;15045:47:0;;15086:4:::1;15045:47;::::0;::::1;::::0;;;-1:-1:-1;;;;;15045:32:0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15045:47:0;15114::::1;::::0;;-1:-1:-1;;;15114:47:0;;15155:4:::1;15114:47;::::0;::::1;::::0;;;15045;;-1:-1:-1;;;;;;15114:32:0;::::1;::::0;::::1;::::0;:47;;;;;15045::::1;::::0;15114;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15114:47:0;;-1:-1:-1;15174:49:0::1;15182:8:::0;15114:47;15202:9;15213;15174:7:::1;:49::i;:::-;15238:5;15234:47;;;15272:8;::::0;15253:28:::1;::::0;-1:-1:-1;;;;;15258:8:0;;::::1;::::0;-1:-1:-1;;;15272:8:0;::::1;;15253:18;:28::i;:::-;15245:5;:36:::0;15234:47:::1;15337:38;::::0;;;;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;15337:38:0;::::1;::::0;15342:10:::1;::::0;15337:38:::1;::::0;;;;;;;;;::::1;8830:1;;;;;;;;;8853::::0;8842:8;:12;;;;13889:1494;;;:::o;1838:37::-;;;;;;;;;;;;;;-1:-1:-1;;;1838:37:0;;;;:::o;3990:139::-;4050:4;4067:32;4077:10;4089:2;4093:5;4067:9;:32::i;7980:46::-;8021:5;7980:46;:::o;17447:348::-;8761:8;;8773:1;8761:13;8753:43;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;;;;8818:1;8807:8;:12;17516:6:::1;::::0;17566::::1;::::0;17677:8:::1;::::0;17625:47:::1;::::0;;-1:-1:-1;;;17625:47:0;;17666:4:::1;17625:47;::::0;::::1;::::0;;;-1:-1:-1;;;;;17516:6:0;;::::1;::::0;17566;;::::1;::::0;17598:89:::1;::::0;17516:6;;17621:2;;17625:61:::1;::::0;-1:-1:-1;;;;;17677:8:0::1;::::0;17516:6;;17625:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;;17516:6;17625:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17625:47:0;;:51:::1;:61::i;:::-;17598:13;:89::i;:::-;17698;17712:7;17721:2;17725:61;17777:8;;;;;;;;;-1:-1:-1::0;;;;;17777:8:0::1;-1:-1:-1::0;;;;;17725:61:0::1;17739:7;-1:-1:-1::0;;;;;17725:32:0::1;;17766:4;17725:47;;;;;;;;;;;;;-1:-1:-1::0;;;;;17725:47:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;17698:89;-1:-1:-1::0;;8853:1:0;8842:8;:12;-1:-1:-1;17447:348:0:o;8130:22::-;;;-1:-1:-1;;;;;8130:22:0;;:::o;8187:21::-;;;-1:-1:-1;;;;;8187:21:0;;:::o;4446:674::-;4592:15;4580:8;:27;;4572:58;;;;;-1:-1:-1;;;4572:58:0;;;;;;;;;;;;-1:-1:-1;;;4572:58:0;;;;;;;;;;;;;;;4746:16;;-1:-1:-1;;;;;4842:13:0;;;4641:14;4842:13;;;:6;:13;;;;;;;;:15;;;;;;;;;4791:77;;2258:66;4791:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4781:88;;;;;;-1:-1:-1;;;4682:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4658:237;;;;;;;;;4933:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4641:14;;4842:15;4933:26;;;;;-1:-1:-1;;4933:26:0;;;;;;;;;;4842:15;4933:26;;;;;;;;;;;;;;;-1:-1:-1;;4933:26:0;;-1:-1:-1;;4933:26:0;;;-1:-1:-1;;;;;;;4978:30:0;;;;;;:59;;;5032:5;-1:-1:-1;;;;;5012:25:0;:16;-1:-1:-1;;;;;5012:25:0;;4978:59;4970:100;;;;;-1:-1:-1;;;4970:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5081:31;5090:5;5097:7;5106:5;5081:8;:31::i;:::-;4446:674;;;;;;;;;:::o;2003:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;17844:172::-;8761:8;;8773:1;8761:13;8753:43;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;-1:-1:-1;;;8753:43:0;;;;;;;;;;;;;;;8818:1;8807:8;:12;17907:6:::1;::::0;17893:46:::1;::::0;;-1:-1:-1;;;17893:46:0;;17933:4:::1;17893:46;::::0;::::1;::::0;;;17885:123:::1;::::0;-1:-1:-1;;;;;17907:6:0::1;::::0;17893:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;17907:6;17893:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17893:46:0;17955:6:::1;::::0;17941:46:::1;::::0;;-1:-1:-1;;;17941:46:0;;17981:4:::1;17941:46;::::0;::::1;::::0;;;-1:-1:-1;;;;;17955:6:0;;::::1;::::0;17941:31:::1;::::0;:46;;;;;17893::::1;::::0;17941;;;;;;;;17955:6;17941:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17941:46:0;17989:8:::1;::::0;-1:-1:-1;;;;;17989:8:0;;::::1;::::0;-1:-1:-1;;;17999:8:0;::::1;;17885:7;:123::i;:::-;8853:1:::0;8842:8;:12;17844:172::o;9109:287::-;8085:34;;;;;;;;;;;;;;;;;9237:43;;-1:-1:-1;;;;;9237:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9237:43:0;-1:-1:-1;;;9237:43:0;;;9226:55;;;;9191:12;;9205:17;;9226:10;;;9237:43;9226:55;;;9237:43;9226:55;;9237:43;9226:55;;;;;;;;;;-1:-1:-1;;9226:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9190:91;;;;9300:7;:57;;;;-1:-1:-1;9312:11:0;;:16;;:44;;;9343:4;9332:24;;;;;;;;;;;;;;;-1:-1:-1;9332:24:0;9312:44;9292:96;;;;;-1:-1:-1;;;9292:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9109:287;;;;;:::o;1481:142::-;1533:6;1560;;;:30;;-1:-1:-1;;1575:5:0;;;1589:1;1584;1575:5;1584:1;1570:15;;;;;:20;1560:30;1552:63;;;;;-1:-1:-1;;;1552:63:0;;;;;;;;;;;;-1:-1:-1;;;1552:63:0;;;;;;;;;;;;;;1344:129;1428:5;;;1423:16;;;;1415:50;;;;;-1:-1:-1;;;1415:50:0;;;;;;;;;;;;-1:-1:-1;;;1415:50:0;;;;;;;;;;;;;;10225:860;-1:-1:-1;;;;;10337:23:0;;;;;:50;;-1:-1:-1;;;;;;10364:23:0;;;10337:50;10329:82;;;;;-1:-1:-1;;;10329:82:0;;;;;;;;;;;;-1:-1:-1;;;10329:82:0;;;;;;;;;;;;;;;10526:18;;10453:23;:15;:23;;;-1:-1:-1;;;10526:18:0;;;;10509:35;;;10582:15;;;;;;:33;;-1:-1:-1;;;;;;10601:14:0;;;;10582:33;:51;;;;-1:-1:-1;;;;;;10619:14:0;;;;10582:51;10578:336;;;10788:11;10735:64;;10740:44;10774:9;10740:27;10757:9;10740:16;:27::i;:::-;-1:-1:-1;;;;;10740:33:0;;;:44::i;:::-;10711:20;:88;;-1:-1:-1;;;;;10735:50:0;;;;:64;;;;10711:88;;;10838:64;;;10843:44;10877:9;10843:27;10860:9;10843:16;:27::i;:44::-;10814:20;:88;;-1:-1:-1;;;;;10838:50:0;;;;:64;;;;10814:88;;;10578:336;10924:8;:28;;-1:-1:-1;;10924:28:0;-1:-1:-1;;;;;10924:28:0;;;;;;;-1:-1:-1;;;;10963:28:0;-1:-1:-1;;;10963:28:0;;;;;;;;;-1:-1:-1;;;;;11002:35:0;-1:-1:-1;;;11002:35:0;;;;;;;;;11053:24;;;11058:8;;;11053:24;;11068:8;;;;;;;11053:24;;;;;;;;;;;;;;;;;10225:860;;;;;;:::o;3430:169::-;-1:-1:-1;;;;;3511:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;3560:31;;;;;;;;;;;;;;;;;3430:169;;;:::o;3607:220::-;-1:-1:-1;;;;;3701:15:0;;;;;;:9;:15;;;;;;:26;;3721:5;3701:19;:26::i;:::-;-1:-1:-1;;;;;3683:15:0;;;;;;;:9;:15;;;;;;:44;;;;3754:13;;;;;;;:24;;3772:5;3754:17;:24::i;:::-;-1:-1:-1;;;;;3738:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;3794:25;;;;;;;3738:13;;3794:25;;;;;;;;;;;;;3607:220;;;:::o;11175:837::-;11248:10;11271:13;11305:7;;;;;;;;;-1:-1:-1;;;;;11305:7:0;-1:-1:-1;;;;;11287:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11287:34:0;11384:5;;-1:-1:-1;;;;;11340:19:0;;;;;;-1:-1:-1;11287:34:0;;-1:-1:-1;11384:5:0;11415:590;;11445:11;;11441:494;;11477:10;11490:41;11500:30;-1:-1:-1;;;;;11500:15:0;;;;:30;;:19;:30::i;11490:41::-;11477:54;;11550:14;11567:17;11577:6;11567:9;:17::i;:::-;11550:34;;11615:9;11607:5;:17;11603:317;;;11649:14;11666:37;11682:20;:5;11692:9;11682;:20::i;:::-;11666:11;;;:15;:37::i;:::-;11649:54;-1:-1:-1;11726:16:0;11745:27;11762:9;11745:12;:5;11755:1;11745:9;:12::i;:::-;:16;;:27::i;:::-;11726:46;;11795:14;11824:11;11812:9;:23;;;;;;;-1:-1:-1;11862:13:0;;11858:42;;11877:23;11883:5;11890:9;11877:5;:23::i;:::-;11603:317;;;;11441:494;;;11415:590;;;11956:11;;11952:53;;11992:1;11984:5;:9;11952:53;11175:837;;;;;;:::o;5495:303::-;5540:6;5567:1;5563;:5;5559:232;;;-1:-1:-1;5589:1:0;5622;5618;5614:5;;:9;5638:92;5649:1;5645;:5;5638:92;;;5675:1;5671:5;;5713:1;5708;5704;5700;:5;;;;;;:9;5699:15;;;;;;5695:19;;5638:92;;;5559:232;;;;5751:6;;5747:44;;-1:-1:-1;5778:1:0;5747:44;5495:303;;;:::o;3004:201::-;3077:11;;:22;;3093:5;3077:15;:22::i;:::-;3063:11;:36;;;-1:-1:-1;;;;;3126:13:0;;;;:9;:13;;;;;;:24;;3144:5;3126:17;:24::i;:::-;-1:-1:-1;;;;;3110:13:0;;;;;;:9;:13;;;;;;;;:40;;;;3166:31;;;;;;;3110:13;;;;3166:31;;;;;;;;;;3004:201;;:::o;5281:96::-;5333:6;5360:1;5356;:5;:13;;5368:1;5356:13;;;5364:1;5356:13;5352:17;5281:96;-1:-1:-1;;;5281:96:0:o;3213:209::-;-1:-1:-1;;;;;3292:15:0;;;;;;:9;:15;;;;;;:26;;3312:5;3292:19;:26::i;:::-;-1:-1:-1;;;;;3274:15:0;;;;;;:9;:15;;;;;:44;;;;3343:11;:22;;3359:5;3343:15;:22::i;:::-;3329:11;:36;;;3381:33;;;;;;;;-1:-1:-1;;;;;3381:33:0;;;;;;;;;;;;;3213:209;;:::o;6155:120::-;-1:-1:-1;;;;;6231:10:0;-1:-1:-1;;;6231:17:0;;6155:120::o;6346:108::-;6406:9;-1:-1:-1;;;;;6436:10:0;;-1:-1:-1;;;;;6432:14:0;;6436:10;6432:14;;;;;;6346:108;-1:-1:-1;;;6346:108:0:o;1208:128::-;1292:5;;;1287:16;;;;1279:49;;;;;-1:-1:-1;;;1279:49:0;;;;;;;;;;;;-1:-1:-1;;;1279:49:0;;;;;;;;;;;;;

Swarm Source

ipfs://713a8bf21df06433f34b5c9abf186abb737e72524583bdf420105a289791e248
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.