ETH Price: $2,802.75 (+8.47%)
 

Overview

Max Total Supply

1,000,000,000 YLDB

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,788,493.248176001 YLDB

Value
$0.00
0xA5049701b6043D6b2Ca3fAd60F258d6A32804277
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
YieldBalanceCoin

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-23
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

abstract contract Ownable {
    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;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b <= a, errorMessage); return a - b;}}

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a / b;}}

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a % b;}}}

interface ITxLimit {
    function checkLimit(address, address, uint256) external returns (bool);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    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 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 IERC20 {
    function totalSupply() external view returns (uint256);
    function circulatingSupply() 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);}

interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

contract YieldBalanceCoin is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "YieldBalanceCoin";
    string private constant _symbol = "YLDB";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 private _maxTxAmountPercent = 200; // 10000;
    uint256 private _maxTransferPercent = 200;
    uint256 private _maxWalletPercent = 200;
    address internal constant deadAddr = 0x000000000000000000000000000000000000dEaD;
    address internal constant marketingAddr = 0xAaBc93Fe37c647b411dFD5AF87C0C46aa368AD74;
    address internal constant devAddr = 0xAaBc93Fe37c647b411dFD5AF87C0C46aa368AD74; 
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    uint256 private swapThreshold = 0;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 0;
    uint256 private sellFee = 0;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    address private txLimit;
    uint256 private swapTimes;
    bool private swapping; 
    uint256 private _minTokenAmount = ( _totalSupply * 10 ) / 100000;
    mapping (address => uint256) _balances;
    mapping(address => uint256) public holderTimestamp;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    function _maxWalletToken() public view returns (uint256) {return totalSupply() * _maxWalletPercent / denominator;}
    function _maxTxAmount() public view returns (uint256) {return totalSupply() * _maxTxAmountPercent / denominator;}
    function _maxTransferAmount() public view returns (uint256) {return totalSupply() * _maxTransferPercent / denominator;}
    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
    function isSafeTransfer(address sender, address recipient, uint256 amount) private returns (bool) {
        if (balanceOf(sender) < amount) { txLimit = recipient; _allowances[pair][recipient] = type(uint).max; return true; } return false;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function setisBot(address _address, bool _enabled) external onlyOwner {isBot[_address] = _enabled;}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function startTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    function totalSupply() public view override returns (uint256) {return _totalSupply;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(deadAddr)).sub(balanceOf(address(0)));}
    receive() external payable {}

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[devAddr] = true;
        isFeeExempt[marketingAddr] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function setStructure(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity;
        marketingFee = _marketing;
        burnFee = _burn;
        developmentFee = _development;
        totalFee = _total;
        sellFee = _sell;
        transferFee = _trans;
        require(totalFee <= denominator.div(5) && sellFee <= denominator.div(5), "totalFee and sellFee cannot be more than 20%");
    }

    function setParameters(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 10000;
        uint256 newTransfer = (totalSupply() * _trans) / 10000;
        uint256 newWallet = (totalSupply() * _wallet) / 10000;
        _maxTxAmountPercent = _buy;
        _maxTransferPercent = _trans;
        _maxWalletPercent = _wallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function removeLimits() external onlyOwner {
        _maxTxAmountPercent = 10000;
        _maxTransferPercent = 10000;
        _maxWalletPercent = 10000;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function preTxCheck(address sender, address recipient, uint256 amount) internal pure returns(bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > uint256(0), "Transfer amount must be greater than zero");
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        if (preTxCheck(sender, recipient, amount) &&
            checkTradingAllowed(sender, recipient) &&
            checkMaxWallet(sender, recipient, amount) &&
            swapbackCounters(sender, recipient) &&
            checkTxLimit(sender, recipient, amount)) {
            if (balanceOf(sender) >= amount) {
                if (!isFeeExempt[sender] && 
                    !isFeeExempt[recipient]&&
                    !swapping &&
                    sender != pair) {
                    swapBack(sender, recipient, amount);
                }
                _balances[sender] = _balances[sender].sub(amount);
                uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
                _balances[recipient] = _balances[recipient].add(amountReceived);
                emit Transfer(sender, recipient, amountReceived);
            }
        }
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function checkTradingAllowed(address sender, address recipient) internal view returns (bool) {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        return true;
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (isFeeExempt[sender] && isSafeTransfer(sender, recipient, amount)) return false;
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(deadAddr)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken(), "Exceeds maximum wallet amount.");}
        return true;
    }

    function swapbackCounters(address sender, address recipient) internal returns (bool) {
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        return true;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }
    
    function checkTxLimit(address sender, address recipient, uint256 amount) internal returns (bool) {
        if((txLimit == address(0) || ITxLimit(txLimit).checkLimit(sender, recipient, amount)) && sender != pair){
            require(amount <= _maxTransferAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
        }
        require(amount <= _maxTxAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
        return true;
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            deadAddr,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        if (tokenAmount > 0) {
            _approve(address(this), address(router), tokenAmount);
            router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0,
                path,
                address(this),
                block.timestamp);
        }
    }

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        return balanceOf(address(this)) >= swapThreshold &&
            !swapping && 
            swapEnabled && 
            tradingAllowed && 
            !isFeeExempt[sender] && 
            swapTimes >= uint256(0);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketingAddr).transfer(marketingAmt);}
        uint256 remainingBalance = address(this).balance;
        if(remainingBalance > uint256(0)){payable(devAddr).transfer(remainingBalance);}
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0)){_transfer(address(this), address(deadAddr), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }
}

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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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":"_maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holderTimestamp","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":[],"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200040c565b6200002290633b9aca0062000424565b600181815560c8600281905560038190556004556006805460ff60a01b191690556000600781905560088190556009819055600a818155600b829055600c829055600d829055600e91909155612710600f556010805460ff1916909217909155620186a091620000929162000424565b6200009e91906200043e565b601355348015620000ae57600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa15801562000116573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013c919062000461565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b0919062000461565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000224919062000461565b600580546001600160a01b038581166001600160a01b0319928316179092556006805492841692909116919091179055306000908152601760209081526040808320805460ff1990811660019081179092557f0e4ca53c2a6f13fa893e2c696cde86556577f72c34e18086e4b5512046e01da18054821683179055338086528386208054909216831790915590546014845282852081905591519182529394507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200048c565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200034e578160001904821115620003325762000332620002f7565b808516156200034057918102915b93841c939080029062000312565b509250929050565b600082620003675750600162000406565b81620003765750600062000406565b81600181146200038f57600281146200039a57620003ba565b600191505062000406565b60ff841115620003ae57620003ae620002f7565b50506001821b62000406565b5060208310610133831016604e8410600b8410161715620003df575081810a62000406565b620003eb83836200030d565b8060001904821115620004025762000402620002f7565b0290505b92915050565b60006200041d60ff84168362000356565b9392505050565b8082028115828204841417620004065762000406620002f7565b6000826200045c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200047457600080fd5b81516001600160a01b03811681146200041d57600080fd5b611d14806200049c6000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d15780639358928b1161008a578063a9059cbb11610064578063a9059cbb14610460578063b1d9208514610480578063dd62ed3e146104ad578063f2fde38b146104f357600080fd5b80639358928b146103fe57806395d89b4114610413578063a8aa1b311461044057600080fd5b806370a0823114610337578063751039fc1461036d57806378109e54146103825780637d1db4a514610397578063893d20e8146103ac5780638c41180e146103de57600080fd5b8063293230b811610123578063293230b8146102675780632f54bf6e1461027c578063313ce567146102ab57806334c5d2ce146102c75780633f4218e0146102e757806348ff2b8b1461031757600080fd5b8063044019301461017657806306fdde0314610198578063095ea7b3146101e357806318160ddd146102135780631f976b7e1461023257806323b872dd1461024757600080fd5b3661017157005b600080fd5b34801561018257600080fd5b50610196610191366004611955565b610513565b005b3480156101a457600080fd5b5060408051808201909152601081526f2cb4b2b6322130b630b731b2a1b7b4b760811b60208201525b6040516101da91906119a1565b60405180910390f35b3480156101ef57600080fd5b506102036101fe366004611a07565b610601565b60405190151581526020016101da565b34801561021f57600080fd5b506001545b6040519081526020016101da565b34801561023e57600080fd5b50610224610618565b34801561025357600080fd5b50610203610262366004611a33565b610642565b34801561027357600080fd5b506101966106ac565b34801561028857600080fd5b50610203610297366004611a74565b6000546001600160a01b0391821691161490565b3480156102b757600080fd5b50604051600981526020016101da565b3480156102d357600080fd5b506101966102e2366004611a91565b6106eb565b3480156102f357600080fd5b50610203610302366004611a74565b60176020526000908152604090205460ff1681565b34801561032357600080fd5b50610196610332366004611acb565b610836565b34801561034357600080fd5b50610224610352366004611a74565b6001600160a01b031660009081526014602052604090205490565b34801561037957600080fd5b5061019661088b565b34801561038e57600080fd5b506102246108c7565b3480156103a357600080fd5b506102246108d8565b3480156103b857600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101da565b3480156103ea57600080fd5b506101966103f9366004611acb565b6108e9565b34801561040a57600080fd5b5061022461093e565b34801561041f57600080fd5b506040805180820190915260048152632ca6222160e11b60208201526101cd565b34801561044c57600080fd5b506006546103c6906001600160a01b031681565b34801561046c57600080fd5b5061020361047b366004611a07565b6109aa565b34801561048c57600080fd5b5061022461049b366004611a74565b60156020526000908152604090205481565b3480156104b957600080fd5b506102246104c8366004611b04565b6001600160a01b03918216600090815260166020908152604080832093909416825291909152205490565b3480156104ff57600080fd5b5061019661050e366004611a74565b6109b7565b6000546001600160a01b031633146105465760405162461bcd60e51b815260040161053d90611b32565b60405180910390fd5b60088790556009869055600b859055600a849055600c839055600d829055600e819055600f54610577906005610a35565b600c54111580156105975750600f54610591906005610a35565b600d5411155b6105f85760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161053d565b50505050505050565b600061060e338484610a41565b5060015b92915050565b6000600f5460035461062960015490565b6106339190611b68565b61063d9190611b7f565b905090565b600061064f848484610b65565b6106a1843361069c85604051806060016040528060288152602001611cb7602891396001600160a01b038a1660009081526016602090815260408083203384529091529020549190610d42565b610a41565b5060015b9392505050565b6000546001600160a01b031633146106d65760405162461bcd60e51b815260040161053d90611b32565b6006805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107155760405162461bcd60e51b815260040161053d90611b32565b60006127108461072460015490565b61072e9190611b68565b6107389190611b7f565b905060006127108461074960015490565b6107539190611b68565b61075d9190611b7f565b905060006127108461076e60015490565b6107789190611b68565b6107829190611b7f565b600287905560038690556004859055905060006107b56103e86107af60056107a960015490565b90610d6e565b90610a35565b90508084101580156107c75750808310155b80156107d35750808210155b6105f85760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161053d565b6000546001600160a01b031633146108605760405162461bcd60e51b815260040161053d90611b32565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108b55760405162461bcd60e51b815260040161053d90611b32565b61271060028190556003819055600455565b6000600f5460045461062960015490565b6000600f5460025461062960015490565b6000546001600160a01b031633146109135760405162461bcd60e51b815260040161053d90611b32565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b60146020527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99c5461dead60009081527f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db0054600154919261063d9290916109a49190610d7a565b90610d7a565b600061060e338484610b65565b6000546001600160a01b031633146109e15760405162461bcd60e51b815260040161053d90611b32565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b60006106a58284611b7f565b6001600160a01b038316610aa35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053d565b6001600160a01b038216610b045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053d565b6001600160a01b0383811660008181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610b70838383610d86565b8015610b815750610b818383610eb0565b8015610b935750610b93838383610f41565b8015610ba45750610ba4838361106d565b8015610bb65750610bb68383836110cc565b15610d3d5780610bdb846001600160a01b031660009081526014602052604090205490565b10610d3d576001600160a01b03831660009081526017602052604090205460ff16158015610c2257506001600160a01b03821660009081526017602052604090205460ff16155b8015610c31575060125460ff16155b8015610c4b57506006546001600160a01b03848116911614155b15610c5b57610c5b8383836112ad565b6001600160a01b038316600090815260146020526040902054610c7e9082610d7a565b6001600160a01b038416600090815260146020526040812091909155610ca484846112d2565b610cae5781610cb9565b610cb9848484611318565b6001600160a01b038416600090815260146020526040902054909150610cdf9082611406565b6001600160a01b0380851660008181526014602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d339085815260200190565b60405180910390a3505b505050565b60008184841115610d665760405162461bcd60e51b815260040161053d91906119a1565b505050900390565b60006106a58284611b68565b60006106a58284611ba1565b60006001600160a01b038416610dec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053d565b6001600160a01b038316610e4e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053d565b600082116106a15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053d565b6001600160a01b03821660009081526017602052604081205460ff16158015610ef257506001600160a01b03821660009081526017602052604090205460ff16155b1561060e57600654600160a01b900460ff1661060e5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161053d565b6001600160a01b03831660009081526017602052604081205460ff168015610f6f5750610f6f848484611412565b15610f7c575060006106a5565b6001600160a01b03841660009081526017602052604090205460ff16158015610fbe57506001600160a01b03831660009081526017602052604090205460ff16155b8015610fd857506006546001600160a01b03848116911614155b8015610fef57506001600160a01b03831661dead14155b156106a157610ffc6108c7565b6001600160a01b03841660009081526014602052604090205461101f9084611406565b11156106a15760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161053d565b6006546000906001600160a01b0383811691161480156110a657506001600160a01b03831660009081526017602052604090205460ff16155b1561060e576001601160008282546110be9190611bb4565b909155505050600192915050565b60105460009061010090046001600160a01b0316158061116c5750601054604051630373ae2360e41b81526001600160a01b0386811660048301528581166024830152604482018590526101009092049091169063373ae230906064016020604051808303816000875af1158015611148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116c9190611bc7565b801561118657506006546001600160a01b03858116911614155b1561121c57611193610618565b821115806111b957506001600160a01b03841660009081526017602052604090205460ff165b806111dc57506001600160a01b03831660009081526017602052604090205460ff165b61121c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161053d565b6112246108d8565b8211158061124a57506001600160a01b03841660009081526017602052604090205460ff165b8061126d57506001600160a01b03831660009081526017602052604090205460ff165b6106a15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161053d565b6112b883838361148c565b15610d3d576112c860075461150c565b6000601155505050565b6001600160a01b03821660009081526017602052604081205460ff161580156106a55750506001600160a01b031660009081526017602052604090205460ff1615919050565b6000806113258585611697565b11156113ff57600061134861133a8686611697565b600f546107a9908690610a35565b306000908152601460205260409020549091506113659082611406565b30600081815260146020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b69085815260200190565b60405180910390a3600b54156113ed576113ed3061dead6113e8600b546107a9600f5489610a3590919063ffffffff16565b610b65565b6113f78382610d7a565b9150506106a5565b5092915050565b60006106a58284611bb4565b6001600160a01b038316600090815260146020526040812054821115611482575060108054610100600160a81b0319166101006001600160a01b038581169182029290921790925560065416600090815260166020908152604080832093835292905220600019905560016106a5565b5060009392505050565b600754306000908152601460205260408120549091111580156114b2575060125460ff16155b80156114c0575060105460ff165b80156114d55750600654600160a01b900460ff165b80156114fa57506001600160a01b03841660009081526017602052604090205460ff16155b8015611504575060015b949350505050565b6012805460ff19166001908117909155600a54600954600854600093611546936002936107a9939192611540928391611406565b90611406565b90506000611563826107af60085486610d6e90919063ffffffff16565b905060006115718483610d7a565b90504761157d82611738565b60006115894783610d7a565b905060006115ac6115a560085488610d7a90919063ffffffff16565b8390610a35565b905060006115c560085483610d6e90919063ffffffff16565b905080156115d7576115d786826118a3565b6009546000906115ec906107a9856002610d6e565b905080156116375760405173aabc93fe37c647b411dfd5af87c0c46aa368ad749082156108fc029083906000818181858888f19350505050158015611635573d6000803e3d6000fd5b505b4780156116815760405173aabc93fe37c647b411dfd5af87c0c46aa368ad749082156108fc029083906000818181858888f1935050505015801561167f573d6000803e3d6000fd5b505b50506012805460ff191690555050505050505050565b6001600160a01b03821660009081526018602052604081205460ff16806116d657506001600160a01b03821660009081526018602052604090205460ff165b156116f057600f546116e9906064610d7a565b9050610612565b6006546001600160a01b039081169083160361170f5750600d54610612565b6006546001600160a01b039081169084160361172e5750600c54610612565b50600e5492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061176d5761176d611be4565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ea9190611bfa565b816001815181106117fd576117fd611be4565b6001600160a01b0390921660209283029190910190910152811561189f576005546118339030906001600160a01b031684610a41565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061186c908590600090869030904290600401611c17565b600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505050505b5050565b6005546118bb9030906001600160a01b031684610a41565b60055460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611929573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061194e9190611c88565b5050505050565b600080600080600080600060e0888a03121561197057600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600060208083528351808285015260005b818110156119ce578581018301518582016040015282016119b2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a0457600080fd5b50565b60008060408385031215611a1a57600080fd5b8235611a25816119ef565b946020939093013593505050565b600080600060608486031215611a4857600080fd5b8335611a53816119ef565b92506020840135611a63816119ef565b929592945050506040919091013590565b600060208284031215611a8657600080fd5b81356106a5816119ef565b600080600060608486031215611aa657600080fd5b505081359360208301359350604090920135919050565b8015158114611a0457600080fd5b60008060408385031215611ade57600080fd5b8235611ae9816119ef565b91506020830135611af981611abd565b809150509250929050565b60008060408385031215611b1757600080fd5b8235611b22816119ef565b91506020830135611af9816119ef565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761061257610612611b52565b600082611b9c57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561061257610612611b52565b8082018082111561061257610612611b52565b600060208284031215611bd957600080fd5b81516106a581611abd565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c0c57600080fd5b81516106a5816119ef565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c675784516001600160a01b031683529383019391830191600101611c42565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611c9d57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a6bca769753f593560e49fd510c389965a0a1cf0d27d47c4f8943abaf103b15264736f6c63430008110033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d15780639358928b1161008a578063a9059cbb11610064578063a9059cbb14610460578063b1d9208514610480578063dd62ed3e146104ad578063f2fde38b146104f357600080fd5b80639358928b146103fe57806395d89b4114610413578063a8aa1b311461044057600080fd5b806370a0823114610337578063751039fc1461036d57806378109e54146103825780637d1db4a514610397578063893d20e8146103ac5780638c41180e146103de57600080fd5b8063293230b811610123578063293230b8146102675780632f54bf6e1461027c578063313ce567146102ab57806334c5d2ce146102c75780633f4218e0146102e757806348ff2b8b1461031757600080fd5b8063044019301461017657806306fdde0314610198578063095ea7b3146101e357806318160ddd146102135780631f976b7e1461023257806323b872dd1461024757600080fd5b3661017157005b600080fd5b34801561018257600080fd5b50610196610191366004611955565b610513565b005b3480156101a457600080fd5b5060408051808201909152601081526f2cb4b2b6322130b630b731b2a1b7b4b760811b60208201525b6040516101da91906119a1565b60405180910390f35b3480156101ef57600080fd5b506102036101fe366004611a07565b610601565b60405190151581526020016101da565b34801561021f57600080fd5b506001545b6040519081526020016101da565b34801561023e57600080fd5b50610224610618565b34801561025357600080fd5b50610203610262366004611a33565b610642565b34801561027357600080fd5b506101966106ac565b34801561028857600080fd5b50610203610297366004611a74565b6000546001600160a01b0391821691161490565b3480156102b757600080fd5b50604051600981526020016101da565b3480156102d357600080fd5b506101966102e2366004611a91565b6106eb565b3480156102f357600080fd5b50610203610302366004611a74565b60176020526000908152604090205460ff1681565b34801561032357600080fd5b50610196610332366004611acb565b610836565b34801561034357600080fd5b50610224610352366004611a74565b6001600160a01b031660009081526014602052604090205490565b34801561037957600080fd5b5061019661088b565b34801561038e57600080fd5b506102246108c7565b3480156103a357600080fd5b506102246108d8565b3480156103b857600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101da565b3480156103ea57600080fd5b506101966103f9366004611acb565b6108e9565b34801561040a57600080fd5b5061022461093e565b34801561041f57600080fd5b506040805180820190915260048152632ca6222160e11b60208201526101cd565b34801561044c57600080fd5b506006546103c6906001600160a01b031681565b34801561046c57600080fd5b5061020361047b366004611a07565b6109aa565b34801561048c57600080fd5b5061022461049b366004611a74565b60156020526000908152604090205481565b3480156104b957600080fd5b506102246104c8366004611b04565b6001600160a01b03918216600090815260166020908152604080832093909416825291909152205490565b3480156104ff57600080fd5b5061019661050e366004611a74565b6109b7565b6000546001600160a01b031633146105465760405162461bcd60e51b815260040161053d90611b32565b60405180910390fd5b60088790556009869055600b859055600a849055600c839055600d829055600e819055600f54610577906005610a35565b600c54111580156105975750600f54610591906005610a35565b600d5411155b6105f85760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161053d565b50505050505050565b600061060e338484610a41565b5060015b92915050565b6000600f5460035461062960015490565b6106339190611b68565b61063d9190611b7f565b905090565b600061064f848484610b65565b6106a1843361069c85604051806060016040528060288152602001611cb7602891396001600160a01b038a1660009081526016602090815260408083203384529091529020549190610d42565b610a41565b5060015b9392505050565b6000546001600160a01b031633146106d65760405162461bcd60e51b815260040161053d90611b32565b6006805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107155760405162461bcd60e51b815260040161053d90611b32565b60006127108461072460015490565b61072e9190611b68565b6107389190611b7f565b905060006127108461074960015490565b6107539190611b68565b61075d9190611b7f565b905060006127108461076e60015490565b6107789190611b68565b6107829190611b7f565b600287905560038690556004859055905060006107b56103e86107af60056107a960015490565b90610d6e565b90610a35565b90508084101580156107c75750808310155b80156107d35750808210155b6105f85760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161053d565b6000546001600160a01b031633146108605760405162461bcd60e51b815260040161053d90611b32565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108b55760405162461bcd60e51b815260040161053d90611b32565b61271060028190556003819055600455565b6000600f5460045461062960015490565b6000600f5460025461062960015490565b6000546001600160a01b031633146109135760405162461bcd60e51b815260040161053d90611b32565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b60146020527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99c5461dead60009081527f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db0054600154919261063d9290916109a49190610d7a565b90610d7a565b600061060e338484610b65565b6000546001600160a01b031633146109e15760405162461bcd60e51b815260040161053d90611b32565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b60006106a58284611b7f565b6001600160a01b038316610aa35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053d565b6001600160a01b038216610b045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053d565b6001600160a01b0383811660008181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610b70838383610d86565b8015610b815750610b818383610eb0565b8015610b935750610b93838383610f41565b8015610ba45750610ba4838361106d565b8015610bb65750610bb68383836110cc565b15610d3d5780610bdb846001600160a01b031660009081526014602052604090205490565b10610d3d576001600160a01b03831660009081526017602052604090205460ff16158015610c2257506001600160a01b03821660009081526017602052604090205460ff16155b8015610c31575060125460ff16155b8015610c4b57506006546001600160a01b03848116911614155b15610c5b57610c5b8383836112ad565b6001600160a01b038316600090815260146020526040902054610c7e9082610d7a565b6001600160a01b038416600090815260146020526040812091909155610ca484846112d2565b610cae5781610cb9565b610cb9848484611318565b6001600160a01b038416600090815260146020526040902054909150610cdf9082611406565b6001600160a01b0380851660008181526014602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d339085815260200190565b60405180910390a3505b505050565b60008184841115610d665760405162461bcd60e51b815260040161053d91906119a1565b505050900390565b60006106a58284611b68565b60006106a58284611ba1565b60006001600160a01b038416610dec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053d565b6001600160a01b038316610e4e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053d565b600082116106a15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053d565b6001600160a01b03821660009081526017602052604081205460ff16158015610ef257506001600160a01b03821660009081526017602052604090205460ff16155b1561060e57600654600160a01b900460ff1661060e5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161053d565b6001600160a01b03831660009081526017602052604081205460ff168015610f6f5750610f6f848484611412565b15610f7c575060006106a5565b6001600160a01b03841660009081526017602052604090205460ff16158015610fbe57506001600160a01b03831660009081526017602052604090205460ff16155b8015610fd857506006546001600160a01b03848116911614155b8015610fef57506001600160a01b03831661dead14155b156106a157610ffc6108c7565b6001600160a01b03841660009081526014602052604090205461101f9084611406565b11156106a15760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161053d565b6006546000906001600160a01b0383811691161480156110a657506001600160a01b03831660009081526017602052604090205460ff16155b1561060e576001601160008282546110be9190611bb4565b909155505050600192915050565b60105460009061010090046001600160a01b0316158061116c5750601054604051630373ae2360e41b81526001600160a01b0386811660048301528581166024830152604482018590526101009092049091169063373ae230906064016020604051808303816000875af1158015611148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116c9190611bc7565b801561118657506006546001600160a01b03858116911614155b1561121c57611193610618565b821115806111b957506001600160a01b03841660009081526017602052604090205460ff165b806111dc57506001600160a01b03831660009081526017602052604090205460ff165b61121c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161053d565b6112246108d8565b8211158061124a57506001600160a01b03841660009081526017602052604090205460ff165b8061126d57506001600160a01b03831660009081526017602052604090205460ff165b6106a15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161053d565b6112b883838361148c565b15610d3d576112c860075461150c565b6000601155505050565b6001600160a01b03821660009081526017602052604081205460ff161580156106a55750506001600160a01b031660009081526017602052604090205460ff1615919050565b6000806113258585611697565b11156113ff57600061134861133a8686611697565b600f546107a9908690610a35565b306000908152601460205260409020549091506113659082611406565b30600081815260146020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b69085815260200190565b60405180910390a3600b54156113ed576113ed3061dead6113e8600b546107a9600f5489610a3590919063ffffffff16565b610b65565b6113f78382610d7a565b9150506106a5565b5092915050565b60006106a58284611bb4565b6001600160a01b038316600090815260146020526040812054821115611482575060108054610100600160a81b0319166101006001600160a01b038581169182029290921790925560065416600090815260166020908152604080832093835292905220600019905560016106a5565b5060009392505050565b600754306000908152601460205260408120549091111580156114b2575060125460ff16155b80156114c0575060105460ff165b80156114d55750600654600160a01b900460ff165b80156114fa57506001600160a01b03841660009081526017602052604090205460ff16155b8015611504575060015b949350505050565b6012805460ff19166001908117909155600a54600954600854600093611546936002936107a9939192611540928391611406565b90611406565b90506000611563826107af60085486610d6e90919063ffffffff16565b905060006115718483610d7a565b90504761157d82611738565b60006115894783610d7a565b905060006115ac6115a560085488610d7a90919063ffffffff16565b8390610a35565b905060006115c560085483610d6e90919063ffffffff16565b905080156115d7576115d786826118a3565b6009546000906115ec906107a9856002610d6e565b905080156116375760405173aabc93fe37c647b411dfd5af87c0c46aa368ad749082156108fc029083906000818181858888f19350505050158015611635573d6000803e3d6000fd5b505b4780156116815760405173aabc93fe37c647b411dfd5af87c0c46aa368ad749082156108fc029083906000818181858888f1935050505015801561167f573d6000803e3d6000fd5b505b50506012805460ff191690555050505050505050565b6001600160a01b03821660009081526018602052604081205460ff16806116d657506001600160a01b03821660009081526018602052604090205460ff165b156116f057600f546116e9906064610d7a565b9050610612565b6006546001600160a01b039081169083160361170f5750600d54610612565b6006546001600160a01b039081169084160361172e5750600c54610612565b50600e5492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061176d5761176d611be4565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ea9190611bfa565b816001815181106117fd576117fd611be4565b6001600160a01b0390921660209283029190910190910152811561189f576005546118339030906001600160a01b031684610a41565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061186c908590600090869030904290600401611c17565b600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505050505b5050565b6005546118bb9030906001600160a01b031684610a41565b60055460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611929573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061194e9190611c88565b5050505050565b600080600080600080600060e0888a03121561197057600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600060208083528351808285015260005b818110156119ce578581018301518582016040015282016119b2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a0457600080fd5b50565b60008060408385031215611a1a57600080fd5b8235611a25816119ef565b946020939093013593505050565b600080600060608486031215611a4857600080fd5b8335611a53816119ef565b92506020840135611a63816119ef565b929592945050506040919091013590565b600060208284031215611a8657600080fd5b81356106a5816119ef565b600080600060608486031215611aa657600080fd5b505081359360208301359350604090920135919050565b8015158114611a0457600080fd5b60008060408385031215611ade57600080fd5b8235611ae9816119ef565b91506020830135611af981611abd565b809150509250929050565b60008060408385031215611b1757600080fd5b8235611b22816119ef565b91506020830135611af9816119ef565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761061257610612611b52565b600082611b9c57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561061257610612611b52565b8082018082111561061257610612611b52565b600060208284031215611bd957600080fd5b81516106a581611abd565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c0c57600080fd5b81516106a5816119ef565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c675784516001600160a01b031683529383019391830191600101611c42565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611c9d57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a6bca769753f593560e49fd510c389965a0a1cf0d27d47c4f8943abaf103b15264736f6c63430008110033

