Contract 0xfCad61BD44f6A965cb278e17E157Cf33ddc105bA

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6652f82a26a53c866fc70e86f356c51762e7eb544c86e59c15c0ce718bdbd049Approve656111782023-03-01 3:34:50411 days 19 hrs ago0x7285d72fa089cb14f8712395bbb079334f85774a IN  0xfcad61bd44f6a965cb278e17e157cf33ddc105ba0 ETH0.00003549 0.1
0xaf8131af59860fe8a50c914aae2e0feda5d5bd6abbc4d548f443b9ac999f62b70x60806040655727912023-03-01 0:30:44411 days 22 hrs ago0x7285d72fa089cb14f8712395bbb079334f85774a IN  Create: OGIB0 ETH0.00142362 0.1
[ Download CSV Export 
Latest 3 internal transactions
Parent Txn Hash Block From To Value
0xaf8131af59860fe8a50c914aae2e0feda5d5bd6abbc4d548f443b9ac999f62b7655727912023-03-01 0:30:44411 days 22 hrs ago 0xfcad61bd44f6a965cb278e17e157cf33ddc105ba OreoSwap: Factory0 ETH
0xaf8131af59860fe8a50c914aae2e0feda5d5bd6abbc4d548f443b9ac999f62b7655727912023-03-01 0:30:44411 days 22 hrs ago 0xfcad61bd44f6a965cb278e17e157cf33ddc105ba OreoSwap: Router0 ETH
0xaf8131af59860fe8a50c914aae2e0feda5d5bd6abbc4d548f443b9ac999f62b7655727912023-03-01 0:30:44411 days 22 hrs ago 0xfcad61bd44f6a965cb278e17e157cf33ddc105ba OreoSwap: Router0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OGIB

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-03-01
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.18;

interface IOreoSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);

    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);

    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);

    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);

    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

interface IPlayerManager {
    function checkPlayerExists(address) external returns (bool);
    function playerRewardsActive(address) external returns (bool);
    function updatePlayerStatus(address, bool) external;
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
}

