Contract 0x20aa395F3bcc4dc44a94215D129650533B3da0b3 3

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa35f09d409b473a48fdd282ca8a397815f42d08845831c56b513538c0daf7c7bApprove514403782022-11-25 19:11:466 days 5 hrs ago0x0d3bbc7a838d9dd7f61b70649d853dd7548bbf20 IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.013504467075
0x756e0c2b69f1a79c6841d488bac0ee2f4afe3e1965a4095d698c6d73c60dec83Approve504558112022-11-04 12:58:3027 days 11 hrs ago0xc5d105e678ea4cba8862588069bf1772bb79672a IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.017068387337
0x997022c72d2087ea867ae3f94f5fe6462621a6414e8d9ffd5b0c27440c23271aApprove503975172022-11-02 16:40:0129 days 7 hrs ago0x8b478359b5593747473e67f78b1f0048c1c523ed IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.00070209126
0xc5c8baa866779151f9181c9d73ea1e578a53cbae51be933bda3f5cc15f4ee690Approve468037592022-09-12 6:08:0880 days 18 hrs ago0x38d6f4ecc2e507c168b4924bf288cca651c4f7fe IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.0000894145
0xa3a2a768d1c4b98e8fc7d9b46a98e1d6e0b44bdfc1f451de0294f204d5b69721Approve456981682022-08-26 3:59:2397 days 20 hrs ago0x073306ef2e41e8d8daa7e108d059b29675170a3f IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.00006686099
0x553517e578396b4d51b8ee9baf8df4d4700cff0e58394de85571cdec956ecde9Approve456981532022-08-26 3:59:0797 days 20 hrs ago0x073306ef2e41e8d8daa7e108d059b29675170a3f IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.00006686099
0x25484f7b771fe418d6e50fc0df2e14e5df8e82ab70f3b365b1c3e8db92690115Approve456980842022-08-26 3:57:5297 days 20 hrs ago0x073306ef2e41e8d8daa7e108d059b29675170a3f IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.00006686099
0xc9e6836aa23ed1954c4999efd79b986be70f06428410f0c20896d3e869833e4aApprove452031422022-08-19 1:34:38104 days 22 hrs ago0x7a0e7adb1b9a40a4b4656ad55102d46dfdd6c19d IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.014327522552
0xe7342e60993ae4db9aeab1b257883659e2f28dd76d9f8b17ed86627a0d371143Approve452031202022-08-19 1:34:00104 days 22 hrs ago0x7a0e7adb1b9a40a4b4656ad55102d46dfdd6c19d IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.016021512788
0x5484a850b83abcfddbc45990a097f6929788096d06508ed6d67fd2a21f8f25a6Approve447327092022-08-12 7:14:02111 days 17 hrs ago0x95c9b6b5d9b93bdf823526b46d0abc4c6adcdb83 IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000029416814
0xdcbdad047bcc2b2b05bcc799b1013ae203d3497a54df763e53f936c2bc38ab93Approve445501542022-08-09 14:54:04114 days 9 hrs ago0xf0b080f40b276f5fcfa28763fabcaf20c68ceeef IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.002286658321
0x22f47589f06a16029061dd16f85c887533db5c7875349a61b7a36da5dc075dddApprove445499372022-08-09 14:48:57114 days 9 hrs ago0xf0b080f40b276f5fcfa28763fabcaf20c68ceeef IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000104446741
0xc432b650e2ca3768e1ad789eb477ce78f60217b93b1a6fa225443d6fbb74da66Approve445499232022-08-09 14:48:40114 days 9 hrs ago0xf0b080f40b276f5fcfa28763fabcaf20c68ceeef IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000105265468
0x09ea8df59052daa2e2ca6a81fa97385eaa83e104b15d18b19584d536968e54c8Approve445499072022-08-09 14:48:23114 days 9 hrs ago0xf0b080f40b276f5fcfa28763fabcaf20c68ceeef IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000105265468
0xcc7b14aae6d652c276a67be539f004c233c73d17ec9f85e1d0453d7a4d56bbdbTransfer441865882022-08-04 5:23:57119 days 18 hrs ago0x1f71dbd779131a6142c1034c87b10692d9aab713 IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.00014496236
0xdf0ce5fe680b45ec9691971855e249b04d24a68a5ac278bfeccb9d2f482823f5Approve441582162022-08-03 19:23:11120 days 4 hrs ago0x74f2434554066a3ce9e5e400223d74d9cb4524df IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.00006370816
0xce7d1c3a1dac311a7339d76b9597d52bd6365d7051119af095ac5034b5bf6b45Approve441271352022-08-03 8:48:38120 days 15 hrs ago0x052d0e1303e118c846becedd3d3cbb10999e8fca IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000029279927
0xc7bcb4459563d2f1c5029d07de170bb63da7b1d58758663283e048ee23a4f7e9Approve441271282022-08-03 8:48:29120 days 15 hrs ago0x052d0e1303e118c846becedd3d3cbb10999e8fca IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.00003141171
0xbe842cd010afb236450b8e06ed122a634fe8c5a6c9e78f15b618dfd818e55a43Approve441251472022-08-03 8:11:28120 days 16 hrs ago0x052d0e1303e118c846becedd3d3cbb10999e8fca IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000087009089
0x8f73023c539b263f5c3e4761e3df08d127553c3539dba4e0111668304ffe94fdApprove441248872022-08-03 8:06:25120 days 16 hrs ago0x052d0e1303e118c846becedd3d3cbb10999e8fca IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000033318448
0x02c47f76c0527c08001fd0e708707a885110b2882c087c22bef8ae67b0d34059Approve435059142022-07-25 8:45:17129 days 15 hrs ago0x74ae37b023f411ff80f3a98d1f4680f38f029e57 IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000710679326
0x91982ca3ffb10037214ec73553d17d5848f63d51156571d63da5debcb570634bApprove435058962022-07-25 8:44:42129 days 15 hrs ago0x74ae37b023f411ff80f3a98d1f4680f38f029e57 IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000796215946
0x387842135c036d9ab0ef0014634c09ad335149f38de4faeece2cc9f538168befApprove427607272022-07-14 18:28:13140 days 5 hrs ago0x843209ebe8356ce947d1b406428f152108bb1c01 IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.102146136341
0xa2ba1a116e4f69a08017b085b578035f6252b8139452240c3174685b64bf9208Approve424952652022-07-11 1:15:04143 days 22 hrs ago0x74f2434554066a3ce9e5e400223d74d9cb4524df IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000045734175
0x5f58b8c90a34c20922c9f30ee24a2495b5b36edca2342119778c49bf812ae704Approve406634002022-06-16 18:43:02168 days 5 hrs ago0xcb6cb8308c8f54ac1c14e32348f2df60d4c3b283 IN  0x20aa395f3bcc4dc44a94215d129650533b3da0b30 FTM0.000663413262
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x50e8b10aeae3c1b94439dbdaa4edbeb9e7295ba57bc756c75e54f3a21218ab2a116852442021-07-09 19:06:07510 days 5 hrs ago SpookySwap: Factory  Contract Creation0 FTM
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x46c8054edc2d7f8cd517fd9ba1688e1285d2345d