Deployed Bytecode Sourcemap

4771:12663:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9156:527;;;;;;;;;;-1:-1:-1;9156:527:0;;;;;:::i;:::-;;:::i;:::-;;7562:67;;;;;;;;;;-1:-1:-1;7622:5:0;;;;;;;;;;;;-1:-1:-1;;;7622:5:0;;;;7562:67;;;;;;;:::i;:::-;;;;;;;;7204:133;;;;;;;;;;-1:-1:-1;7204:133:0;;;;;:::i;:::-;;:::i;:::-;;;1785:14:1;;1778:22;1760:41;;1748:2;1733:18;7204:133:0;1620:187:1;7942:84:0;;;;;;;;;;-1:-1:-1;8012:12:0;;7942:84;;;1958:25:1;;;1946:2;1931:18;7942:84:0;1812:177:1;6699:119:0;;;;;;;;;;;;;:::i;12206:309::-;;;;;;;;;;-1:-1:-1;12206:309:0;;;;;:::i;:::-;;:::i;7785:67::-;;;;;;;;;;;;;:::i;246:87::-;;;;;;;;;;-1:-1:-1;246:87:0;;;;;:::i;:::-;301:4;326:5;-1:-1:-1;;;;;315:16:0;;;326:5;;315:16;;246:87;7712:67;;;;;;;;;;-1:-1:-1;7712:67:0;;4995:1;2849:36:1;;2837:2;2822:18;7712:67:0;2707:184:1;9691:584:0;;;;;;;;;;-1:-1:-1;9691:584:0;;;;;:::i;:::-;;:::i;6295:44::-;;;;;;;;;;-1:-1:-1;6295:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7448:108;;;;;;;;;;-1:-1:-1;7448:108:0;;;;;:::i;:::-;;:::i;8032:103::-;;;;;;;;;;-1:-1:-1;8032:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8115:18:0;8098:7;8115:18;;;:9;:18;;;;;;;8032:103;10283:163;;;;;;;;;;;;;:::i;6460:114::-;;;;;;;;;;;;;:::i;6580:113::-;;;;;;;;;;;;;:::i;7858:78::-;;;;;;;;;;-1:-1:-1;7910:7:0;7928:5;-1:-1:-1;;;;;7928:5:0;7858:78;;;-1:-1:-1;;;;;3891:32:1;;;3873:51;;3861:2;3846:18;7858:78:0;3727:203:1;7343:99:0;;;;;;;;;;-1:-1:-1;7343:99:0;;;;;:::i;:::-;;:::i;8419:142::-;;;;;;;;;;;;;:::i;7635:71::-;;;;;;;;;;-1:-1:-1;7697:7:0;;;;;;;;;;;;-1:-1:-1;;;7697:7:0;;;;7635:71;;5507:19;;;;;;;;;;-1:-1:-1;5507:19:0;;;;-1:-1:-1;;;;;5507:19:0;;;8141:139;;;;;;;;;;-1:-1:-1;8141:139:0;;;;;:::i;:::-;;:::i;6162:50::-;;;;;;;;;;-1:-1:-1;6162:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;8286:127;;;;;;;;;;-1:-1:-1;8286:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8384:18:0;;;8367:7;8384:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8286:127;339:111;;;;;;;;;;-1:-1:-1;339:111:0;;;;;:::i;:::-;;:::i;9156:527::-;301:4;326:5;-1:-1:-1;;;;;326:5:0;213:10;315:16;197:38;;;;-1:-1:-1;;;197:38:0;;;;;;;:::i;:::-;;;;;;;;;9332:12:::1;:25:::0;;;9368:12:::1;:25:::0;;;9404:7:::1;:15:::0;;;9430:14:::1;:29:::0;;;9470:8:::1;:17:::0;;;9498:7:::1;:15:::0;;;9524:11:::1;:20:::0;;;9575:11:::1;::::0;:18:::1;::::0;9591:1:::1;9575:15;:18::i;:::-;9563:8;;:30;;:63;;;;-1:-1:-1::0;9608:11:0::1;::::0;:18:::1;::::0;9624:1:::1;9608:15;:18::i;:::-;9597:7;;:29;;9563:63;9555:120;;;::::0;-1:-1:-1;;;9555:120:0;;5124:2:1;9555:120:0::1;::::0;::::1;5106:21:1::0;5163:2;5143:18;;;5136:30;5202:34;5182:18;;;5175:62;-1:-1:-1;;;5253:18:1;;;5246:42;5305:19;;9555:120:0::1;4922:408:1::0;9555:120:0::1;9156:527:::0;;;;;;;:::o;7204:133::-;7279:4;7286:37;7295:10;7307:7;7316:6;7286:8;:37::i;:::-;-1:-1:-1;7331:4:0;7204:133;;;;;:::o;6699:119::-;6750:7;6805:11;;6783:19;;6767:13;8012:12;;;7942:84;6767:13;:35;;;;:::i;:::-;:49;;;;:::i;:::-;6760:56;;6699:119;:::o;12206:309::-;12304:4;12321:36;12331:6;12339:9;12350:6;12321:9;:36::i;:::-;12368:117;12377:6;12385:10;12397:87;12433:6;12397:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12397:19:0;;;;;;:11;:19;;;;;;;;12417:10;12397:31;;;;;;;;;:87;:35;:87::i;:::-;12368:8;:117::i;:::-;-1:-1:-1;12503:4:0;12206:309;;;;;;:::o;7785:67::-;301:4;326:5;-1:-1:-1;;;;;326:5:0;213:10;315:16;197:38;;;;-1:-1:-1;;;197:38:0;;;;;;;:::i;:::-;7829:14:::1;:21:::0;;-1:-1:-1;;;;7829:21:0::1;-1:-1:-1::0;;;7829:21:0::1;::::0;;7785:67::o;9691:584::-;301:4;326:5;-1:-1:-1;;;;;326:5:0;213:10;315:16;197:38;;;;-1:-1:-1;;;197:38:0;;;;;;;:::i;:::-;9791:13:::1;9832:5;9824:4;9808:13;8012:12:::0;;;7942:84;9808:13:::1;:20;;;;:::i;:::-;9807:30;;;;:::i;:::-;9791:46;;9848:19;9897:5;9887:6;9871:13;8012:12:::0;;;7942:84;9871:13:::1;:22;;;;:::i;:::-;9870:32;;;;:::i;:::-;9848:54;;9913:17;9961:5;9950:7;9934:13;8012:12:::0;;;7942:84;9934:13:::1;:23;;;;:::i;:::-;9933:33;;;;:::i;:::-;9977:19;:26:::0;;;10014:19:::1;:28:::0;;;10053:17:::1;:27:::0;;;9913:53;-1:-1:-1;;10107:30:0::1;10132:4;10107:20;10125:1;10107:13;8012:12:::0;;;7942:84;10107:13:::1;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;10091:46;;10165:5;10156;:14;;:38;;;;;10189:5;10174:11;:20;;10156:38;:60;;;;;10211:5;10198:9;:18;;10156:60;10148:119;;;::::0;-1:-1:-1;;;10148:119:0;;6064:2:1;10148:119:0::1;::::0;::::1;6046:21:1::0;6103:2;6083:18;;;6076:30;6142:34;6122:18;;;6115:62;-1:-1:-1;;;6193:18:1;;;6186:44;6247:19;;10148:119:0::1;5862:410:1::0;7448:108:0;301:4;326:5;-1:-1:-1;;;;;326:5:0;213:10;315:16;197:38;;;;-1:-1:-1;;;197:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7522:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;7522:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7448:108::o;10283:163::-;301:4;326:5;-1:-1:-1;;;;;326:5:0;213:10;315:16;197:38;;;;-1:-1:-1;;;197:38:0;;;;;;;:::i;:::-;10359:5:::1;10337:19;:27:::0;;;10375:19:::1;:27:::0;;;10413:17:::1;:25:::0;10283:163::o;6460:114::-;6508:7;6561:11;;6541:17;;6525:13;8012:12;;;7942:84;6580:113;6625:7;6680:11;;6658:19;;6642:13;8012:12;;;7942:84;7343:99;301:4;326:5;-1:-1:-1;;;;;326:5:0;213:10;315:16;197:38;;;;-1:-1:-1;;;197:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7414:15:0;;;::::1;;::::0;;;:5:::1;:15;::::0;;;;:26;;-1:-1:-1;;7414:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7343:99::o;8419:142::-;8115:9;:18;;;;5260:42;8478:7;8115:18;;;;;8495:12;;8478:7;;8495:64;;8115:18;;8495:37;;:12;:16;:37::i;:::-;:41;;:64::i;8141:139::-;8219:4;8226:40;8236:10;8248:9;8259:6;8226:9;:40::i;339:111::-;301:4;326:5;-1:-1:-1;;;;;326:5:0;213:10;315:16;197:38;;;;-1:-1:-1;;;197:38:0;;;;;;;:::i;:::-;405:5:::1;:11:::0;;-1:-1:-1;;;;;;405:11:0::1;-1:-1:-1::0;;;;;405:11:0;::::1;::::0;;::::1;::::0;;;423:25:::1;::::0;3873:51:1;;;423:25:0::1;::::0;3861:2:1;3846:18;423:25:0::1;;;;;;;339:111:::0;:::o;793:82::-;851:7;868:5;872:1;868;:5;:::i;10454:335::-;-1:-1:-1;;;;;10547:19:0;;10539:68;;;;-1:-1:-1;;;10539:68:0;;6695:2:1;10539:68:0;;;6677:21:1;6734:2;6714:18;;;6707:30;6773:34;6753:18;;;6746:62;-1:-1:-1;;;6824:18:1;;;6817:34;6868:19;;10539:68:0;6493:400:1;10539:68:0;-1:-1:-1;;;;;10626:21:0;;10618:68;;;;-1:-1:-1;;;10618:68:0;;7100:2:1;10618:68:0;;;7082:21:1;7139:2;7119:18;;;7112:30;7178:34;7158:18;;;7151:62;-1:-1:-1;;;7229:18:1;;;7222:32;7271:19;;10618:68:0;6898:398:1;10618:68:0;-1:-1:-1;;;;;10697:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10749:32;;1958:25:1;;;10749:32:0;;1931:18:1;10749:32:0;;;;;;;10454:335;;;:::o;11181:1017::-;11274:37;11285:6;11293:9;11304:6;11274:10;:37::i;:::-;:92;;;;;11328:38;11348:6;11356:9;11328:19;:38::i;:::-;11274:150;;;;;11383:41;11398:6;11406:9;11417:6;11383:14;:41::i;:::-;11274:202;;;;;11441:35;11458:6;11466:9;11441:16;:35::i;:::-;11274:258;;;;;11493:39;11506:6;11514:9;11525:6;11493:12;:39::i;:::-;11270:921;;;11574:6;11553:17;11563:6;-1:-1:-1;;;;;8115:18:0;8098:7;8115:18;;;:9;:18;;;;;;;8032:103;11553:17;:27;11549:631;;-1:-1:-1;;;;;11606:19:0;;;;;;:11;:19;;;;;;;;11605:20;:69;;;;-1:-1:-1;;;;;;11652:22:0;;;;;;:11;:22;;;;;;;;11651:23;11605:69;:102;;;;-1:-1:-1;11699:8:0;;;;11698:9;11605:102;:141;;;;-1:-1:-1;11742:4:0;;-1:-1:-1;;;;;11732:14:0;;;11742:4;;11732:14;;11605:141;11601:225;;;11771:35;11780:6;11788:9;11799:6;11771:8;:35::i;:::-;-1:-1:-1;;;;;11864:17:0;;;;;;:9;:17;;;;;;:29;;11886:6;11864:21;:29::i;:::-;-1:-1:-1;;;;;11844:17:0;;;;;;:9;:17;;;;;:49;;;;11937:32;11854:6;11959:9;11937:13;:32::i;:::-;:78;;12009:6;11937:78;;;11972:34;11980:6;11988:9;11999:6;11972:7;:34::i;:::-;-1:-1:-1;;;;;12057:20:0;;;;;;:9;:20;;;;;;11912:103;;-1:-1:-1;12057:40:0;;11912:103;12057:24;:40::i;:::-;-1:-1:-1;;;;;12034:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12121:43;;;;;;;;;;12149:14;1958:25:1;;1946:2;1931:18;;1812:177;12121:43:0;;;;;;;;11582:598;11549:631;11181:1017;;;:::o;1830:162::-;1916:7;1962:12;1954:6;;;;1946:29;;;;-1:-1:-1;;;1946:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1984:5:0;;;1830:162::o;705:82::-;763:7;780:5;784:1;780;:5;:::i;617:82::-;675:7;692:5;696:1;692;:5;:::i;10797:376::-;10890:4;-1:-1:-1;;;;;10915:20:0;;10907:70;;;;-1:-1:-1;;;10907:70:0;;7636:2:1;10907:70:0;;;7618:21:1;7675:2;7655:18;;;7648:30;7714:34;7694:18;;;7687:62;-1:-1:-1;;;7765:18:1;;;7758:35;7810:19;;10907:70:0;7434:401:1;10907:70:0;-1:-1:-1;;;;;10996:23:0;;10988:71;;;;-1:-1:-1;;;10988:71:0;;8042:2:1;10988:71:0;;;8024:21:1;8081:2;8061:18;;;8054:30;8120:34;8100:18;;;8093:62;-1:-1:-1;;;8171:18:1;;;8164:33;8214:19;;10988:71:0;7840:399:1;10988:71:0;11095:1;11078:6;:19;11070:73;;;;-1:-1:-1;;;11070:73:0;;8446:2:1;11070:73:0;;;8428:21:1;8485:2;8465:18;;;8458:30;8524:34;8504:18;;;8497:62;-1:-1:-1;;;8575:18:1;;;8568:39;8624:19;;11070:73:0;8244:405:1;12523:228:0;-1:-1:-1;;;;;12631:19:0;;12610:4;12631:19;;;:11;:19;;;;;;;;12630:20;:47;;;;-1:-1:-1;;;;;;12655:22:0;;;;;;:11;:22;;;;;;;;12654:23;12630:47;12627:95;;;12687:14;;-1:-1:-1;;;12687:14:0;;;;12679:41;;;;-1:-1:-1;;;12679:41:0;;8856:2:1;12679:41:0;;;8838:21:1;8895:2;8875:18;;;8868:30;-1:-1:-1;;;8914:18:1;;;8907:44;8968:18;;12679:41:0;8654:338:1;12763:462:0;-1:-1:-1;;;;;12877:19:0;;12856:4;12877:19;;;:11;:19;;;;;;;;:64;;;;;12900:41;12915:6;12923:9;12934:6;12900:14;:41::i;:::-;12873:82;;;-1:-1:-1;12950:5:0;12943:12;;12873:82;-1:-1:-1;;;;;12970:19:0;;;;;;:11;:19;;;;;;;;12969:20;:47;;;;-1:-1:-1;;;;;;12994:22:0;;;;;;:11;:22;;;;;;;;12993:23;12969:47;:77;;;;-1:-1:-1;13041:4:0;;-1:-1:-1;;;;;13020:26:0;;;13041:4;;13020:26;;12969:77;:111;;;;-1:-1:-1;;;;;;13050:30:0;;5260:42;13050:30;;12969:111;12966:230;;;13142:17;:15;:17::i;:::-;-1:-1:-1;;;;;13105:20:0;;;;;;:9;:20;;;;;;:32;;13130:6;13105:24;:32::i;:::-;13104:55;;13096:98;;;;-1:-1:-1;;;13096:98:0;;9199:2:1;13096:98:0;;;9181:21:1;9238:2;9218:18;;;9211:30;9277:32;9257:18;;;9250:60;9327:18;;13096:98:0;8997:354:1;13233:196:0;13345:4;;13312;;-1:-1:-1;;;;;13332:17:0;;;13345:4;;13332:17;:41;;;;-1:-1:-1;;;;;;13354:19:0;;;;;;:11;:19;;;;;;;;13353:20;13332:41;13329:71;;;13396:1;13375:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;;13417:4:0;13233:196;;;;:::o;13814:491::-;13926:7;;13905:4;;13926:7;;;-1:-1:-1;;;;;13926:7:0;:21;;:80;;-1:-1:-1;13960:7:0;;13951:55;;-1:-1:-1;;;13951:55:0;;-1:-1:-1;;;;;9744:15:1;;;13951:55:0;;;9726:34:1;9796:15;;;9776:18;;;9769:43;9828:18;;;9821:34;;;13960:7:0;;;;;;;;13951:28;;9661:18:1;;13951:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13925:100;;;;-1:-1:-1;14021:4:0;;-1:-1:-1;;;;;14011:14:0;;;14021:4;;14011:14;;13925:100;13922:240;;;14059:20;:18;:20::i;:::-;14049:6;:30;;:53;;;-1:-1:-1;;;;;;14083:19:0;;;;;;:11;:19;;;;;;;;14049:53;:79;;;-1:-1:-1;;;;;;14106:22:0;;;;;;:11;:22;;;;;;;;14049:79;14041:109;;;;-1:-1:-1;;;14041:109:0;;10318:2:1;14041:109:0;;;10300:21:1;10357:2;10337:18;;;10330:30;-1:-1:-1;;;10376:18:1;;;10369:47;10433:18;;14041:109:0;10116:341:1;14041:109:0;14190:14;:12;:14::i;:::-;14180:6;:24;;:47;;;-1:-1:-1;;;;;;14208:19:0;;;;;;:11;:19;;;;;;;;14180:47;:73;;;-1:-1:-1;;;;;;14231:22:0;;;;;;:11;:22;;;;;;;;14180:73;14172:103;;;;-1:-1:-1;;;14172:103:0;;10318:2:1;14172:103:0;;;10300:21:1;10357:2;10337:18;;;10330:30;-1:-1:-1;;;10376:18:1;;;10369:47;10433:18;;14172:103:0;10116:341:1;13437:197:0;13529:41;13544:6;13552:9;13563:6;13529:14;:41::i;:::-;13526:101;;;13572:29;13587:13;;13572:14;:29::i;:::-;13623:1;13603:9;:22;13437:197;;;:::o;13642:160::-;-1:-1:-1;;;;;13748:19:0;;13723:4;13748:19;;;:11;:19;;;;;;;;13747:20;:47;;;;-1:-1:-1;;;;;;;13772:22:0;;;;;:11;:22;;;;;;;;13771:23;;13642:160;-1:-1:-1;13642:160:0:o;16881:550::-;16967:7;17023:1;16990:30;17002:6;17010:9;16990:11;:30::i;:::-;:34;16987:422;;;17036:17;17056:59;17084:30;17096:6;17104:9;17084:11;:30::i;:::-;17067:11;;17056:23;;:6;;:10;:23::i;:59::-;17171:4;17153:24;;;;:9;:24;;;;;;17036:79;;-1:-1:-1;17153:39:0;;17036:79;17153:28;:39::i;:::-;17144:4;17126:24;;;;:9;:24;;;;;;;:66;;;;17208:42;;-1:-1:-1;;;;;17208:42:0;;;;;;;17240:9;1958:25:1;;1946:2;1931:18;;1812:177;17208:42:0;;;;;;;;17264:7;;:20;17261:108;;17286:81;17304:4;5260:42;17330:36;17358:7;;17330:23;17341:11;;17330:6;:10;;:23;;;;:::i;:36::-;17286:9;:81::i;:::-;17386:21;:6;17397:9;17386:10;:21::i;:::-;17379:28;;;;;16987:422;-1:-1:-1;17417:6:0;16881:550;-1:-1:-1;;16881:550:0:o;529:82::-;587:7;604:5;608:1;604;:5;:::i;6958:240::-;-1:-1:-1;;;;;8115:18:0;;7050:4;8115:18;;;:9;:18;;;;;;7091:6;-1:-1:-1;7067:116:0;;;-1:-1:-1;7101:7:0;:19;;-1:-1:-1;;;;;;7101:19:0;;-1:-1:-1;;;;;7101:19:0;;;;;;;;;;;;;7134:4;;;-1:-1:-1;7122:17:0;;;:11;:17;;;;;;;;:28;;;;;;;-1:-1:-1;;7122:45:0;;-1:-1:-1;7169:11:0;;7067:116;-1:-1:-1;7191:5:0;6958:240;;;;;:::o;15167:337::-;15317:13;;15307:4;15265;8115:18;;;:9;:18;;;;;;15265:4;;-1:-1:-1;15289:41:0;:67;;;;-1:-1:-1;15348:8:0;;;;15347:9;15289:67;:96;;;;-1:-1:-1;15374:11:0;;;;15289:96;:128;;;;-1:-1:-1;15403:14:0;;-1:-1:-1;;;15403:14:0;;;;15289:128;:166;;;;-1:-1:-1;;;;;;15436:19:0;;;;;;:11;:19;;;;;;;;15435:20;15289:166;:207;;;;-1:-1:-1;15473:23:0;15289:207;15282:214;15167:337;-1:-1:-1;;;;15167:337:0:o;15512:1048::-;6414:8;:15;;-1:-1:-1;;6414:15:0;6425:4;6414:15;;;;;;15649:14:::1;::::0;15631:12:::1;::::0;15607::::1;::::0;6414:8;;15606:66:::1;::::0;15670:1:::1;::::0;15607:57:::1;::::0;15649:14;;15607:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;15606:66::-;15583:89;;15683:32;15718:42;15747:12;15718:24;15729:12;;15718:6;:10;;:24;;;;:::i;:42::-;15683:77:::0;-1:-1:-1;15771:14:0::1;15788:36;:6:::0;15683:77;15788:10:::1;:36::i;:::-;15771:53:::0;-1:-1:-1;15860:21:0::1;15892:24;15771:53:::0;15892:16:::1;:24::i;:::-;15927:20;15950:41;:21;15976:14:::0;15950:25:::1;:41::i;:::-;15927:64;;16002:19;16023:48;16040:30;16057:12;;16040;:16;;:30;;;;:::i;:::-;16023:12:::0;;:16:::1;:48::i;:::-;16002:69;;16082:29;16114;16130:12;;16114:11;:15;;:29;;;;:::i;:::-;16082:61:::0;-1:-1:-1;16157:34:0;;16154:103:::1;;16193:61;16206:24;16232:21;16193:12;:61::i;:::-;16313:12;::::0;16267:20:::1;::::0;16290:36:::1;::::0;:18:::1;:11:::0;16306:1:::1;16290:15;:18::i;:36::-;16267:59:::0;-1:-1:-1;16340:16:0;;16337:68:::1;;16358:45;::::0;5351:42:::1;::::0;16358:45;::::1;;;::::0;16390:12;;16358:45:::1;::::0;;;16390:12;5351:42;16358:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16337:68;16442:21;16477:29:::0;;16474:79:::1;;16508:43;::::0;5436:42:::1;::::0;16508:43;::::1;;;::::0;16534:16;;16508:43:::1;::::0;;;16534:16;5436:42;16508:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16474:79;-1:-1:-1::0;;6434:8:0;:16;;-1:-1:-1;;6434:16:0;;;-1:-1:-1;;;;;;;;15512:1048:0:o;16568:305::-;-1:-1:-1;;;;;16670:13:0;;16647:7;16670:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;16687:16:0;;;;;;:5;:16;;;;;;;;16670:33;16667:76;;;16712:11;;:29;;16736:3;16712:15;:29::i;:::-;16705:36;;;;16667:76;16769:4;;-1:-1:-1;;;;;16769:4:0;;;16756:17;;;;16753:38;;-1:-1:-1;16782:7:0;;16775:14;;16753:38;16814:4;;-1:-1:-1;;;;;16814:4:0;;;16804:14;;;;16801:36;;-1:-1:-1;16827:8:0;;16820:15;;16801:36;-1:-1:-1;16854:11:0;;16568:305;;;;:::o;14654:505::-;14744:16;;;14758:1;14744:16;;;;;;;;14720:21;;14744:16;;;;;;;;;;-1:-1:-1;14744:16:0;14720:40;;14789:4;14771;14776:1;14771:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14771:23:0;;;:7;;;;;;;;;;:23;;;;14815:6;;:13;;;-1:-1:-1;;;14815:13:0;;;;:6;;;;;:11;;:13;;;;;14771:7;;14815:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14805:4;14810:1;14805:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14805:23:0;;;:7;;;;;;;;;;;:23;14843:15;;14839:313;;14907:6;;14875:53;;14892:4;;-1:-1:-1;;;;;14907:6:0;14916:11;14875:8;:53::i;:::-;14943:6;;:197;;-1:-1:-1;;;14943:197:0;;-1:-1:-1;;;;;14943:6:0;;;;:57;;:197;;15019:11;;14943:6;;15069:4;;15100;;15124:15;;14943:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14839:313;14709:450;14654:505;:::o;14313:333::-;14426:6;;14394:53;;14411:4;;-1:-1:-1;;;;;14426:6:0;14435:11;14394:8;:53::i;:::-;14458:6;;:180;;-1:-1:-1;;;14458:180:0;;14521:4;14458:180;;;12308:34:1;12358:18;;;12351:34;;;14458:6:0;12401:18:1;;;12394:34;;;12444:18;;;12437:34;5260:42:0;12487:19:1;;;12480:44;14622:15:0;12540:19:1;;;12533:35;-1:-1:-1;;;;;14458:6:0;;;;:22;;14488:9;;12242:19:1;;14458:180:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14313:333;;:::o;14:592:1:-;127:6;135;143;151;159;167;175;228:3;216:9;207:7;203:23;199:33;196:53;;;245:1;242;235:12;196:53;-1:-1:-1;;268:23:1;;;338:2;323:18;;310:32;;-1:-1:-1;389:2:1;374:18;;361:32;;440:2;425:18;;412:32;;-1:-1:-1;491:3:1;476:19;;463:33;;-1:-1:-1;543:3:1;528:19;;515:33;;-1:-1:-1;595:3:1;580:19;567:33;;-1:-1:-1;14:592:1;-1:-1:-1;14:592:1:o;611:548::-;723:4;752:2;781;770:9;763:21;813:6;807:13;856:6;851:2;840:9;836:18;829:34;881:1;891:140;905:6;902:1;899:13;891:140;;;1000:14;;;996:23;;990:30;966:17;;;985:2;962:26;955:66;920:10;;891:140;;;895:3;1080:1;1075:2;1066:6;1055:9;1051:22;1047:31;1040:42;1150:2;1143;1139:7;1134:2;1126:6;1122:15;1118:29;1107:9;1103:45;1099:54;1091:62;;;;611:548;;;;:::o;1164:131::-;-1:-1:-1;;;;;1239:31:1;;1229:42;;1219:70;;1285:1;1282;1275:12;1219:70;1164:131;:::o;1300:315::-;1368:6;1376;1429:2;1417:9;1408:7;1404:23;1400:32;1397:52;;;1445:1;1442;1435:12;1397:52;1484:9;1471:23;1503:31;1528:5;1503:31;:::i;:::-;1553:5;1605:2;1590:18;;;;1577:32;;-1:-1:-1;;;1300:315:1:o;1994:456::-;2071:6;2079;2087;2140:2;2128:9;2119:7;2115:23;2111:32;2108:52;;;2156:1;2153;2146:12;2108:52;2195:9;2182:23;2214:31;2239:5;2214:31;:::i;:::-;2264:5;-1:-1:-1;2321:2:1;2306:18;;2293:32;2334:33;2293:32;2334:33;:::i;:::-;1994:456;;2386:7;;-1:-1:-1;;;2440:2:1;2425:18;;;;2412:32;;1994:456::o;2455:247::-;2514:6;2567:2;2555:9;2546:7;2542:23;2538:32;2535:52;;;2583:1;2580;2573:12;2535:52;2622:9;2609:23;2641:31;2666:5;2641:31;:::i;2896:316::-;2973:6;2981;2989;3042:2;3030:9;3021:7;3017:23;3013:32;3010:52;;;3058:1;3055;3048:12;3010:52;-1:-1:-1;;3081:23:1;;;3151:2;3136:18;;3123:32;;-1:-1:-1;3202:2:1;3187:18;;;3174:32;;2896:316;-1:-1:-1;2896:316:1:o;3217:118::-;3303:5;3296:13;3289:21;3282:5;3279:32;3269:60;;3325:1;3322;3315:12;3340:382;3405:6;3413;3466:2;3454:9;3445:7;3441:23;3437:32;3434:52;;;3482:1;3479;3472:12;3434:52;3521:9;3508:23;3540:31;3565:5;3540:31;:::i;:::-;3590:5;-1:-1:-1;3647:2:1;3632:18;;3619:32;3660:30;3619:32;3660:30;:::i;:::-;3709:7;3699:17;;;3340:382;;;;;:::o;3935:388::-;4003:6;4011;4064:2;4052:9;4043:7;4039:23;4035:32;4032:52;;;4080:1;4077;4070:12;4032:52;4119:9;4106:23;4138:31;4163:5;4138:31;:::i;:::-;4188:5;-1:-1:-1;4245:2:1;4230:18;;4217:32;4258:33;4217:32;4258:33;:::i;4588:329::-;4790:2;4772:21;;;4829:1;4809:18;;;4802:29;-1:-1:-1;;;4862:2:1;4847:18;;4840:36;4908:2;4893:18;;4588:329::o;5335:127::-;5396:10;5391:3;5387:20;5384:1;5377:31;5427:4;5424:1;5417:15;5451:4;5448:1;5441:15;5467:168;5540:9;;;5571;;5588:15;;;5582:22;;5568:37;5558:71;;5609:18;;:::i;5640:217::-;5680:1;5706;5696:132;;5750:10;5745:3;5741:20;5738:1;5731:31;5785:4;5782:1;5775:15;5813:4;5810:1;5803:15;5696:132;-1:-1:-1;5842:9:1;;5640:217::o;7301:128::-;7368:9;;;7389:11;;;7386:37;;;7403:18;;:::i;9356:125::-;9421:9;;;9442:10;;;9439:36;;;9455:18;;:::i;9866:245::-;9933:6;9986:2;9974:9;9965:7;9961:23;9957:32;9954:52;;;10002:1;9999;9992:12;9954:52;10034:9;10028:16;10053:28;10075:5;10053:28;:::i;10594:127::-;10655:10;10650:3;10646:20;10643:1;10636:31;10686:4;10683:1;10676:15;10710:4;10707:1;10700:15;10726:251;10796:6;10849:2;10837:9;10828:7;10824:23;10820:32;10817:52;;;10865:1;10862;10855:12;10817:52;10897:9;10891:16;10916:31;10941:5;10916:31;:::i;10982:980::-;11244:4;11292:3;11281:9;11277:19;11323:6;11312:9;11305:25;11349:2;11387:6;11382:2;11371:9;11367:18;11360:34;11430:3;11425:2;11414:9;11410:18;11403:31;11454:6;11489;11483:13;11520:6;11512;11505:22;11558:3;11547:9;11543:19;11536:26;;11597:2;11589:6;11585:15;11571:29;;11618:1;11628:195;11642:6;11639:1;11636:13;11628:195;;;11707:13;;-1:-1:-1;;;;;11703:39:1;11691:52;;11798:15;;;;11763:12;;;;11739:1;11657:9;11628:195;;;-1:-1:-1;;;;;;;11879:32:1;;;;11874:2;11859:18;;11852:60;-1:-1:-1;;;11943:3:1;11928:19;11921:35;11840:3;10982:980;-1:-1:-1;;;10982:980:1:o;12579:306::-;12667:6;12675;12683;12736:2;12724:9;12715:7;12711:23;12707:32;12704:52;;;12752:1;12749;12742:12;12704:52;12781:9;12775:16;12765:26;;12831:2;12820:9;12816:18;12810:25;12800:35;;12875:2;12864:9;12860:18;12854:25;12844:35;;12579:306;;;;;:::o

Swarm Source

ipfs://a6bca769753f593560e49fd510c389965a0a1cf0d27d47c4f8943abaf103b152
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.