contract OGIB is ERC20, Auth {
    event SetAutomatedMarketMakerPair(address indexed _pair, bool indexed _value);
    event SetAutomatedMarketMakerRouter(address _router);
    event SetFeeExempt(address _addr, bool _value);
    event SetFeePercentage(uint256 _fee);
    event SetFeeReceiver(address _feeReceiver);
    event SetPlayerManagerContract(address _playerManager);
    event SetSwapBackThreshold(uint256 _amount);
    event SetUsdcOgibThreshold(uint256 _amount);

    address private WETH;
    address private USDC;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    IPlayerManager private playerManager;

    string constant private _name = "OGI War Bonds";
    string constant private _symbol = "OGIB";
    uint8 constant private _decimals = 18;

    uint256 private _totalSupply = 1000000000 * 10 ** _decimals;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    address[] public marketPairs;
    mapping (address => bool) public automatedMarketMakerPairs;

    mapping (address => bool) public isFeeExempt;

    uint256 private feePercentage = 2;
    uint256 public maxFeePercentage = 5;

    uint256 private constant feeDenominator  = 100;

    address private feeReceiver;

    IOreoSwapRouter public router;
    address public pair;

    uint256 public swapThreshold = _totalSupply * 1 / 5000;
    uint256 public usdcThreshold = 20 * 10 ** _decimals;

    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor() Auth(msg.sender) {
        router = IOreoSwapRouter(0x38eEd6a71A4ddA9d7f776946e3cfa4ec43781AE6);
        WETH = router.WETH();
        USDC = address(0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8);
        pair = IOreoSwapFactory(router.factory()).createPair(WETH, address(this));

        setAutomatedMarketMakerPair(pair, true);

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;

        feeReceiver = msg.sender;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply - _balances[DEAD] - _balances[ZERO]; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address _recipient, uint256 _amount) public virtual override returns (bool) {
        return _transferFrom(msg.sender, _recipient, _amount);
    }

    function transferFrom(address _sender, address _recipient, uint256 _amount) public virtual override returns (bool) {
        require(_allowances[_sender][msg.sender] >= _amount, "Insufficient Allowance");

        if(_allowances[_sender][msg.sender] != type(uint256).max){
            _allowances[_sender][msg.sender] -= _amount;
        }

        return _transferFrom(_sender, _recipient, _amount);
    }

    function _transferFrom(address _sender, address _recipient, uint256 _amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(_sender, _recipient, _amount); }

        if(shouldSwapBack()) { swapBack(); }

        uint256 amountReceived = _amount;

        bool isTransfer = !automatedMarketMakerPairs[_sender] && !automatedMarketMakerPairs[_recipient];
        bool feeExempt = isFeeExempt[_sender] || isFeeExempt[_recipient];

        if(!isTransfer && !feeExempt) {
            amountReceived = takeFee(_sender, _amount);
        }

        _balances[_sender] -= _amount;
        _balances[_recipient] += amountReceived;

        if(address(playerManager) != address(0)) {
            try playerManager.updatePlayerStatus(_sender, _balances[_sender] < getUsdcThreshold()) {} catch {}
            try playerManager.updatePlayerStatus(_recipient, _balances[_recipient] >= getUsdcThreshold()) {} catch {}
        }

        emit Transfer(_sender, _recipient, amountReceived);
        return true;
    }

    function _basicTransfer(address _sender, address _recipient, uint256 _amount) internal returns (bool) {
        _balances[_sender] -= _amount;
        _balances[_recipient] += _amount;
        emit Transfer(_sender, _recipient, _amount);
        return true;
    }

    function takeFee(address sender, uint256 _amount) internal returns (uint256){
        uint256 feeAmount = (_amount * feePercentage) / feeDenominator;

        _balances[address(this)] += feeAmount;
        emit Transfer(sender, address(this), feeAmount);

        return _amount - feeAmount;
    }

    function shouldSwapBack() internal view returns (bool) {
        return
        !automatedMarketMakerPairs[msg.sender]
        && !inSwap
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _balances[address(this)],
            0,
            path,
            feeReceiver,
            block.timestamp
        );
    }

    function rescueERC20(address _tokenAddress) external onlyOwner returns (bool) {
        ERC20 recoverableToken = ERC20(_tokenAddress);
        return recoverableToken.transfer(msg.sender, recoverableToken.balanceOf(address(this)));
    }

    function clearStuckBalance() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    function setIsFeeExempt(address _holder, bool _exempt) external onlyOwner {
        require(isFeeExempt[_holder] != _exempt, "Fee exempt status can't be set to same as current status");

        isFeeExempt[_holder] = _exempt;

        emit SetFeeExempt(_holder, _exempt);
    }

    function setFeePercentage(uint256 _feePercentage) external onlyOwner {
        require(_feePercentage <= maxFeePercentage, "Buy fee cannot be more than 5%");

        feePercentage = _feePercentage;

        emit SetFeePercentage(_feePercentage);
    }

    function setFeeReceiver(address _feeReceiver) external onlyOwner {
        require(_feeReceiver != address(0), "Zero Address validation" );

        feeReceiver = _feeReceiver;

        emit SetFeeReceiver(_feeReceiver);
    }

    function setSwapThreshold(uint256 _threshold) external onlyOwner {
        require (_threshold > 0, "Can't set swap threshold to 0");

        swapThreshold = _threshold;

        emit SetSwapBackThreshold(_threshold);
    }

    function setUsdcOgibThreshold(uint256 _threshold) external onlyOwner {
        require(_threshold >= 1, "USDC to OGIB threshold can't be less than $1");

        usdcThreshold = _threshold * 10 ** _decimals;

        emit SetUsdcOgibThreshold(_threshold);
    }

    function setPlayerManagerContract(address _playerManager) external onlyOwner {
        require (address(playerManager) != _playerManager, "Can't set OGIC contract to same address");

        playerManager = IPlayerManager(_playerManager);

        emit SetPlayerManagerContract(_playerManager);
    }

    function setAutomatedMarketMakerPair(address _pair, bool _value) public onlyOwner {
        require(automatedMarketMakerPairs[_pair] != _value, "Value already set");

        automatedMarketMakerPairs[_pair] = _value;

        if(_value){
            marketPairs.push(_pair);
        }else{
            require(marketPairs.length > 1, "Required 1 pair");
            for (uint256 i = 0; i < marketPairs.length; i++) {
                if (marketPairs[i] == _pair) {
                    marketPairs[i] = marketPairs[marketPairs.length - 1];
                    marketPairs.pop();
                    break;
                }
            }
        }

        emit SetAutomatedMarketMakerPair(_pair, _value);
    }

    function getOgibToUsdcPrice() public view returns (uint256) {
        uint256 ogibAmount = 1 * 10 ** _decimals;

        // Get the price of ETH in OGIB
        address[] memory path = new address[](3);
        path[0] = USDC;
        path[1] = WETH;
        path[2] = address(this);
        uint256[] memory amounts = router.getAmountsOut(ogibAmount, path);
        uint256 ogibForOneUSDC = amounts[2];

        // Compute the OGIB/USDC price
        return ogibForOneUSDC;
    }

    function getUsdcThreshold() public view returns (uint256) {
        uint256 ogibUsdcPrice = getOgibToUsdcPrice();
        uint256 ogibAmount = usdcThreshold;
        return ogibAmount * ogibUsdcPrice;
    }
}

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":"_pair","type":"address"},{"indexed":true,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_router","type":"address"}],"name":"SetAutomatedMarketMakerRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"SetFeePercentage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"SetFeeReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_playerManager","type":"address"}],"name":"SetPlayerManagerContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SetSwapBackThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SetUsdcOgibThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOgibToUsdcPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUsdcThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"marketPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFeePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"rescueERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IOreoSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercentage","type":"uint256"}],"name":"setFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"},{"internalType":"bool","name":"_exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_playerManager","type":"address"}],"name":"setPlayerManagerContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setUsdcOgibThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdcThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a6200070d565b6200004290633b9aca0062000725565b6006556002600c556005600d55611388600654600162000063919062000725565b6200006f91906200073f565b601155620000806012600a6200070d565b6200008d90601462000725565b6012553480156200009d57600080fd5b5060008054336001600160a01b031991821617909155600f80547338eed6a71a4dda9d7f776946e3cfa4ec43781ae6921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200010e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000134919062000762565b600180546001600160a01b039283166001600160a01b0319918216179091556002805490911673ff970a61a04b1ca14834a43f5de4533ebddb5cc8179055600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001db919062000762565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200022d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000253919062000762565b601080546001600160a01b0319166001600160a01b039290921691821790556200027f9060016200032a565b306000818152600860209081526040808320600f546001600160a01b031684528252808320600019905533808452600b83528184208054600160ff199182168117909255958552828520805490961617909455600e80546001600160a01b031916851790556006548484526007835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007eb565b6000546001600160a01b03163314620003735760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503620003d95760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016200036a565b6001600160a01b0382166000908152600a60205260409020805460ff191682158015919091179091556200045857600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b038416179055620005bc565b6009546001106200049e5760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b60448201526064016200036a565b60005b600954811015620005ba57826001600160a01b031660098281548110620004cc57620004cc6200078d565b6000918252602090912001546001600160a01b031603620005a55760098054620004f990600190620007a3565b815481106200050c576200050c6200078d565b600091825260209091200154600980546001600160a01b0390921691839081106200053b576200053b6200078d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060098054806200057d576200057d620007b9565b600082815260209020810160001990810180546001600160a01b0319169055019055620005ba565b80620005b181620007cf565b915050620004a1565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200064f578160001904821115620006335762000633620005f8565b808516156200064157918102915b93841c939080029062000613565b509250929050565b600082620006685750600162000707565b81620006775750600062000707565b81600181146200069057600281146200069b57620006bb565b600191505062000707565b60ff841115620006af57620006af620005f8565b50506001821b62000707565b5060208310610133831016604e8410600b8410161715620006e0575081810a62000707565b620006ec83836200060e565b8060001904821115620007035762000703620005f8565b0290505b92915050565b60006200071e60ff84168362000657565b9392505050565b8082028115828204841417620007075762000707620005f8565b6000826200075d57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200077557600080fd5b81516001600160a01b03811681146200071e57600080fd5b634e487b7160e01b600052603260045260246000fd5b81810381811115620007075762000707620005f8565b634e487b7160e01b600052603160045260246000fd5b600060018201620007e457620007e4620005f8565b5060010190565b611bca80620007fb6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806375aa49721161010f578063b62496f5116100a2578063dd62ed3e11610071578063dd62ed3e14610453578063efdcd9741461048c578063f6f62ad01461049f578063f887ea40146104a857600080fd5b8063b62496f51461040c578063bd853c451461042f578063bf654aac14610437578063ccec37161461044057600080fd5b80639d0014b1116100de5780639d0014b1146103c0578063a8aa1b31146103d3578063a9059cbb146103e6578063ae06c1b7146103f957600080fd5b806375aa497214610369578063893d20e81461037c57806395d89b411461038d5780639a7a23d6146103ad57600080fd5b8063313ce56711610187578063571ac8b011610156578063571ac8b0146102ef578063658d4b7f146103025780636cda40591461031557806370a082311461034057600080fd5b8063313ce567146102ad578063364333f4146102bc5780633f4218e0146102c45780634d4c9c51146102e757600080fd5b8063095ea7b3116101c3578063095ea7b31461024d57806318160ddd1461027057806323b872dd146102785780632f54bf6e1461028b57600080fd5b806302110a69146101ea5780630445b667146101ff57806306fdde031461021b575b600080fd5b6101fd6101f83660046116c4565b6104bb565b005b61020860115481565b6040519081526020015b60405180910390f35b60408051808201909152600d81526c4f47492057617220426f6e647360981b60208201525b60405161021291906116df565b61026061025b36600461172d565b6105b0565b6040519015158152602001610212565b61020861061d565b610260610286366004611757565b610665565b6102606102993660046116c4565b6000546001600160a01b0391821691161490565b60405160128152602001610212565b6101fd61074b565b6102606102d23660046116c4565b600b6020526000908152604090205460ff1681565b6102086107a4565b6102606102fd3660046116c4565b6107c6565b6101fd6103103660046117a1565b6107d4565b6103286103233660046117d8565b6108f7565b6040516001600160a01b039091168152602001610212565b61020861034e3660046116c4565b6001600160a01b031660009081526007602052604090205490565b6101fd6103773660046117d8565b610921565b6000546001600160a01b0316610328565b60408051808201909152600481526327a3a4a160e11b6020820152610240565b6101fd6103bb3660046117a1565b6109fa565b6101fd6103ce3660046117d8565b610c8f565b601054610328906001600160a01b031681565b6102606103f436600461172d565b610d3e565b6101fd6104073660046117d8565b610d4b565b61026061041a3660046116c4565b600a6020526000908152604090205460ff1681565b610208610dfc565b610208600d5481565b61026061044e3660046116c4565b610f75565b6102086104613660046117f1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101fd61049a3660046116c4565b61108c565b61020860125481565b600f54610328906001600160a01b031681565b6000546001600160a01b031633146104ee5760405162461bcd60e51b81526004016104e590611824565b60405180910390fd5b6005546001600160a01b0380831691160361055b5760405162461bcd60e51b815260206004820152602760248201527f43616e277420736574204f47494320636f6e747261637420746f2073616d65206044820152666164647265737360c81b60648201526084016104e5565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fb21d477470bbdcb2359441aafc29c4addd8badccb60307885b58857045dbd1ab906020015b60405180910390a150565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061060b9086815260200190565b60405180910390a35060015b92915050565b6004546001600160a01b03908116600090815260076020526040808220546003549093168252812054600654919291610656919061185a565b610660919061185a565b905090565b6001600160a01b03831660009081526008602090815260408083203384529091528120548211156106d15760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016104e5565b6001600160a01b038416600090815260086020908152604080832033845290915290205460001914610736576001600160a01b03841660009081526008602090815260408083203384529091528120805484929061073090849061185a565b90915550505b61074184848461115a565b90505b9392505050565b6000546001600160a01b031633146107755760405162461bcd60e51b81526004016104e590611824565b60405133904780156108fc02916000818181858888f193505050501580156107a1573d6000803e3d6000fd5b50565b6000806107af610dfc565b6012549091506107bf828261186d565b9250505090565b6000610617826000196105b0565b6000546001600160a01b031633146107fe5760405162461bcd60e51b81526004016104e590611824565b6001600160a01b0382166000908152600b602052604090205481151560ff9091161515036108945760405162461bcd60e51b815260206004820152603860248201527f466565206578656d7074207374617475732063616e277420626520736574207460448201527f6f2073616d652061732063757272656e7420737461747573000000000000000060648201526084016104e5565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d910160405180910390a15050565b6009818154811061090757600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b0316331461094b5760405162461bcd60e51b81526004016104e590611824565b60018110156109b15760405162461bcd60e51b815260206004820152602c60248201527f5553444320746f204f474942207468726573686f6c642063616e27742062652060448201526b6c657373207468616e20243160a01b60648201526084016104e5565b6109bd6012600a611968565b6109c7908261186d565b6012556040518181527fa890b6f3a2fd28b18f9193738bfa34d7e4b8ca0b1147b9dc7c67ef79b14c92ab906020016105a5565b6000546001600160a01b03163314610a245760405162461bcd60e51b81526004016104e590611824565b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503610a885760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016104e5565b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155610b0557600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b038416179055610c53565b600954600110610b495760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b60448201526064016104e5565b60005b600954811015610c5157826001600160a01b031660098281548110610b7357610b73611977565b6000918252602090912001546001600160a01b031603610c3f5760098054610b9d9060019061185a565b81548110610bad57610bad611977565b600091825260209091200154600980546001600160a01b039092169183908110610bd957610bd9611977565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506009805480610c1857610c1861198d565b600082815260209020810160001990810180546001600160a01b0319169055019055610c51565b80610c49816119a3565b915050610b4c565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000546001600160a01b03163314610cb95760405162461bcd60e51b81526004016104e590611824565b60008111610d095760405162461bcd60e51b815260206004820152601d60248201527f43616e2774207365742073776170207468726573686f6c6420746f203000000060448201526064016104e5565b60118190556040518181527ffff9ce956ade7b416c31b994ca5dd0839b425a9a12b73f69fbd0e34634456cfe906020016105a5565b600061074433848461115a565b6000546001600160a01b03163314610d755760405162461bcd60e51b81526004016104e590611824565b600d54811115610dc75760405162461bcd60e51b815260206004820152601e60248201527f427579206665652063616e6e6f74206265206d6f7265207468616e203525000060448201526064016104e5565b600c8190556040518181527fcc8e0d099b6b6a1a4ae089dec1b2c29e7df166eb8f103f55064427f6e4596b09906020016105a5565b600080610e0b6012600a611968565b610e1690600161186d565b604080516003808252608082019092529192506000919060208201606080368337505060025482519293506001600160a01b031691839150600090610e5d57610e5d611977565b6001600160a01b0392831660209182029290920101526001805483519216918391908110610e8d57610e8d611977565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600281518110610ec157610ec1611977565b6001600160a01b039283166020918202929092010152600f5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f059086908690600401611a16565b600060405180830381865afa158015610f22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f4a9190810190611a2f565b9050600081600281518110610f6157610f61611977565b602002602001015190508094505050505090565b600080546001600160a01b03163314610fa05760405162461bcd60e51b81526004016104e590611824565b6040516370a0823160e01b815230600482015282906001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110149190611aed565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561105f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110839190611b06565b9150505b919050565b6000546001600160a01b031633146110b65760405162461bcd60e51b81526004016104e590611824565b6001600160a01b03811661110c5760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e00000000000000000060448201526064016104e5565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f906020016105a5565b60135460009060ff161561117a5761117384848461140c565b9050610744565b6111826114c1565b1561118f5761118f611504565b6001600160a01b0384166000908152600a602052604081205483919060ff161580156111d457506001600160a01b0385166000908152600a602052604090205460ff16155b6001600160a01b0387166000908152600b60205260408120549192509060ff168061121757506001600160a01b0386166000908152600b602052604090205460ff165b905081158015611225575080155b15611237576112348786611615565b92505b6001600160a01b0387166000908152600760205260408120805487929061125f90849061185a565b90915550506001600160a01b0386166000908152600760205260408120805485929061128c908490611b23565b90915550506005546001600160a01b0316156113b2576005546001600160a01b031663353575b4886112bc6107a4565b6001600160a01b03808c16600090815260076020526040908190205490516001600160e01b031960e087901b168152939091166004840152106024820152604401600060405180830381600087803b15801561131757600080fd5b505af1925050508015611328575060015b506005546001600160a01b031663353575b4876113436107a4565b6001600160a01b03808b16600090815260076020526040908190205490516001600160e01b031960e087901b16815293909116600484015210156024820152604401600060405180830381600087803b15801561139f57600080fd5b505af19250505080156113b0575060015b505b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113f791815260200190565b60405180910390a35060019695505050505050565b6001600160a01b03831660009081526007602052604081208054839190839061143690849061185a565b90915550506001600160a01b03831660009081526007602052604081208054849290611463908490611b23565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114af91815260200190565b60405180910390a35060019392505050565b336000908152600a602052604081205460ff161580156114e4575060135460ff16155b801561066057505060115430600090815260076020526040902054101590565b6013805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061154657611546611977565b6001600160a01b039283166020918202929092010152600180548351921691839190811061157657611576611977565b6001600160a01b03928316602091820292909201810191909152600f543060009081526007909252604080832054600e54915163791ac94760e01b81529285169463791ac947946115d69492939092889291909116904290600401611b36565b600060405180830381600087803b1580156115f057600080fd5b505af1158015611604573d6000803e3d6000fd5b50506013805460ff19169055505050565b6000806064600c5484611628919061186d565b6116329190611b72565b30600090815260076020526040812080549293508392909190611656908490611b23565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36116a5818461185a565b949350505050565b80356001600160a01b038116811461108757600080fd5b6000602082840312156116d657600080fd5b610744826116ad565b600060208083528351808285015260005b8181101561170c578581018301518582016040015282016116f0565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561174057600080fd5b611749836116ad565b946020939093013593505050565b60008060006060848603121561176c57600080fd5b611775846116ad565b9250611783602085016116ad565b9150604084013590509250925092565b80151581146107a157600080fd5b600080604083850312156117b457600080fd5b6117bd836116ad565b915060208301356117cd81611793565b809150509250929050565b6000602082840312156117ea57600080fd5b5035919050565b6000806040838503121561180457600080fd5b61180d836116ad565b915061181b602084016116ad565b90509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561061757610617611844565b808202811582820484141761061757610617611844565b600181815b808511156118bf5781600019048211156118a5576118a5611844565b808516156118b257918102915b93841c9390800290611889565b509250929050565b6000826118d657506001610617565b816118e357506000610617565b81600181146118f957600281146119035761191f565b6001915050610617565b60ff84111561191457611914611844565b50506001821b610617565b5060208310610133831016604e8410600b8410161715611942575081810a610617565b61194c8383611884565b806000190482111561196057611960611844565b029392505050565b600061074460ff8416836118c7565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016119b5576119b5611844565b5060010190565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501945080840160005b83811015611a0b5781516001600160a01b0316875295820195908201906001016119e6565b509495945050505050565b82815260406020820152600061074160408301846119d2565b60006020808385031215611a4257600080fd5b825167ffffffffffffffff80821115611a5a57600080fd5b818501915085601f830112611a6e57600080fd5b815181811115611a8057611a806119bc565b8060051b604051601f19603f83011681018181108582111715611aa557611aa56119bc565b604052918252848201925083810185019188831115611ac357600080fd5b938501935b82851015611ae157845184529385019392850192611ac8565b98975050505050505050565b600060208284031215611aff57600080fd5b5051919050565b600060208284031215611b1857600080fd5b815161074481611793565b8082018082111561061757610617611844565b85815284602082015260a060408201526000611b5560a08301866119d2565b6001600160a01b0394909416606083015250608001529392505050565b600082611b8f57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220d257bd816e693ddf9e0874d598f326e2c4eb116a08586cd23fed56ae8edbd29164736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c806375aa49721161010f578063b62496f5116100a2578063dd62ed3e11610071578063dd62ed3e14610453578063efdcd9741461048c578063f6f62ad01461049f578063f887ea40146104a857600080fd5b8063b62496f51461040c578063bd853c451461042f578063bf654aac14610437578063ccec37161461044057600080fd5b80639d0014b1116100de5780639d0014b1146103c0578063a8aa1b31146103d3578063a9059cbb146103e6578063ae06c1b7146103f957600080fd5b806375aa497214610369578063893d20e81461037c57806395d89b411461038d5780639a7a23d6146103ad57600080fd5b8063313ce56711610187578063571ac8b011610156578063571ac8b0146102ef578063658d4b7f146103025780636cda40591461031557806370a082311461034057600080fd5b8063313ce567146102ad578063364333f4146102bc5780633f4218e0146102c45780634d4c9c51146102e757600080fd5b8063095ea7b3116101c3578063095ea7b31461024d57806318160ddd1461027057806323b872dd146102785780632f54bf6e1461028b57600080fd5b806302110a69146101ea5780630445b667146101ff57806306fdde031461021b575b600080fd5b6101fd6101f83660046116c4565b6104bb565b005b61020860115481565b6040519081526020015b60405180910390f35b60408051808201909152600d81526c4f47492057617220426f6e647360981b60208201525b60405161021291906116df565b61026061025b36600461172d565b6105b0565b6040519015158152602001610212565b61020861061d565b610260610286366004611757565b610665565b6102606102993660046116c4565b6000546001600160a01b0391821691161490565b60405160128152602001610212565b6101fd61074b565b6102606102d23660046116c4565b600b6020526000908152604090205460ff1681565b6102086107a4565b6102606102fd3660046116c4565b6107c6565b6101fd6103103660046117a1565b6107d4565b6103286103233660046117d8565b6108f7565b6040516001600160a01b039091168152602001610212565b61020861034e3660046116c4565b6001600160a01b031660009081526007602052604090205490565b6101fd6103773660046117d8565b610921565b6000546001600160a01b0316610328565b60408051808201909152600481526327a3a4a160e11b6020820152610240565b6101fd6103bb3660046117a1565b6109fa565b6101fd6103ce3660046117d8565b610c8f565b601054610328906001600160a01b031681565b6102606103f436600461172d565b610d3e565b6101fd6104073660046117d8565b610d4b565b61026061041a3660046116c4565b600a6020526000908152604090205460ff1681565b610208610dfc565b610208600d5481565b61026061044e3660046116c4565b610f75565b6102086104613660046117f1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6101fd61049a3660046116c4565b61108c565b61020860125481565b600f54610328906001600160a01b031681565b6000546001600160a01b031633146104ee5760405162461bcd60e51b81526004016104e590611824565b60405180910390fd5b6005546001600160a01b0380831691160361055b5760405162461bcd60e51b815260206004820152602760248201527f43616e277420736574204f47494320636f6e747261637420746f2073616d65206044820152666164647265737360c81b60648201526084016104e5565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fb21d477470bbdcb2359441aafc29c4addd8badccb60307885b58857045dbd1ab906020015b60405180910390a150565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061060b9086815260200190565b60405180910390a35060015b92915050565b6004546001600160a01b03908116600090815260076020526040808220546003549093168252812054600654919291610656919061185a565b610660919061185a565b905090565b6001600160a01b03831660009081526008602090815260408083203384529091528120548211156106d15760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016104e5565b6001600160a01b038416600090815260086020908152604080832033845290915290205460001914610736576001600160a01b03841660009081526008602090815260408083203384529091528120805484929061073090849061185a565b90915550505b61074184848461115a565b90505b9392505050565b6000546001600160a01b031633146107755760405162461bcd60e51b81526004016104e590611824565b60405133904780156108fc02916000818181858888f193505050501580156107a1573d6000803e3d6000fd5b50565b6000806107af610dfc565b6012549091506107bf828261186d565b9250505090565b6000610617826000196105b0565b6000546001600160a01b031633146107fe5760405162461bcd60e51b81526004016104e590611824565b6001600160a01b0382166000908152600b602052604090205481151560ff9091161515036108945760405162461bcd60e51b815260206004820152603860248201527f466565206578656d7074207374617475732063616e277420626520736574207460448201527f6f2073616d652061732063757272656e7420737461747573000000000000000060648201526084016104e5565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d910160405180910390a15050565b6009818154811061090757600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b0316331461094b5760405162461bcd60e51b81526004016104e590611824565b60018110156109b15760405162461bcd60e51b815260206004820152602c60248201527f5553444320746f204f474942207468726573686f6c642063616e27742062652060448201526b6c657373207468616e20243160a01b60648201526084016104e5565b6109bd6012600a611968565b6109c7908261186d565b6012556040518181527fa890b6f3a2fd28b18f9193738bfa34d7e4b8ca0b1147b9dc7c67ef79b14c92ab906020016105a5565b6000546001600160a01b03163314610a245760405162461bcd60e51b81526004016104e590611824565b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503610a885760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016104e5565b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155610b0557600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b038416179055610c53565b600954600110610b495760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b60448201526064016104e5565b60005b600954811015610c5157826001600160a01b031660098281548110610b7357610b73611977565b6000918252602090912001546001600160a01b031603610c3f5760098054610b9d9060019061185a565b81548110610bad57610bad611977565b600091825260209091200154600980546001600160a01b039092169183908110610bd957610bd9611977565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506009805480610c1857610c1861198d565b600082815260209020810160001990810180546001600160a01b0319169055019055610c51565b80610c49816119a3565b915050610b4c565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000546001600160a01b03163314610cb95760405162461bcd60e51b81526004016104e590611824565b60008111610d095760405162461bcd60e51b815260206004820152601d60248201527f43616e2774207365742073776170207468726573686f6c6420746f203000000060448201526064016104e5565b60118190556040518181527ffff9ce956ade7b416c31b994ca5dd0839b425a9a12b73f69fbd0e34634456cfe906020016105a5565b600061074433848461115a565b6000546001600160a01b03163314610d755760405162461bcd60e51b81526004016104e590611824565b600d54811115610dc75760405162461bcd60e51b815260206004820152601e60248201527f427579206665652063616e6e6f74206265206d6f7265207468616e203525000060448201526064016104e5565b600c8190556040518181527fcc8e0d099b6b6a1a4ae089dec1b2c29e7df166eb8f103f55064427f6e4596b09906020016105a5565b600080610e0b6012600a611968565b610e1690600161186d565b604080516003808252608082019092529192506000919060208201606080368337505060025482519293506001600160a01b031691839150600090610e5d57610e5d611977565b6001600160a01b0392831660209182029290920101526001805483519216918391908110610e8d57610e8d611977565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600281518110610ec157610ec1611977565b6001600160a01b039283166020918202929092010152600f5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f059086908690600401611a16565b600060405180830381865afa158015610f22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f4a9190810190611a2f565b9050600081600281518110610f6157610f61611977565b602002602001015190508094505050505090565b600080546001600160a01b03163314610fa05760405162461bcd60e51b81526004016104e590611824565b6040516370a0823160e01b815230600482015282906001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110149190611aed565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561105f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110839190611b06565b9150505b919050565b6000546001600160a01b031633146110b65760405162461bcd60e51b81526004016104e590611824565b6001600160a01b03811661110c5760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e00000000000000000060448201526064016104e5565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f906020016105a5565b60135460009060ff161561117a5761117384848461140c565b9050610744565b6111826114c1565b1561118f5761118f611504565b6001600160a01b0384166000908152600a602052604081205483919060ff161580156111d457506001600160a01b0385166000908152600a602052604090205460ff16155b6001600160a01b0387166000908152600b60205260408120549192509060ff168061121757506001600160a01b0386166000908152600b602052604090205460ff165b905081158015611225575080155b15611237576112348786611615565b92505b6001600160a01b0387166000908152600760205260408120805487929061125f90849061185a565b90915550506001600160a01b0386166000908152600760205260408120805485929061128c908490611b23565b90915550506005546001600160a01b0316156113b2576005546001600160a01b031663353575b4886112bc6107a4565b6001600160a01b03808c16600090815260076020526040908190205490516001600160e01b031960e087901b168152939091166004840152106024820152604401600060405180830381600087803b15801561131757600080fd5b505af1925050508015611328575060015b506005546001600160a01b031663353575b4876113436107a4565b6001600160a01b03808b16600090815260076020526040908190205490516001600160e01b031960e087901b16815293909116600484015210156024820152604401600060405180830381600087803b15801561139f57600080fd5b505af19250505080156113b0575060015b505b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113f791815260200190565b60405180910390a35060019695505050505050565b6001600160a01b03831660009081526007602052604081208054839190839061143690849061185a565b90915550506001600160a01b03831660009081526007602052604081208054849290611463908490611b23565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114af91815260200190565b60405180910390a35060019392505050565b336000908152600a602052604081205460ff161580156114e4575060135460ff16155b801561066057505060115430600090815260076020526040902054101590565b6013805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061154657611546611977565b6001600160a01b039283166020918202929092010152600180548351921691839190811061157657611576611977565b6001600160a01b03928316602091820292909201810191909152600f543060009081526007909252604080832054600e54915163791ac94760e01b81529285169463791ac947946115d69492939092889291909116904290600401611b36565b600060405180830381600087803b1580156115f057600080fd5b505af1158015611604573d6000803e3d6000fd5b50506013805460ff19169055505050565b6000806064600c5484611628919061186d565b6116329190611b72565b30600090815260076020526040812080549293508392909190611656908490611b23565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36116a5818461185a565b949350505050565b80356001600160a01b038116811461108757600080fd5b6000602082840312156116d657600080fd5b610744826116ad565b600060208083528351808285015260005b8181101561170c578581018301518582016040015282016116f0565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561174057600080fd5b611749836116ad565b946020939093013593505050565b60008060006060848603121561176c57600080fd5b611775846116ad565b9250611783602085016116ad565b9150604084013590509250925092565b80151581146107a157600080fd5b600080604083850312156117b457600080fd5b6117bd836116ad565b915060208301356117cd81611793565b809150509250929050565b6000602082840312156117ea57600080fd5b5035919050565b6000806040838503121561180457600080fd5b61180d836116ad565b915061181b602084016116ad565b90509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561061757610617611844565b808202811582820484141761061757610617611844565b600181815b808511156118bf5781600019048211156118a5576118a5611844565b808516156118b257918102915b93841c9390800290611889565b509250929050565b6000826118d657506001610617565b816118e357506000610617565b81600181146118f957600281146119035761191f565b6001915050610617565b60ff84111561191457611914611844565b50506001821b610617565b5060208310610133831016604e8410600b8410161715611942575081810a610617565b61194c8383611884565b806000190482111561196057611960611844565b029392505050565b600061074460ff8416836118c7565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016119b5576119b5611844565b5060010190565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501945080840160005b83811015611a0b5781516001600160a01b0316875295820195908201906001016119e6565b509495945050505050565b82815260406020820152600061074160408301846119d2565b60006020808385031215611a4257600080fd5b825167ffffffffffffffff80821115611a5a57600080fd5b818501915085601f830112611a6e57600080fd5b815181811115611a8057611a806119bc565b8060051b604051601f19603f83011681018181108582111715611aa557611aa56119bc565b604052918252848201925083810185019188831115611ac357600080fd5b938501935b82851015611ae157845184529385019392850192611ac8565b98975050505050505050565b600060208284031215611aff57600080fd5b5051919050565b600060208284031215611b1857600080fd5b815161074481611793565b8082018082111561061757610617611844565b85815284602082015260a060408201526000611b5560a08301866119d2565b6001600160a01b0394909416606083015250608001529392505050565b600082611b8f57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220d257bd816e693ddf9e0874d598f326e2c4eb116a08586cd23fed56ae8edbd29164736f6c63430008120033