Contract Name:
UniswapV2Pair

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2021-09-20
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

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;
        }
    }
}

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

interface IERC20 {
    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);
}

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 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;
}

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);
    }
}

library SafeMath {
    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');
    }
}

contract UniswapV2ERC20 {
    using SafeMath for uint;

    string public constant name = 'Spooky LP';
    string public constant symbol = 'spLP';
    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);
    }
}

contract UniswapV2Pair is UniswapV2ERC20 {
    using SafeMath  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(3).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 = IERC20(token0).balanceOf(address(this));
        uint balance1 = IERC20(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) {
            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 = IERC20(_token0).balanceOf(address(this));
        uint balance1 = IERC20(_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 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_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 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_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(2));
        uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(2));
        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, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
        _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
    }

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

Contract Security Audit

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"}]

60806040526001600c5534801561001557600080fd5b506040805180820182526009815268053706f6f6b79204c560bc1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fa91fe58471fd2a6be67edb07e310245d14cf2e61eb70f1d79b9e0f5cdb6fc0cc818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612b51806101076000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d17565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d50565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da5565b604080519115158252519081900360200190f35b61036a610dbc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610dd8565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610dde565b61039b610eb7565b610400610edb565b6040805160ff9092168252519081900360200190f35b61039b610ee0565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ee6565b61039b610fbf565b61039b610fc5565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fcb565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611361565b61039b611373565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661138b565b6040805192835260208301919091528051918290030190f35b610261611816565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561184f565b61039b61185c565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611862565b61036a611a4f565b61036a611a6b565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a87565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611d53565b610257611d70565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a626025913960400191505060405180910390fd5b600080610767610d50565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aab6021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611f56565b89156108e1576108e1818a8c611f56565b86156109ad578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b09576000610b1f565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b43576000610b59565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b6a5750600081115b610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a876024913960400191505060405180910390fd5b6000610be1610bcf846002612163565b610bdb876103e8612163565b906121e9565b90506000610bf3610bcf846002612163565b9050610c1f620f4240610c196dffffffffffffffffffffffffffff8b8116908b16612163565b90612163565b610c298383612163565b1015610c9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ca48484888861225b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600981526020017f53706f6f6b79204c50000000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610db2338484612511565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ea25773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610e7090836121e9565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ead848484612580565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610f6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461103e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061104e610d50565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561116b57600080fd5b505afa15801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b5051905060006111b5836dffffffffffffffffffffffffffff87166121e9565b905060006111d3836dffffffffffffffffffffffffffff87166121e9565b905060006111e18787612655565b60005490915080611218576112046103e8610bdb6111ff8787612163565b6127c3565b985061121360006103e8612815565b611269565b6112666dffffffffffffffffffffffffffff89166112368684612163565b8161123d57fe5b046dffffffffffffffffffffffffffff89166112598685612163565b8161126057fe5b046128b9565b98505b600089116112c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612af46028913960400191505060405180910390fd5b6112cc8a8a612815565b6112d886868a8a61225b565b811561131457600854611310906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061140f610d50565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d602081101561155957600080fd5b5051306000908152600160205260408120549192506115788888612655565b600054909150806115898487612163565b8161159057fe5b049a508061159e8486612163565b816115a557fe5b04995060008b1180156115b8575060008a115b61160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612acc6028913960400191505060405180910390fd5b61161730846128d1565b611622878d8d611f56565b61162d868d8c611f56565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d602081101561175f57600080fd5b5051935061176f85858b8b61225b565b81156117ab576008546117a7906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612163565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600481526020017f73704c500000000000000000000000000000000000000000000000000000000081525081565b6000610db2338484612580565b6103e881565b600c546001146118d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff94851694909316926119a992859287926119a4926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d602081101561199c57600080fd5b5051906121e9565b611f56565b611a4581846119a46008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561197257600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611c57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611cd257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611d3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611d48898989612511565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611f4f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d6020811015611e8257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661225b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061205c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161201f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120be576040519150601f19603f3d011682016040523d82523d6000602084013e6120c3565b606091505b50915091508180156120f15750805115806120f157508080602001905160208110156120ee57600080fd5b50515b61215c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b600081158061217e5750508082028282828161217b57fe5b04145b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061228757506dffffffffffffffffffffffffffff8311155b6122f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061234257506dffffffffffffffffffffffffffff841615155b801561235d57506dffffffffffffffffffffffffffff831615155b15612407578063ffffffff1661239a856123768661298a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906129ae565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166123da846123768761298a565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546125b090826121e9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546125ec90826129ef565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c057600080fd5b505afa1580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906127af5780156127aa57600061273b6111ff6dffffffffffffffffffffffffffff888116908816612163565b90506000612748836127c3565b9050808211156127a757600061276a61276184846121e9565b60005490612163565b905060006127838361277d866003612163565b906129ef565b9050600081838161279057fe5b04905080156127a3576127a38782612815565b5050505b50505b6127bb565b80156127bb576000600b555b505092915050565b60006003821115612806575080600160028204015b81811015612800578091506002818285816127ef57fe5b0401816127f857fe5b0490506127d8565b50612810565b8115612810575060015b919050565b60005461282290826129ef565b600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602052604090205461285490826129ef565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106128c857816128ca565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461290190826121e9565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461293590826121e9565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816129e757fe5b049392505050565b80820182811015610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220dcc02d08a0d2a855883ec246a1af8cf8f67b5238ab62de5a68f41c5b52af7d5b64736f6c634300060c0033