Deployed ByteCode Sourcemap

6926:9712:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14873:306;;;;;;:::i;:::-;;:::i;:::-;;8398:54;;;;;;;;;529:25:1;;;517:2;502:18;8398:54:0;;;;;;;;9589:80;9661:5;;;;;;;;;;;;-1:-1:-1;;;9661:5:0;;;;9589:80;;;;;;;:::i;10011:216::-;;;;;;:::i;:::-;;:::i;:::-;;;1542:14:1;;1535:22;1517:41;;1505:2;1490:18;10011:216:0;1377:187:1;9283:124:0;;;:::i;10539:414::-;;;;;;:::i;:::-;;:::i;6816:103::-;;;;;;:::i;:::-;6871:4;6906:5;-1:-1:-1;;;;;6895:16:0;;;6906:5;;6895:16;;6816:103;9413:80;;;7794:2;2044:36:1;;2032:2;2017:18;9413:80:0;1902:184:1;13436:118:0;;;:::i;8106:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16425:210;;;:::i;10235:122::-;;;;;;:::i;:::-;;:::i;13562:284::-;;;;;;:::i;:::-;;:::i;8004:28::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2883:32:1;;;2865:51;;2853:2;2838:18;8004:28:0;2719:203:1;9759:105:0;;;;;;:::i;:::-;-1:-1:-1;;;;;9843:18:0;9825:7;9843:18;;;:9;:18;;;;;;;9759:105;14598:267;;;;;;:::i;:::-;;:::i;9675:78::-;9727:7;9745:5;-1:-1:-1;;;;;9745:5:0;9675:78;;9499:84;9573:7;;;;;;;;;;;;-1:-1:-1;;;9573:7:0;;;;9499:84;;15187:729;;;;;;:::i;:::-;;:::i;14360:230::-;;;;;;:::i;:::-;;:::i;8370:19::-;;;;;-1:-1:-1;;;;;8370:19:0;;;10365:166;;;;;;:::i;:::-;;:::i;13854:258::-;;;;;;:::i;:::-;;:::i;8039:58::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15924:493;;;:::i;8199:35::-;;;;;;13188:240;;;;;;:::i;:::-;;:::i;9870:133::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9972:19:0;;;9954:7;9972:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9870:133;14120:232;;;;;;:::i;:::-;;:::i;8459:51::-;;;;;;8334:29;;;;;-1:-1:-1;;;;;8334:29:0;;;14873:306;6871:4;6906:5;-1:-1:-1;;;;;6906:5:0;6775:10;6895:16;6759:38;;;;-1:-1:-1;;;6759:38:0;;;;;;;:::i;:::-;;;;;;;;;14978:13:::1;::::0;-1:-1:-1;;;;;14970:40:0;;::::1;14978:13:::0;::::1;14970:40:::0;14961:93:::1;;;::::0;-1:-1:-1;;;14961:93:0;;3959:2:1;14961:93:0::1;::::0;::::1;3941:21:1::0;3998:2;3978:18;;;3971:30;4037:34;4017:18;;;4010:62;-1:-1:-1;;;4088:18:1;;;4081:37;4135:19;;14961:93:0::1;3757:403:1::0;14961:93:0::1;15067:13;:46:::0;;-1:-1:-1;;;;;;15067:46:0::1;-1:-1:-1::0;;;;;15067:46:0;::::1;::::0;;::::1;::::0;;;15131:40:::1;::::0;2865:51:1;;;15131:40:0::1;::::0;2853:2:1;2838:18;15131:40:0::1;;;;;;;;14873:306:::0;:::o;10011:216::-;10115:10;10086:4;10103:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10103:32:0;;;;;;;;;;:41;;;10160:37;10086:4;;10103:32;;10160:37;;;;10138:6;529:25:1;;517:2;502:18;;383:177;10160:37:0;;;;;;;;-1:-1:-1;10215:4:0;10011:216;;;;;:::o;9283:124::-;9399:4;;-1:-1:-1;;;;;9399:4:0;;;9338:7;9389:15;;;:9;:15;;;;;;;9381:4;;;;;9371:15;;;;;9356:12;;9338:7;;9389:15;9356:30;;9371:15;9356:30;:::i;:::-;:48;;;;:::i;:::-;9349:55;;9283:124;:::o;10539:414::-;-1:-1:-1;;;;;10673:20:0;;10648:4;10673:20;;;:11;:20;;;;;;;;10694:10;10673:32;;;;;;;;:43;-1:-1:-1;10673:43:0;10665:78;;;;-1:-1:-1;;;10665:78:0;;4632:2:1;10665:78:0;;;4614:21:1;4671:2;4651:18;;;4644:30;-1:-1:-1;;;4690:18:1;;;4683:52;4752:18;;10665:78:0;4430:346:1;10665:78:0;-1:-1:-1;;;;;10759:20:0;;;;;;:11;:20;;;;;;;;10780:10;10759:32;;;;;;;;-1:-1:-1;;10759:53:0;10756:127;;-1:-1:-1;;;;;10828:20:0;;;;;;:11;:20;;;;;;;;10849:10;10828:32;;;;;;;:43;;10864:7;;10828:20;:43;;10864:7;;10828:43;:::i;:::-;;;;-1:-1:-1;;10756:127:0;10902:43;10916:7;10925:10;10937:7;10902:13;:43::i;:::-;10895:50;;10539:414;;;;;;:::o;13436:118::-;6871:4;6906:5;-1:-1:-1;;;;;6906:5:0;6775:10;6895:16;6759:38;;;;-1:-1:-1;;;6759:38:0;;;;;;;:::i;:::-;13495:51:::1;::::0;13503:10:::1;::::0;13524:21:::1;13495:51:::0;::::1;;;::::0;::::1;::::0;;;13524:21;13503:10;13495:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13436:118::o:0;16425:210::-;16474:7;16494:21;16518:20;:18;:20::i;:::-;16570:13;;16494:44;;-1:-1:-1;16601:26:0;16494:44;16570:13;16601:26;:::i;:::-;16594:33;;;;16425:210;:::o;10235:122::-;10290:4;10314:35;10322:7;-1:-1:-1;;10314:7:0;:35::i;13562:284::-;6871:4;6906:5;-1:-1:-1;;;;;6906:5:0;6775:10;6895:16;6759:38;;;;-1:-1:-1;;;6759:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13655:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;:31;::::1;;:20;::::0;;::::1;:31;;::::0;13647:100:::1;;;::::0;-1:-1:-1;;;13647:100:0;;5156:2:1;13647:100:0::1;::::0;::::1;5138:21:1::0;5195:2;5175:18;;;5168:30;5234:34;5214:18;;;5207:62;5305:26;5285:18;;;5278:54;5349:19;;13647:100:0::1;4954:420:1::0;13647:100:0::1;-1:-1:-1::0;;;;;13760:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;;;;:30;;-1:-1:-1;;13760:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13808;;5547:51:1;;;5614:18;;;5607:50;13808:30:0::1;::::0;5520:18:1;13808:30:0::1;;;;;;;13562:284:::0;;:::o;8004:28::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8004:28:0;;-1:-1:-1;8004:28:0;:::o;14598:267::-;6871:4;6906:5;-1:-1:-1;;;;;6906:5:0;6775:10;6895:16;6759:38;;;;-1:-1:-1;;;6759:38:0;;;;;;;:::i;:::-;14700:1:::1;14686:10;:15;;14678:72;;;::::0;-1:-1:-1;;;14678:72:0;;5870:2:1;14678:72:0::1;::::0;::::1;5852:21:1::0;5909:2;5889:18;;;5882:30;5948:34;5928:18;;;5921:62;-1:-1:-1;;;5999:18:1;;;5992:42;6051:19;;14678:72:0::1;5668:408:1::0;14678:72:0::1;14792:15;7794:2;14792;:15;:::i;:::-;14779:28;::::0;:10;:28:::1;:::i;:::-;14763:13;:44:::0;14825:32:::1;::::0;529:25:1;;;14825:32:0::1;::::0;517:2:1;502:18;14825:32:0::1;383:177:1::0;15187:729:0;6871:4;6906:5;-1:-1:-1;;;;;6906:5:0;6775:10;6895:16;6759:38;;;;-1:-1:-1;;;6759:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15288:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;;:42;::::1;;:32;::::0;;::::1;:42;;::::0;15280:72:::1;;;::::0;-1:-1:-1;;;15280:72:0;;7666:2:1;15280:72:0::1;::::0;::::1;7648:21:1::0;7705:2;7685:18;;;7678:30;-1:-1:-1;;;7724:18:1;;;7717:47;7781:18;;15280:72:0::1;7464:341:1::0;15280:72:0::1;-1:-1:-1::0;;;;;15365:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;:41;;-1:-1:-1;;15365:41:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;15419:430:::1;;15444:11;:23:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;15444:23:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;15444:23:0::1;-1:-1:-1::0;;;;;15444:23:0;::::1;;::::0;;15419:430:::1;;;15506:11;:18:::0;15527:1:::1;-1:-1:-1::0;15498:50:0::1;;;::::0;-1:-1:-1;;;15498:50:0;;8012:2:1;15498:50:0::1;::::0;::::1;7994:21:1::0;8051:2;8031:18;;;8024:30;-1:-1:-1;;;8070:18:1;;;8063:45;8125:18;;15498:50:0::1;7810:339:1::0;15498:50:0::1;15568:9;15563:275;15587:11;:18:::0;15583:22;::::1;15563:275;;;15653:5;-1:-1:-1::0;;;;;15635:23:0::1;:11;15647:1;15635:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;15635:14:0::1;:23:::0;15631:192:::1;;15700:11;15712:18:::0;;:22:::1;::::0;15733:1:::1;::::0;15712:22:::1;:::i;:::-;15700:35;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;15683:11:::1;:14:::0;;-1:-1:-1;;;;;15700:35:0;;::::1;::::0;15695:1;;15683:14;::::1;;;;;:::i;:::-;;;;;;;;;:52;;;;;-1:-1:-1::0;;;;;15683:52:0::1;;;;;-1:-1:-1::0;;;;;15683:52:0::1;;;;;;15758:11;:17;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15758:17:0;;;;;-1:-1:-1;;;;;;15758:17:0::1;::::0;;;;;15798:5:::1;;15631:192;15607:3:::0;::::1;::::0;::::1;:::i;:::-;;;;15563:275;;;;15419:430;15866:42;::::0;;::::1;;::::0;-1:-1:-1;;;;;15866:42:0;::::1;::::0;::::1;::::0;;;::::1;15187:729:::0;;:::o;14360:230::-;6871:4;6906:5;-1:-1:-1;;;;;6906:5:0;6775:10;6895:16;6759:38;;;;-1:-1:-1;;;6759:38:0;;;;;;;:::i;:::-;14458:1:::1;14445:10;:14;14436:57;;;::::0;-1:-1:-1;;;14436:57:0;;8760:2:1;14436:57:0::1;::::0;::::1;8742:21:1::0;8799:2;8779:18;;;8772:30;8838:31;8818:18;;;8811:59;8887:18;;14436:57:0::1;8558:353:1::0;14436:57:0::1;14506:13;:26:::0;;;14550:32:::1;::::0;529:25:1;;;14550:32:0::1;::::0;517:2:1;502:18;14550:32:0::1;383:177:1::0;10365:166:0;10453:4;10477:46;10491:10;10503;10515:7;10477:13;:46::i;13854:258::-;6871:4;6906:5;-1:-1:-1;;;;;6906:5:0;6775:10;6895:16;6759:38;;;;-1:-1:-1;;;6759:38:0;;;;;;;:::i;:::-;13960:16:::1;;13942:14;:34;;13934:77;;;::::0;-1:-1:-1;;;13934:77:0;;9118:2:1;13934:77:0::1;::::0;::::1;9100:21:1::0;9157:2;9137:18;;;9130:30;9196:32;9176:18;;;9169:60;9246:18;;13934:77:0::1;8916:354:1::0;13934:77:0::1;14024:13;:30:::0;;;14072:32:::1;::::0;529:25:1;;;14072:32:0::1;::::0;517:2:1;502:18;14072:32:0::1;383:177:1::0;15924:493:0;15975:7;;16020:15;7794:2;16020;:15;:::i;:::-;16016:19;;:1;:19;:::i;:::-;16113:16;;;16127:1;16113:16;;;;;;;;;15995:40;;-1:-1:-1;16089:21:0;;16113:16;;;;;;;;;-1:-1:-1;;16150:4:0;;16140:7;;;;-1:-1:-1;;;;;;16150:4:0;;16140:7;;-1:-1:-1;16150:4:0;;16140:7;;;;:::i;:::-;-1:-1:-1;;;;;16140:14:0;;;:7;;;;;;;;;:14;16175:4;;;16165:7;;16175:4;;;16165;;16175;16165:7;;;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;16165:14:0;;;-1:-1:-1;;;;;16165:14:0;;;;;16208:4;16190;16195:1;16190:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16190:23:0;;;:7;;;;;;;;;:23;16251:6;;:38;;-1:-1:-1;;;16251:38:0;;16224:24;;16251:6;;;;;:20;;:38;;16272:10;;16284:4;;16251:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16251:38:0;;;;;;;;;;;;:::i;:::-;16224:65;;16300:22;16325:7;16333:1;16325:10;;;;;;;;:::i;:::-;;;;;;;16300:35;;16395:14;16388:21;;;;;;15924:493;:::o;13188:240::-;13260:4;6906:5;;-1:-1:-1;;;;;6906:5:0;6775:10;6895:16;6759:38;;;;-1:-1:-1;;;6759:38:0;;;;;;;:::i;:::-;13378:41:::1;::::0;-1:-1:-1;;;13378:41:0;;13413:4:::1;13378:41;::::0;::::1;2865:51:1::0;13308:13:0;;-1:-1:-1;;;;;13340:25:0;::::1;::::0;::::1;::::0;13366:10:::1;::::0;13340:25;;13378:26:::1;::::0;2838:18:1;;13378:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13340:80;::::0;-1:-1:-1;;;;;;13340:80:0::1;::::0;;;;;;-1:-1:-1;;;;;11701:32:1;;;13340:80:0::1;::::0;::::1;11683:51:1::0;11750:18;;;11743:34;11656:18;;13340:80:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13333:87;;;6799:1;13188:240:::0;;;:::o;14120:232::-;6871:4;6906:5;-1:-1:-1;;;;;6906:5:0;6775:10;6895:16;6759:38;;;;-1:-1:-1;;;6759:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14204:26:0;::::1;14196:63;;;::::0;-1:-1:-1;;;14196:63:0;;12240:2:1;14196:63:0::1;::::0;::::1;12222:21:1::0;12279:2;12259:18;;;12252:30;12318:25;12298:18;;;12291:53;12361:18;;14196:63:0::1;12038:347:1::0;14196:63:0::1;14272:11;:26:::0;;-1:-1:-1;;;;;;14272:26:0::1;-1:-1:-1::0;;;;;14272:26:0;::::1;::::0;;::::1;::::0;;;14316:28:::1;::::0;2865:51:1;;;14316:28:0::1;::::0;2853:2:1;2838:18;14316:28:0::1;2719:203:1::0;10961:1045:0;11076:6;;11056:4;;11076:6;;11073:66;;;11092:44;11107:7;11116:10;11128:7;11092:14;:44::i;:::-;11085:51;;;;11073:66;11154:16;:14;:16::i;:::-;11151:36;;;11174:10;:8;:10::i;:::-;-1:-1:-1;;;;;11263:34:0;;11199:22;11263:34;;;:25;:34;;;;;;11224:7;;11199:22;11263:34;;11262:35;:77;;;;-1:-1:-1;;;;;;11302:37:0;;;;;;:25;:37;;;;;;;;11301:38;11262:77;-1:-1:-1;;;;;11367:20:0;;11350:14;11367:20;;;:11;:20;;;;;;11244:95;;-1:-1:-1;11350:14:0;11367:20;;;:47;;-1:-1:-1;;;;;;11391:23:0;;;;;;:11;:23;;;;;;;;11367:47;11350:64;;11431:10;11430:11;:25;;;;;11446:9;11445:10;11430:25;11427:99;;;11489:25;11497:7;11506;11489;:25::i;:::-;11472:42;;11427:99;-1:-1:-1;;;;;11538:18:0;;;;;;:9;:18;;;;;:29;;11560:7;;11538:18;:29;;11560:7;;11538:29;:::i;:::-;;;;-1:-1:-1;;;;;;;11578:21:0;;;;;;:9;:21;;;;;:39;;11603:14;;11578:21;:39;;11603:14;;11578:39;:::i;:::-;;;;-1:-1:-1;;11641:13:0;;-1:-1:-1;;;;;11641:13:0;11633:36;11630:284;;11690:13;;-1:-1:-1;;;;;11690:13:0;:32;11723:7;11753:18;:16;:18::i;:::-;-1:-1:-1;;;;;11732:18:0;;;;;;;:9;:18;;;;;;;;11690:82;;-1:-1:-1;;;;;;11690:82:0;;;;;;;5565:32:1;;;;11690:82:0;;;5547:51:1;11732:39:0;5614:18:1;;;5607:50;5520:18;;11690:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11686:98;11802:13;;-1:-1:-1;;;;;11802:13:0;:32;11835:10;11872:18;:16;:18::i;:::-;-1:-1:-1;;;;;11847:21:0;;;;;;;:9;:21;;;;;;;;11802:89;;-1:-1:-1;;;;;;11802:89:0;;;;;;;5565:32:1;;;;11802:89:0;;;5547:51:1;11847:43:0;;5614:18:1;;;5607:50;5520:18;;11802:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11798:105;;11949:10;-1:-1:-1;;;;;11931:45:0;11940:7;-1:-1:-1;;;;;11931:45:0;;11961:14;11931:45;;;;529:25:1;;517:2;502:18;;383:177;11931:45:0;;;;;;;;-1:-1:-1;11994:4:0;;10961:1045;-1:-1:-1;;;;;;10961:1045:0:o;12014:269::-;-1:-1:-1;;;;;12127:18:0;;12110:4;12127:18;;;:9;:18;;;;;:29;;12149:7;;12127:18;12110:4;;12127:29;;12149:7;;12127:29;:::i;:::-;;;;-1:-1:-1;;;;;;;12167:21:0;;;;;;:9;:21;;;;;:32;;12192:7;;12167:21;:32;;12192:7;;12167:32;:::i;:::-;;;;;;;;12233:10;-1:-1:-1;;;;;12215:38:0;12224:7;-1:-1:-1;;;;;12215:38:0;;12245:7;12215:38;;;;529:25:1;;517:2;502:18;;383:177;12215:38:0;;;;;;;;-1:-1:-1;12271:4:0;12014:269;;;;;:::o;12603:202::-;12712:10;12652:4;12686:37;;;:25;:37;;;;;;;;12685:38;:58;;;;-1:-1:-1;12737:6:0;;;;12736:7;12685:58;:112;;;;-1:-1:-1;;12784:13:0;;12774:4;12756:24;;;;:9;:24;;;;;;:41;;;12603:202::o;12813:367::-;8567:6;:13;;-1:-1:-1;;8567:13:0;8576:4;8567:13;;;12886:16:::1;::::0;;12900:1:::1;12886:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12886:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12886:16:0::1;12862:40;;12931:4;12913;12918:1;12913:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12913:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12957:4:::1;::::0;;12947:7;;12957:4;::::1;::::0;12947;;12957;12947:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;12947:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;12974:6:::1;::::0;13064:4:::1;12974:6;13046:24:::0;;;:9:::1;:24:::0;;;;;;;;13120:11:::1;::::0;12974:198;;-1:-1:-1;;;12974:198:0;;:6;;::::1;::::0;:57:::1;::::0;:198:::1;::::0;13046:24;;12974:6;;13101:4;;13120:11;;;::::1;::::0;13146:15:::1;::::0;12974:198:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8585:6:0;:14;;-1:-1:-1;;8585:14:0;;;-1:-1:-1;;;12813:367:0:o;12291:304::-;12359:7;12378:17;8286:3;12409:13;;12399:7;:23;;;;:::i;:::-;12398:42;;;;:::i;:::-;12471:4;12453:24;;;;:9;:24;;;;;:37;;12378:62;;-1:-1:-1;12378:62:0;;12453:24;;;:37;;12378:62;;12453:37;:::i;:::-;;;;-1:-1:-1;;12506:42:0;;529:25:1;;;12531:4:0;;-1:-1:-1;;;;;12506:42:0;;;;;517:2:1;502:18;12506:42:0;;;;;;;12568:19;12578:9;12568:7;:19;:::i;:::-;12561:26;12291:304;-1:-1:-1;;;;12291:304:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;192:186;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;565:548::-;677:4;706:2;735;724:9;717:21;767:6;761:13;810:6;805:2;794:9;790:18;783:34;835:1;845:140;859:6;856:1;853:13;845:140;;;954:14;;;950:23;;944:30;920:17;;;939:2;916:26;909:66;874:10;;845:140;;;849:3;1034:1;1029:2;1020:6;1009:9;1005:22;1001:31;994:42;1104:2;1097;1093:7;1088:2;1080:6;1076:15;1072:29;1061:9;1057:45;1053:54;1045:62;;;;565:548;;;;:::o;1118:254::-;1186:6;1194;1247:2;1235:9;1226:7;1222:23;1218:32;1215:52;;;1263:1;1260;1253:12;1215:52;1286:29;1305:9;1286:29;:::i;:::-;1276:39;1362:2;1347:18;;;;1334:32;;-1:-1:-1;;;1118:254:1:o;1569:328::-;1646:6;1654;1662;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:29;1773:9;1754:29;:::i;:::-;1744:39;;1802:38;1836:2;1825:9;1821:18;1802:38;:::i;:::-;1792:48;;1887:2;1876:9;1872:18;1859:32;1849:42;;1569:328;;;;;:::o;2091:118::-;2177:5;2170:13;2163:21;2156:5;2153:32;2143:60;;2199:1;2196;2189:12;2214:315;2279:6;2287;2340:2;2328:9;2319:7;2315:23;2311:32;2308:52;;;2356:1;2353;2346:12;2308:52;2379:29;2398:9;2379:29;:::i;:::-;2369:39;;2458:2;2447:9;2443:18;2430:32;2471:28;2493:5;2471:28;:::i;:::-;2518:5;2508:15;;;2214:315;;;;;:::o;2534:180::-;2593:6;2646:2;2634:9;2625:7;2621:23;2617:32;2614:52;;;2662:1;2659;2652:12;2614:52;-1:-1:-1;2685:23:1;;2534:180;-1:-1:-1;2534:180:1:o;2927:260::-;2995:6;3003;3056:2;3044:9;3035:7;3031:23;3027:32;3024:52;;;3072:1;3069;3062:12;3024:52;3095:29;3114:9;3095:29;:::i;:::-;3085:39;;3143:38;3177:2;3166:9;3162:18;3143:38;:::i;:::-;3133:48;;2927:260;;;;;:::o;3423:329::-;3625:2;3607:21;;;3664:1;3644:18;;;3637:29;-1:-1:-1;;;3697:2:1;3682:18;;3675:36;3743:2;3728:18;;3423:329::o;4165:127::-;4226:10;4221:3;4217:20;4214:1;4207:31;4257:4;4254:1;4247:15;4281:4;4278:1;4271:15;4297:128;4364:9;;;4385:11;;;4382:37;;;4399:18;;:::i;4781:168::-;4854:9;;;4885;;4902:15;;;4896:22;;4882:37;4872:71;;4923:18;;:::i;6081:422::-;6170:1;6213:5;6170:1;6227:270;6248:7;6238:8;6235:21;6227:270;;;6307:4;6303:1;6299:6;6295:17;6289:4;6286:27;6283:53;;;6316:18;;:::i;:::-;6366:7;6356:8;6352:22;6349:55;;;6386:16;;;;6349:55;6465:22;;;;6425:15;;;;6227:270;;;6231:3;6081:422;;;;;:::o;6508:806::-;6557:5;6587:8;6577:80;;-1:-1:-1;6628:1:1;6642:5;;6577:80;6676:4;6666:76;;-1:-1:-1;6713:1:1;6727:5;;6666:76;6758:4;6776:1;6771:59;;;;6844:1;6839:130;;;;6751:218;;6771:59;6801:1;6792:10;;6815:5;;;6839:130;6876:3;6866:8;6863:17;6860:43;;;6883:18;;:::i;:::-;-1:-1:-1;;6939:1:1;6925:16;;6954:5;;6751:218;;7053:2;7043:8;7040:16;7034:3;7028:4;7025:13;7021:36;7015:2;7005:8;7002:16;6997:2;6991:4;6988:12;6984:35;6981:77;6978:159;;;-1:-1:-1;7090:19:1;;;7122:5;;6978:159;7169:34;7194:8;7188:4;7169:34;:::i;:::-;7239:6;7235:1;7231:6;7227:19;7218:7;7215:32;7212:58;;;7250:18;;:::i;:::-;7288:20;;6508:806;-1:-1:-1;;;6508:806:1:o;7319:140::-;7377:5;7406:47;7447:4;7437:8;7433:19;7427:4;7406:47;:::i;8154:127::-;8215:10;8210:3;8206:20;8203:1;8196:31;8246:4;8243:1;8236:15;8270:4;8267:1;8260:15;8286:127;8347:10;8342:3;8338:20;8335:1;8328:31;8378:4;8375:1;8368:15;8402:4;8399:1;8392:15;8418:135;8457:3;8478:17;;;8475:43;;8498:18;;:::i;:::-;-1:-1:-1;8545:1:1;8534:13;;8418:135::o;9275:127::-;9336:10;9331:3;9327:20;9324:1;9317:31;9367:4;9364:1;9357:15;9391:4;9388:1;9381:15;9407:461;9460:3;9498:5;9492:12;9525:6;9520:3;9513:19;9551:4;9580:2;9575:3;9571:12;9564:19;;9617:2;9610:5;9606:14;9638:1;9648:195;9662:6;9659:1;9656:13;9648:195;;;9727:13;;-1:-1:-1;;;;;9723:39:1;9711:52;;9783:12;;;;9818:15;;;;9759:1;9677:9;9648:195;;;-1:-1:-1;9859:3:1;;9407:461;-1:-1:-1;;;;;9407:461:1:o;9873:332::-;10080:6;10069:9;10062:25;10123:2;10118;10107:9;10103:18;10096:30;10043:4;10143:56;10195:2;10184:9;10180:18;10172:6;10143:56;:::i;10210:1105::-;10305:6;10336:2;10379;10367:9;10358:7;10354:23;10350:32;10347:52;;;10395:1;10392;10385:12;10347:52;10428:9;10422:16;10457:18;10498:2;10490:6;10487:14;10484:34;;;10514:1;10511;10504:12;10484:34;10552:6;10541:9;10537:22;10527:32;;10597:7;10590:4;10586:2;10582:13;10578:27;10568:55;;10619:1;10616;10609:12;10568:55;10648:2;10642:9;10670:2;10666;10663:10;10660:36;;;10676:18;;:::i;:::-;10722:2;10719:1;10715:10;10754:2;10748:9;10817:2;10813:7;10808:2;10804;10800:11;10796:25;10788:6;10784:38;10872:6;10860:10;10857:22;10852:2;10840:10;10837:18;10834:46;10831:72;;;10883:18;;:::i;:::-;10919:2;10912:22;10969:18;;;11003:15;;;;-1:-1:-1;11045:11:1;;;11041:20;;;11073:19;;;11070:39;;;11105:1;11102;11095:12;11070:39;11129:11;;;;11149:135;11165:6;11160:3;11157:15;11149:135;;;11231:10;;11219:23;;11182:12;;;;11262;;;;11149:135;;;11303:6;10210:1105;-1:-1:-1;;;;;;;;10210:1105:1:o;11320:184::-;11390:6;11443:2;11431:9;11422:7;11418:23;11414:32;11411:52;;;11459:1;11456;11449:12;11411:52;-1:-1:-1;11482:16:1;;11320:184;-1:-1:-1;11320:184:1:o;11788:245::-;11855:6;11908:2;11896:9;11887:7;11883:23;11879:32;11876:52;;;11924:1;11921;11914:12;11876:52;11956:9;11950:16;11975:28;11997:5;11975:28;:::i;12390:125::-;12455:9;;;12476:10;;;12473:36;;;12489:18;;:::i;12520:582::-;12819:6;12808:9;12801:25;12862:6;12857:2;12846:9;12842:18;12835:34;12905:3;12900:2;12889:9;12885:18;12878:31;12782:4;12926:57;12978:3;12967:9;12963:19;12955:6;12926:57;:::i;:::-;-1:-1:-1;;;;;13019:32:1;;;;13014:2;12999:18;;12992:60;-1:-1:-1;13083:3:1;13068:19;13061:35;12918:65;12520:582;-1:-1:-1;;;12520:582:1:o;13107:217::-;13147:1;13173;13163:132;;13217:10;13212:3;13208:20;13205:1;13198:31;13252:4;13249:1;13242:15;13280:4;13277:1;13270:15;13163:132;-1:-1:-1;13309:9:1;;13107:217::o

Metadata Hash

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