Deployed ByteCode Sourcemap

6465:9671:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13654:1889;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13654:1889:0;;-1:-1:-1;13654:1889:0;-1:-1:-1;13654:1889:0;:::i;:::-;;3127:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7470:231;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5173:147;;;;;;;;;;;;;;;;-1:-1:-1;5173:147:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6759:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3262:24;;;:::i;:::-;;;;;;;;;;;;;;;;5475:301;;;;;;;;;;;;;;;;-1:-1:-1;5475:301:0;;;;;;;;;;;;;;;;;;:::i;3554:108::-;;;:::i;3220:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3411:31;;;:::i;8530:210::-;;;;;;;;;;;;;;;;-1:-1:-1;8530:210:0;;;;;;;;;;;:::i;7110:32::-;;;:::i;7149:::-;;;:::i;10724:1240::-;;;;;;;;;;;;;;;;-1:-1:-1;10724:1240:0;;;;:::i;3293:41::-;;;;;;;;;;;;;;;;-1:-1:-1;3293:41:0;;;;:::i;7188:17::-;;;:::i;3669:38::-;;;;;;;;;;;;;;;;-1:-1:-1;3669:38:0;;;;:::i;12076:1466::-;;;;;;;;;;;;;;;;-1:-1:-1;12076:1466:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3175:38;;;:::i;5328:139::-;;;;;;;;;;;;;;;;-1:-1:-1;5328:139:0;;;;;;;;;:::i;6580:46::-;;;:::i;15592:334::-;;;;;;;;;;;;;;;;-1:-1:-1;15592:334:0;;;;:::i;6730:22::-;;;:::i;6787:21::-;;;:::i;5784:674::-;;;;;;;;;;;;;;;;-1:-1:-1;5784:674:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3341:61::-;;;;;;;;;;;;;;;;-1:-1:-1;3341:61:0;;;;;;;;;;;:::i;15975:158::-;;;:::i;13654:1889::-;7361:8;;7373:1;7361:13;7353:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7418:1;7407:8;:12;13768:14;;;;:32:::1;;;13799:1;13786:10;:14;13768:32;13760:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13854:17;13873::::0;13895:13:::1;:11;:13::i;:::-;13853:55;;;;;13955:9;13942:22;;:10;:22;:48;;;;;13981:9;13968:22;;:10;:22;13942:48;13934:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14173:6;::::0;14208::::1;::::0;14041:13:::1;::::0;;;14173:6:::1;::::0;;::::1;::::0;14208;;::::1;::::0;14233:13;::::1;::::0;::::1;::::0;::::1;::::0;:30:::1;;;14256:7;14250:13;;:2;:13;;;;14233:30;14225:64;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14304:14:::0;;14300:58:::1;;14320:38;14334:7;14343:2;14347:10;14320:13;:38::i;:::-;14407:14:::0;;14403:58:::1;;14423:38;14437:7;14446:2;14450:10;14423:13;:38::i;:::-;14510:15:::0;;14506:97:::1;;14544:2;14527:34;;;14562:10;14574;14586;14598:4;;14527:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14506:97;14625:40;::::0;;;;;14659:4:::1;14625:40;::::0;::::1;::::0;;;:25:::1;::::0;::::1;::::0;::::1;::::0;:40;;;;;::::1;::::0;;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14625:40:0;14687::::1;::::0;;;;;14721:4:::1;14687:40;::::0;::::1;::::0;;;14625;;-1:-1:-1;14687:25:0::1;::::0;::::1;::::0;::::1;::::0;:40;;;;;14625::::1;::::0;14687;;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14687:40:0;;-1:-1:-1;14749:14:0::1;::::0;-1:-1:-1;;14777:22:0::1;::::0;::::1;::::0;;::::1;14766:33:::0;::::1;:75;;14840:1;14766:75;;;14826:10;14814:9;:22;;;14802:8;:35;14766:75;14749:92;;14852:14;14892:10;14880:9;:22;;;14869:8;:33;:75;;14943:1;14869:75;;;14929:10;14917:9;:22;;;14905:8;:35;14869:75;14852:92;;14975:1;14963:9;:13;:30;;;;14992:1;14980:9;:13;14963:30;14955:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15120:21;15144:40;15167:16;:9:::0;15181:1:::1;15167:13;:16::i;:::-;15144:18;:8:::0;15157:4:::1;15144:12;:18::i;:::-;:22:::0;::::1;:40::i;:::-;15120:64:::0;-1:-1:-1;15195:21:0::1;15219:40;15242:16;:9:::0;15256:1:::1;15242:13;:16::i;15219:40::-;15195:64:::0;-1:-1:-1;15320:43:0::1;15355:7;15320:30;;:15:::0;;::::1;::::0;:30;::::1;:19;:30::i;:::-;:34:::0;::::1;:43::i;:::-;15278:38;:16:::0;15299;15278:20:::1;:38::i;:::-;:85;;15270:110;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;7430:1;;15404:49;15412:8;15422;15432:9;15443;15404:7;:49::i;:::-;15469:66;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;15474:10:::1;::::0;15469:66:::1;::::0;;;;;;;::::1;-1:-1:-1::0;;7453:1:0;7442:8;:12;-1:-1:-1;;;;;;;;;13654:1889:0:o;3127:41::-;;;;;;;;;;;;;;;;;;;:::o;7470:231::-;7603:8;;;;;;;7634;;;;;;;7675:18;;;;;;7470:231::o;5173:147::-;5237:4;5254:36;5263:10;5275:7;5284:5;5254:8;:36::i;:::-;-1:-1:-1;5308:4:0;5173:147;;;;;:::o;6759:21::-;;;;;;:::o;3262:24::-;;;;:::o;5475:301::-;5574:15;;;5553:4;5574:15;;;:9;:15;;;;;;;;5590:10;5574:27;;;;;;;;5610:2;5574:39;5570:140;;5660:15;;;;;;;:9;:15;;;;;;;;5676:10;5660:27;;;;;;;;:38;;5692:5;5660:31;:38::i;:::-;5630:15;;;;;;;:9;:15;;;;;;;;5646:10;5630:27;;;;;;;:68;5570:140;5720:26;5730:4;5736:2;5740:5;5720:9;:26::i;:::-;-1:-1:-1;5764:4:0;5475:301;;;;;:::o;3554:108::-;3596:66;3554:108;:::o;3220:35::-;3253:2;3220:35;:::o;3411:31::-;;;;:::o;8530:210::-;8626:7;;;;8612:10;:21;8604:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8689:6;:16;;;;;;;;;;;;;;8716:6;:16;;;;;;;;;;;8530:210::o;7110:32::-;;;;:::o;7149:::-;;;;:::o;10724:1240::-;10773:14;7361:8;;7373:1;7361:13;7353:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7418:1;7407:8;:12;;;7418:1;10842:13:::1;:11;:13::i;:::-;-1:-1:-1::0;10904:6:0::1;::::0;10897:39:::1;::::0;;;;;10930:4:::1;10897:39;::::0;::::1;::::0;;;10800:55;;-1:-1:-1;10800:55:0;;-1:-1:-1;10881:13:0::1;::::0;10904:6:::1;::::0;;::::1;::::0;10897:24:::1;::::0;:39;;;;;::::1;::::0;;;;;;;;10904:6;10897:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;10897:39:0;10970:6:::1;::::0;10963:39:::1;::::0;;;;;10996:4:::1;10963:39;::::0;::::1;::::0;;;10897;;-1:-1:-1;10947:13:0::1;::::0;10970:6:::1;::::0;;::::1;::::0;10963:24:::1;::::0;:39;;;;;10897::::1;::::0;10963;;;;;;;;10970:6;10963:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;10963:39:0;;-1:-1:-1;11013:12:0::1;11028:23;:8:::0;:23:::1;::::0;::::1;:12;:23::i;:::-;11013:38:::0;-1:-1:-1;11062:12:0::1;11077:23;:8:::0;:23:::1;::::0;::::1;:12;:23::i;:::-;11062:38;;11113:10;11126:30;11135:9;11146;11126:8;:30::i;:::-;11167:17;11187:11:::0;11113:43;;-1:-1:-1;11291:17:0;11287:352:::1;;11337:54;6621:5;11337:31;11347:20;:7:::0;11359;11347:11:::1;:20::i;:::-;11337:9;:31::i;:54::-;11325:66;;11405:36;11419:1;6621:5;11405;:36::i;:::-;11287:352;;;11541:86;11550:37;::::0;::::1;:25;:7:::0;11562:12;11550:11:::1;:25::i;:::-;:37;;;;;;11589;::::0;::::1;:25;:7:::0;11601:12;11589:11:::1;:25::i;:::-;:37;;;;;;11541:8;:86::i;:::-;11529:98;;11287:352;11669:1;11657:9;:13;11649:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11726:20;11732:2;11736:9;11726:5;:20::i;:::-;11759:49;11767:8;11777;11787:9;11798;11759:7;:49::i;:::-;11823:5;11819:47;;;11857:8;::::0;11838:28:::1;::::0;11857:8:::1;11843::::0;;::::1;::::0;11857;;::::1;;11838:18;:28::i;:::-;11830:5;:36:::0;11819:47:::1;11922:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;11927:10:::1;::::0;11922:34:::1;::::0;;;;;;::::1;-1:-1:-1::0;;7453:1:0;7442:8;:12;-1:-1:-1;10724:1240:0;;;-1:-1:-1;;;;;;10724:1240:0:o;3293:41::-;;;;;;;;;;;;;:::o;7188:17::-;;;;:::o;3669:38::-;;;;;;;;;;;;;:::o;12076:1466::-;12125:12;12139;7361:8;;7373:1;7361:13;7353:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7418:1;7407:8;:12;;;7418:1;12206:13:::1;:11;:13::i;:::-;-1:-1:-1::0;12263:6:0::1;::::0;12344::::1;::::0;12423:40:::1;::::0;;;;;12457:4:::1;12423:40;::::0;::::1;::::0;;;12164:55;;-1:-1:-1;12164:55:0;;-1:-1:-1;12263:6:0::1;::::0;;::::1;::::0;12344;::::1;::::0;12245:15:::1;::::0;12263:6;;12423:25:::1;::::0;:40;;;;;::::1;::::0;;;;;;;;12263:6;12423:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12423:40:0;12490::::1;::::0;;;;;12524:4:::1;12490:40;::::0;::::1;::::0;;;12423;;-1:-1:-1;12474:13:0::1;::::0;12490:25:::1;::::0;::::1;::::0;::::1;::::0;:40;;;;;12423::::1;::::0;12490;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12490:40:0;12576:4:::1;12541:14;12558:24:::0;;;:9:::1;12490:40;12558:24:::0;;;;;12490:40;;-1:-1:-1;12608:30:0::1;12617:9:::0;12628;12608:8:::1;:30::i;:::-;12649:17;12669:11:::0;12595:43;;-1:-1:-1;12669:11:0;12779:23:::1;:9:::0;12793:8;12779:13:::1;:23::i;:::-;:38;;;;;;::::0;-1:-1:-1;12912:12:0;12886:23:::1;:9:::0;12900:8;12886:13:::1;:23::i;:::-;:38;;;;;;12876:48;;13001:1;12991:7;:11;:26;;;;;13016:1;13006:7;:11;12991:26;12983:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13073:31;13087:4;13094:9;13073:5;:31::i;:::-;13115:35;13129:7;13138:2;13142:7;13115:13;:35::i;:::-;13161;13175:7;13184:2;13188:7;13161:13;:35::i;:::-;13218:40;::::0;;;;;13252:4:::1;13218:40;::::0;::::1;::::0;;;:25:::1;::::0;::::1;::::0;::::1;::::0;:40;;;;;::::1;::::0;;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;13218:40:0;13280::::1;::::0;;;;;13314:4:::1;13280:40;::::0;::::1;::::0;;;13218;;-1:-1:-1;13280:25:0::1;::::0;::::1;::::0;::::1;::::0;:40;;;;;13218::::1;::::0;13280;;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;13280:40:0;;-1:-1:-1;13333:49:0::1;13341:8:::0;13280:40;13361:9;13372;13333:7:::1;:49::i;:::-;13397:5;13393:47;;;13431:8;::::0;13412:28:::1;::::0;13431:8:::1;13417::::0;;::::1;::::0;13431;;::::1;;13412:18;:28::i;:::-;13404:5;:36:::0;13393:47:::1;13496:38;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;13501:10:::1;::::0;13496:38:::1;::::0;;;;;;;;;::::1;7430:1;;;;;;;;;7453::::0;7442:8;:12;;;;12076:1466;;;:::o;3175:38::-;;;;;;;;;;;;;;;;;;;:::o;5328:139::-;5388:4;5405:32;5415:10;5427:2;5431:5;5405:9;:32::i;6580:46::-;6621:5;6580:46;:::o;15592:334::-;7361:8;;7373:1;7361:13;7353:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7418:1;7407:8;:12;15661:6:::1;::::0;15711::::1;::::0;15815:8:::1;::::0;15770:40:::1;::::0;;;;;15804:4:::1;15770:40;::::0;::::1;::::0;;;15661:6:::1;::::0;;::::1;::::0;15711;;::::1;::::0;15743:82:::1;::::0;15661:6;;15766:2;;15770:54:::1;::::0;15815:8:::1;;::::0;15661:6;;15770:25:::1;::::0;:40;;;;;::::1;::::0;;;;;;;;;15661:6;15770:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15770:40:0;;:44:::1;:54::i;:::-;15743:13;:82::i;:::-;15836;15850:7;15859:2;15863:54;15908:8;;;;;;;;;;;15863:54;;15870:7;15863:25;;;15897:4;15863:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;15836:82;-1:-1:-1::0;;7453:1:0;7442:8;:12;-1:-1:-1;15592:334:0:o;6730:22::-;;;;;;:::o;6787:21::-;;;;;;:::o;5784:674::-;5930:15;5918:8;:27;;5910:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:16;;6180:13;;;;5979:14;6180:13;;;:6;:13;;;;;;;;:15;;;;;;;;;6129:77;;3596:66;6129:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6119:88;;;;;;6020:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5996:237;;;;;;;;;6271:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5979:14;;6180:15;6271:26;;;;;-1:-1:-1;6271:26:0;;;;;;;;;;6180:15;6271:26;;;;;;;;;;;;;;;-1:-1:-1;;6271:26:0;;;;;;-1:-1:-1;;6316:30:0;;;;;;;:59;;;6370:5;6350:25;;:16;:25;;;6316:59;6308:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6419:31;6428:5;6435:7;6444:5;6419:8;:31::i;:::-;5784:674;;;;;;;;;:::o;3341:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;15975:158::-;7361:8;;7373:1;7361:13;7353:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7418:1;7407:8;:12;16031:6:::1;::::0;16024:39:::1;::::0;;;;;16057:4:::1;16024:39;::::0;::::1;::::0;;;16016:109:::1;::::0;16031:6:::1;;::::0;16024:24:::1;::::0;:39;;;;;::::1;::::0;;;;;;;;16031:6;16024:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16024:39:0;16072:6:::1;::::0;16065:39:::1;::::0;;;;;16098:4:::1;16065:39;::::0;::::1;::::0;;;16072:6:::1;::::0;;::::1;::::0;16065:24:::1;::::0;:39;;;;;16024::::1;::::0;16065;;;;;;;;16072:6;16065:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16065:39:0;16106:8:::1;::::0;::::1;::::0;;::::1;::::0;16116;;::::1;;16016:7;:109::i;:::-;7453:1:::0;7442:8;:12;15975:158::o;7709:287::-;6685:34;;;;;;;;;;;;;;;;;7837:43;;7826:10;7837:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7826:55;;;;7791:12;;7805:17;;7826:10;;;7837:43;7826:55;;;7837:43;7826:55;;7837:43;7826:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7790:91;;;;7900:7;:57;;;;-1:-1:-1;7912:11:0;;:16;;:44;;;7943:4;7932:24;;;;;;;;;;;;;;;-1:-1:-1;7932:24:0;7912:44;7892:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7709:287;;;;;:::o;2915:142::-;2967:6;2994;;;:30;;-1:-1:-1;;3009:5:0;;;3023:1;3018;3009:5;3018:1;3004:15;;;;;:20;2994:30;2986:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2778:129;2862:5;;;2857:16;;;;2849:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8825:860;8937:23;;;;;;:50;;-1:-1:-1;8964:23:0;;;;8937:50;8929:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9126:18;;9053:23;:15;:23;;;9126:18;;;;;9109:35;;;9182:15;;;;;;:33;;-1:-1:-1;9201:14:0;;;;;9182:33;:51;;;;-1:-1:-1;9219:14:0;;;;;9182:51;9178:336;;;9388:11;9335:64;;9340:44;9374:9;9340:27;9357:9;9340:16;:27::i;:::-;:33;;;;:44::i;:::-;9311:20;:88;;9335:50;;;;;:64;;;;9311:88;;;9438:64;;;9443:44;9477:9;9443:27;9460:9;9443:16;:27::i;:44::-;9414:20;:88;;9438:50;;;;;:64;;;;9414:88;;;9178:336;9524:8;:28;;;;;;;;;;;;9563;;;;;;;;;;;;9602:35;;;;;;;;;;;;9653:24;;;9658:8;;;9653:24;;9668:8;;;;;;;9653:24;;;;;;;;;;;;;;;;;8825:860;;;;;;:::o;4768:169::-;4849:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;4898:31;;;;;;;;;;;;;;;;;4768:169;;;:::o;4945:220::-;5039:15;;;;;;;:9;:15;;;;;;:26;;5059:5;5039:19;:26::i;:::-;5021:15;;;;;;;;:9;:15;;;;;;:44;;;;5092:13;;;;;;;:24;;5110:5;5092:17;:24::i;:::-;5076:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;5132:25;;;;;;;5076:13;;5132:25;;;;;;;;;;;;;4945:220;;;:::o;9775:837::-;9848:10;9871:13;9905:7;;;;;;;;;;;9887:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9887:34:0;9984:5;;9940:19;;;;;;;-1:-1:-1;9887:34:0;;-1:-1:-1;9984:5:0;10015:590;;10045:11;;10041:494;;10077:10;10090:41;10100:30;;:15;;;;:30;;:19;:30::i;10090:41::-;10077:54;;10150:14;10167:17;10177:6;10167:9;:17::i;:::-;10150:34;;10215:9;10207:5;:17;10203:317;;;10249:14;10266:37;10282:20;:5;10292:9;10282;:20::i;:::-;10266:11;;;:15;:37::i;:::-;10249:54;-1:-1:-1;10326:16:0;10345:27;10362:9;10345:12;:5;10355:1;10345:9;:12::i;:::-;:16;;:27::i;:::-;10326:46;;10395:14;10424:11;10412:9;:23;;;;;;;-1:-1:-1;10462:13:0;;10458:42;;10477:23;10483:5;10490:9;10477:5;:23::i;:::-;10203:317;;;;10041:494;;;10015:590;;;10556:11;;10552:53;;10592:1;10584:5;:9;10552:53;9775:837;;;;;;:::o;294:303::-;339:6;366:1;362;:5;358:232;;;-1:-1:-1;388:1:0;421;417;413:5;;:9;437:92;448:1;444;:5;437:92;;;474:1;470:5;;512:1;507;503;499;:5;;;;;;:9;498:15;;;;;;494:19;;437:92;;;358:232;;;;550:6;;546:44;;-1:-1:-1;577:1:0;546:44;294:303;;;:::o;4342:201::-;4415:11;;:22;;4431:5;4415:15;:22::i;:::-;4401:11;:36;;;4464:13;;;;;:9;:13;;;;;;:24;;4482:5;4464:17;:24::i;:::-;4448:13;;;;;;;:9;:13;;;;;;;;:40;;;;4504:31;;;;;;;4448:13;;;;4504:31;;;;;;;;;;4342:201;;:::o;80:96::-;132:6;159:1;155;:5;:13;;167:1;155:13;;;163:1;155:13;151:17;80:96;-1:-1:-1;;;80:96:0:o;4551:209::-;4630:15;;;;;;;:9;:15;;;;;;:26;;4650:5;4630:19;:26::i;:::-;4612:15;;;;;;;:9;:15;;;;;:44;;;;4681:11;:22;;4697:5;4681:15;:22::i;:::-;4667:11;:36;;;4719:33;;;;;;;;;;;;;;;;;;;;;;4551:209;;:::o;2312:120::-;2388:10;;2257:6;2388:17;;2312:120::o;2503:108::-;2563:9;2593:10;;;2589:14;;;2593:10;2589:14;;;;;;2503:108;-1:-1:-1;;;2503:108:0:o;2642:128::-;2726:5;;;2721:16;;;;2713:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://dcc02d08a0d2a855883ec246a1af8cf8f67b5238ab62de5a68f41c5b52af7d5b
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
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.