ETH Price: $3,395.64 (+1.75%)
Gas: 6 Gwei

Token

BABYDOGE2.0 (BABYDOGE2.0)
 

Overview

Max Total Supply

420,000,000,000,000,000 BABYDOGE2.0

Holders

190

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
BABYDOGE2

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-29
*/

// SPDX-License-Identifier: No

/*

    Telegram: https://t.me/BabyDoge2portal
    Twitter: https://twitter.com/babydoge2erc20
    Website: https://babydoge2.com

*/

pragma solidity = 0.8.19;

//--- Context ---//
abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

//--- Ownable ---//
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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 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 swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    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);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}



//--- Interface for ERC20 ---//
interface IERC20 {
    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);
}

//--- Contract v2 ---//
contract BABYDOGE2 is Context, Ownable, IERC20 {

    function totalSupply() external view override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply - balanceOf(address(DEAD)); }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } 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 allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }


    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private liquidityAdd;
    mapping (address => bool) private isLpPair;
    mapping (address => bool) private isPresaleAddress;
    mapping (address => bool) public isBlacklisted;
    mapping (address => uint256) private balance;


    uint256 constant public _totalSupply = 420_000_000_000_000_000 * 10**9;
    uint256 constant public swapThreshold = _totalSupply / 5_000;
    uint256 public buyfee = 100;
    uint256 public sellfee = 990;
    uint256 constant public transferfee = 0;
    uint256 private _deadline;

    uint256 private maxTx = _totalSupply / 50;
    uint256 private maxWallet = _totalSupply / 50;
    bool private avoidMaxTxLimits = false;

    uint256 constant public fee_denominator = 1_000;
    bool private canSwapFees = true;
    address payable private marketingAddress = payable(0x0ce3a660962D07F8B4b53011c9D4119D06975aEA);


    IRouter02 public swapRouter;
    string constant private _name = "BABYDOGE2.0";
    string constant private _symbol = "BABYDOGE2.0";
    uint8 constant private _decimals = 9;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public lpPair;
    bool public isTradingEnabled = false;
    bool private inSwap;

        modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }


    event _enableTrading();
    event _setPresaleAddress(address account, bool enabled);
    event _toggleCanSwapFees(bool enabled);
    event _changePair(address newLpPair);
    event _changeWallets(address marketing);


    constructor () {
        _noFee[msg.sender] = true;

        if (block.chainid == 56) {
            swapRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if (block.chainid == 97) {
            swapRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else if (block.chainid == 43114) {
            swapRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4);
        } else if (block.chainid == 250) {
            swapRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
        } else {
            revert("Chain not valid");
        }
        liquidityAdd[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        lpPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this));
        isLpPair[lpPair] = true;
        _approve(msg.sender, address(swapRouter), type(uint256).max);
        _approve(address(this), address(swapRouter), type(uint256).max);
    }
    
    receive() external payable {}

        function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

        function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

        function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
    }

        function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }
    function isNoFeeWallet(address account) external view returns(bool) {
        return _noFee[account];
    }

    function setNoFeeWallet(address account, bool enabled) public onlyOwner {
        _noFee[account] = enabled;
    }

    function isLimitedAddress(address ins, address out) internal view returns (bool) {

        bool isLimited = ins != owner()
            && out != owner() && msg.sender != owner()
            && !liquidityAdd[ins]  && !liquidityAdd[out] && out != DEAD && out != address(0) && out != address(this);
            return isLimited;
    }

    function is_buy(address ins, address out) internal view returns (bool) {
        bool _is_buy = !isLpPair[out] && isLpPair[ins];
        return _is_buy;
    }

    function is_sell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    } 

    function canSwap(address ins, address out) internal view returns (bool) {
        bool canswap = canSwapFees && !isPresaleAddress[ins] && !isPresaleAddress[out];

        return canswap;
    }

    function changeLpPair(address newPair) external onlyOwner {
        isLpPair[newPair] = true;
        emit _changePair(newPair);
    }

    function toggleCanSwapFees(bool yesno) external onlyOwner {
        require(canSwapFees != yesno,"Bool is the same");
        canSwapFees = yesno;
        emit _toggleCanSwapFees(yesno);
    }

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBlacklisted[from],"This account is blacklisted");

        bool launchtax = isLimitedAddress(from,to) && isTradingEnabled && block.number <= _deadline;

        if (isLimitedAddress(from,to)) {
            require(isTradingEnabled,"Trading is not enabled");
            if(!avoidMaxTxLimits) {require(amount <= maxTx,"maxTx is 2%");
            if(!isLpPair[to] && from != address(this) && to != address(this))  {require(balanceOf(to) + amount <= maxWallet,"maxWallet is 2%");}}
        }


        if(is_sell(from, to) &&  !inSwap && canSwap(from, to)) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= swapThreshold) { internalSwap(contractTokenBalance); }
        }

        if (_noFee[from] || _noFee[to]){
            takeFee = false;
        }

        balance[from] -= amount; uint256 amountAfterFee = (takeFee) ? takeTaxes(from, is_buy(from, to), is_sell(from, to), amount) : amount;
        balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        if(isLpPair[from] && launchtax && !isLpPair[to] && to != address(this)) {
            isBlacklisted[to] = true;
        }

        return true;

    }

    function unBlacklist(address account) external onlyOwner {
        isBlacklisted[account] = false;
    }

    function blacklist(address account) external onlyOwner {
        isBlacklisted[account] = true;
    }

    function zeroLimits() external onlyOwner {
            require(!avoidMaxTxLimits,"Already initalized");
            maxTx = _totalSupply;
            maxWallet = _totalSupply;
            avoidMaxTxLimits = true;
    }

    function changeWallets(address marketing) external onlyOwner {
        marketingAddress = payable(marketing);
        emit _changeWallets(marketing);
    }


    function takeTaxes(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = buyfee;  else if (issell)  fee = sellfee;  else  fee = transferfee; 
        if (fee == 0)  return amount;
        uint256 feeAmount = amount * fee / fee_denominator;
        if (feeAmount > 0) {

            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            
        }
        return amount - feeAmount;
    }

    function internalSwap(uint256 contractTokenBalance) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }
        bool success;

        if(address(this).balance > 0) {(success,) = marketingAddress.call{value: address(this).balance, gas: 35000}("");}

    }

        function setPresaleAddress(address presale, bool yesno) external onlyOwner {
            require(isPresaleAddress[presale] != yesno,"Same bool");
            isPresaleAddress[presale] = yesno;
            _noFee[presale] = yesno;
            liquidityAdd[presale] = yesno;
            emit _setPresaleAddress(presale, yesno);
        }

        function returnLimits() external view returns(uint256 maxtx, uint256 maxwallet) {
            return(maxTx, maxWallet);
        }

        function changeTaxes(uint256 buy, uint256 sell) external onlyOwner {
            buyfee = buy * 10;
            sellfee = sell * 10;
        }

        function changeLimits(uint256 amount) external onlyOwner {
            maxTx = amount;
            maxWallet = amount;
        }

        function enableTrading(uint256 deadline) external onlyOwner {
            require(deadline < 6,"Deadline too high");
            require(!isTradingEnabled, "Trading already enabled");
            isTradingEnabled = true;
            _deadline = block.number + deadline;
            emit _enableTrading();
        }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLpPair","type":"address"}],"name":"_changePair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketing","type":"address"}],"name":"_changeWallets","type":"event"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_setPresaleAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_toggleCanSwapFees","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"changeLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"changeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnLimits","outputs":[{"internalType":"uint256","name":"maxtx","type":"uint256"},{"internalType":"uint256","name":"maxwallet","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presale","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"setPresaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"bool","name":"yesno","type":"bool"}],"name":"toggleCanSwapFees","outputs":[],"stateMutability":"nonpayable","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260646008556103de6009556200002860326b015b6a759f4835dc2400000062000571565b600b556200004460326b015b6a759f4835dc2400000062000571565b600c55600d80546001600160b01b031916750ce3a660962d07f8b4b53011c9d4119d06975aea0100179055600f805460ff60a01b191690553480156200008957600080fd5b50620000953362000459565b336000908152600260205260409020805460ff1916600117905546603803620000e457600e80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000211565b466061036200011957600e80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d117905562000211565b4660011480620001295750466004145b80620001355750466003145b156200016757600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000211565b4661a86a036200019d57600e80546001600160a01b0319167360ae616a2155ee3d9a68541ba4544862310933d417905562000211565b4660fa03620001d257600e80546001600160a01b03191673f491e7b69e4244ad4002bc14e878a34207e38c2917905562000211565b60405162461bcd60e51b815260206004820152600f60248201526e10da185a5b881b9bdd081d985b1a59608a1b60448201526064015b60405180910390fd5b336000818152600360209081526040808320805460ff19166001179055600782528083206b015b6a759f4835dc240000009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f0919062000594565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000352573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000378919062000594565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620003c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003eb919062000594565b600f80546001600160a01b0319166001600160a01b039283169081179091556000908152600460205260409020805460ff19166001179055600e546200043791339116600019620004a9565b600e54620004539030906001600160a01b0316600019620004a9565b620005c6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620004f75760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000208565b6001600160a01b038216620005455760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000208565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b6000826200058f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005a757600080fd5b81516001600160a01b0381168114620005bf57600080fd5b9392505050565b611d5280620005d66000396000f3fe60806040526004361061021e5760003560e01c8063452ed4f111610123578063c31c9c07116100ab578063e9451f5f1161006f578063e9451f5f14610644578063f2fde38b1461065a578063f9f92be41461067a578063fe2314d61461069a578063fe575a87146106ba57600080fd5b8063c31c9c0714610588578063c4ab12b5146105a8578063d5914dc0146105c8578063dc9d75b0146105e8578063dd62ed3e146105fe57600080fd5b806382aa7c68116100f257806382aa7c681461052a578063893d20e81461054a5780638da5cb5b1461054a57806395d89b41146102b1578063a9059cbb1461056857600080fd5b8063452ed4f1146104aa57806354de7bee146104ca57806370a08231146104df578063715018a61461051557600080fd5b80631dc36945116101a65780632cd077b5116101755780632cd077b514610406578063313ce5671461042e5780633cd17c961461044a5780633eaaf86b1461046a5780633f2e917c1461048a57600080fd5b80631dc36945146103825780631f91af651461039857806323b872dd146103ad57806327889862146103cd57600080fd5b8063095ea7b3116101ed578063095ea7b3146102eb5780630faba5541461030b578063111a60b01461032d57806318160ddd1461034d5780631a8952661461036257600080fd5b806303fd2a451461022a5780630445b6671461025d578063064a59d01461028057806306fdde03146102b157600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024061dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026957600080fd5b506102726106ea565b604051908152602001610254565b34801561028c57600080fd5b50600f546102a190600160a01b900460ff1681565b6040519015158152602001610254565b3480156102bd57600080fd5b50604080518082018252600b81526a042414259444f4745322e360ac1b602082015290516102549190611a01565b3480156102f757600080fd5b506102a1610306366004611a64565b610705565b34801561031757600080fd5b5061032b610326366004611aa5565b61071c565b005b34801561033957600080fd5b5061032b610348366004611ada565b61077a565b34801561035957600080fd5b5061027261084d565b34801561036e57600080fd5b5061032b61037d366004611afc565b610897565b34801561038e57600080fd5b5061027260085481565b3480156103a457600080fd5b5061032b6108e2565b3480156103b957600080fd5b506102a16103c8366004611b19565b610978565b3480156103d957600080fd5b506102a16103e8366004611afc565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561041257600080fd5b50600b54600c5460408051928352602083019190915201610254565b34801561043a57600080fd5b5060405160098152602001610254565b34801561045657600080fd5b5061032b610465366004611aa5565b6109f0565b34801561047657600080fd5b506102726b015b6a759f4835dc2400000081565b34801561049657600080fd5b5061032b6104a5366004611b5a565b610afd565b3480156104b657600080fd5b50600f54610240906001600160a01b031681565b3480156104d657600080fd5b50610272600081565b3480156104eb57600080fd5b506102726104fa366004611afc565b6001600160a01b031660009081526007602052604090205490565b34801561052157600080fd5b5061032b610b31565b34801561053657600080fd5b5061032b610545366004611b5a565b610b67565b34801561055657600080fd5b506000546001600160a01b0316610240565b34801561057457600080fd5b506102a1610583366004611a64565b610c7b565b34801561059457600080fd5b50600e54610240906001600160a01b031681565b3480156105b457600080fd5b5061032b6105c3366004611afc565b610c92565b3480156105d457600080fd5b5061032b6105e3366004611afc565b610d14565b3480156105f457600080fd5b506102726103e881565b34801561060a57600080fd5b50610272610619366004611b73565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561065057600080fd5b5061027260095481565b34801561066657600080fd5b5061032b610675366004611afc565b610d92565b34801561068657600080fd5b5061032b610695366004611afc565b610e2d565b3480156106a657600080fd5b5061032b6106b5366004611bac565b610e7b565b3480156106c657600080fd5b506102a16106d5366004611afc565b60066020526000908152604090205460ff1681565b6107026113886b015b6a759f4835dc24000000611be4565b81565b6000610712338484610ec5565b5060015b92915050565b6000546001600160a01b0316331461074f5760405162461bcd60e51b815260040161074690611c06565b60405180910390fd5b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107a45760405162461bcd60e51b815260040161074690611c06565b801515600d60019054906101000a900460ff161515036107f95760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b6044820152606401610746565b600d80548215156101000261ff00199091161790556040517f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e89061084290831515815260200190565b60405180910390a150565b600061dead60005260076020527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d54610892906b015b6a759f4835dc24000000611c3b565b905090565b6000546001600160a01b031633146108c15760405162461bcd60e51b815260040161074690611c06565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b0316331461090c5760405162461bcd60e51b815260040161074690611c06565b600d5460ff16156109545760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b6044820152606401610746565b6b015b6a759f4835dc24000000600b819055600c55600d805460ff19166001179055565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019146109dd576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906109d7908490611c3b565b90915550505b6109e8848484610f89565b949350505050565b6000546001600160a01b03163314610a1a5760405162461bcd60e51b815260040161074690611c06565b6001600160a01b03821660009081526005602052604090205481151560ff909116151503610a765760405162461bcd60e51b815260206004820152600960248201526814d85b5948189bdbdb60ba1b6044820152606401610746565b6001600160a01b0382166000818152600560209081526040808320805486151560ff1991821681179092556002845282852080548216831790556003845293829020805490941681179093558051938452908301919091527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b764513910160405180910390a15050565b6000546001600160a01b03163314610b275760405162461bcd60e51b815260040161074690611c06565b600b819055600c55565b6000546001600160a01b03163314610b5b5760405162461bcd60e51b815260040161074690611c06565b610b6560006114da565b565b6000546001600160a01b03163314610b915760405162461bcd60e51b815260040161074690611c06565b60068110610bd55760405162461bcd60e51b8152602060048201526011602482015270088cac2c8d8d2dcca40e8dede40d0d2ced607b1b6044820152606401610746565b600f54600160a01b900460ff1615610c2f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610746565b600f805460ff60a01b1916600160a01b179055610c4c8143611c4e565b600a556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686890600090a150565b6000610c88338484610f89565b5060019392505050565b6000546001600160a01b03163314610cbc5760405162461bcd60e51b815260040161074690611c06565b600d805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040519081527fb074145dac98cbf04c5e3a6d58501e8e3aa6eb107008ec598af2309ae5179dfe90602001610842565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b815260040161074690611c06565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f79101610842565b6000546001600160a01b03163314610dbc5760405162461bcd60e51b815260040161074690611c06565b6001600160a01b038116610e215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610746565b610e2a816114da565b50565b6000546001600160a01b03163314610e575760405162461bcd60e51b815260040161074690611c06565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610ea55760405162461bcd60e51b815260040161074690611c06565b610eb082600a611c61565b600855610ebe81600a611c61565b6009555050565b6001600160a01b038316610f115760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610746565b6001600160a01b038216610f5d5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610746565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610fef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610746565b6001600160a01b0385166110535760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610746565b600083116110b55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610746565b6001600160a01b03851660009081526006602052604090205460ff161561111e5760405162461bcd60e51b815260206004820152601b60248201527f54686973206163636f756e7420697320626c61636b6c697374656400000000006044820152606401610746565b600061112a868661152a565b801561113f5750600f54600160a01b900460ff165b801561114d5750600a544311155b9050611159868661152a565b156112b357600f54600160a01b900460ff166111b05760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610746565b600d5460ff166112b357600b548411156111fa5760405162461bcd60e51b815260206004820152600b60248201526a6d6178547820697320322560a81b6044820152606401610746565b6001600160a01b03851660009081526004602052604090205460ff1615801561122c57506001600160a01b0386163014155b801561124157506001600160a01b0385163014155b156112b357600c5484611269876001600160a01b031660009081526007602052604090205490565b6112739190611c4e565b11156112b35760405162461bcd60e51b815260206004820152600f60248201526e6d617857616c6c657420697320322560881b6044820152606401610746565b6112bd8686611616565b80156112d35750600f54600160a81b900460ff16155b80156112e457506112e4868661165d565b1561132257306000908152600760205260409020546113116113886b015b6a759f4835dc24000000611be4565b811061132057611320816116bc565b505b6001600160a01b03861660009081526002602052604090205460ff168061136157506001600160a01b03851660009081526002602052604090205460ff165b1561136b57600091505b6001600160a01b03861660009081526007602052604081208054869290611393908490611c3b565b9091555060009050826113a657846113c4565b6113c4876113b489896118e9565b6113be8a8a611616565b88611930565b6001600160a01b0387166000908152600760205260408120805492935083929091906113f1908490611c4e565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161143d91815260200190565b60405180910390a36001600160a01b03871660009081526004602052604090205460ff16801561146a5750815b801561148f57506001600160a01b03861660009081526004602052604090205460ff16155b80156114a457506001600160a01b0386163014155b156114cd576001600160a01b0386166000908152600660205260409020805460ff191660011790555b5060019695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008061153f6000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561156e57506000546001600160a01b03848116911614155b801561158557506000546001600160a01b03163314155b80156115aa57506001600160a01b03841660009081526003602052604090205460ff16155b80156115cf57506001600160a01b03831660009081526003602052604090205460ff16155b80156115e657506001600160a01b03831661dead14155b80156115fa57506001600160a01b03831615155b80156109e857506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff1680156109e857505050506001600160a01b031660009081526004602052604090205460ff161590565b600d546000908190610100900460ff16801561169257506001600160a01b03841660009081526005602052604090205460ff16155b80156109e8575050506001600160a01b031660009081526005602052604090205460ff1615919050565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061170457611704611c78565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561175d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117819190611c8e565b8160018151811061179457611794611c78565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600e549094168252929091522054600019146117fe57306000908152600160209081526040808320600e546001600160a01b03168452909152902060001990555b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611837908590600090869030904290600401611cab565b600060405180830381600087803b15801561185157600080fd5b505af1925050508015611862575060015b61186c57506118d9565b600047156118d657600d54604051620100009091046001600160a01b0316906188b89047906000818181858888f193505050503d80600081146118cb576040519150601f19603f3d011682016040523d82523d6000602084013e6118d0565b606091505b50909150505b50505b50600f805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff161580156109e857505050506001600160a01b031660009081526004602052604090205460ff1690565b60008084156119425750600854611955565b83156119515750600954611955565b5060005b8060000361196657829150506109e8565b60006103e86119758386611c61565b61197f9190611be4565b905080156119ec5730600090815260076020526040812080548392906119a6908490611c4e565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6119f68185611c3b565b979650505050505050565b600060208083528351808285015260005b81811015611a2e57858101830151858201604001528201611a12565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e2a57600080fd5b60008060408385031215611a7757600080fd5b8235611a8281611a4f565b946020939093013593505050565b80358015158114611aa057600080fd5b919050565b60008060408385031215611ab857600080fd5b8235611ac381611a4f565b9150611ad160208401611a90565b90509250929050565b600060208284031215611aec57600080fd5b611af582611a90565b9392505050565b600060208284031215611b0e57600080fd5b8135611af581611a4f565b600080600060608486031215611b2e57600080fd5b8335611b3981611a4f565b92506020840135611b4981611a4f565b929592945050506040919091013590565b600060208284031215611b6c57600080fd5b5035919050565b60008060408385031215611b8657600080fd5b8235611b9181611a4f565b91506020830135611ba181611a4f565b809150509250929050565b60008060408385031215611bbf57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b600082611c0157634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561071657610716611bce565b8082018082111561071657610716611bce565b808202811582820484141761071657610716611bce565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ca057600080fd5b8151611af581611a4f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cfb5784516001600160a01b031683529383019391830191600101611cd6565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220030fd833c3f81726c8ec0491745d4b6959279b85291f061fd9ca09aead2a1b9b64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c8063452ed4f111610123578063c31c9c07116100ab578063e9451f5f1161006f578063e9451f5f14610644578063f2fde38b1461065a578063f9f92be41461067a578063fe2314d61461069a578063fe575a87146106ba57600080fd5b8063c31c9c0714610588578063c4ab12b5146105a8578063d5914dc0146105c8578063dc9d75b0146105e8578063dd62ed3e146105fe57600080fd5b806382aa7c68116100f257806382aa7c681461052a578063893d20e81461054a5780638da5cb5b1461054a57806395d89b41146102b1578063a9059cbb1461056857600080fd5b8063452ed4f1146104aa57806354de7bee146104ca57806370a08231146104df578063715018a61461051557600080fd5b80631dc36945116101a65780632cd077b5116101755780632cd077b514610406578063313ce5671461042e5780633cd17c961461044a5780633eaaf86b1461046a5780633f2e917c1461048a57600080fd5b80631dc36945146103825780631f91af651461039857806323b872dd146103ad57806327889862146103cd57600080fd5b8063095ea7b3116101ed578063095ea7b3146102eb5780630faba5541461030b578063111a60b01461032d57806318160ddd1461034d5780631a8952661461036257600080fd5b806303fd2a451461022a5780630445b6671461025d578063064a59d01461028057806306fdde03146102b157600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024061dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026957600080fd5b506102726106ea565b604051908152602001610254565b34801561028c57600080fd5b50600f546102a190600160a01b900460ff1681565b6040519015158152602001610254565b3480156102bd57600080fd5b50604080518082018252600b81526a042414259444f4745322e360ac1b602082015290516102549190611a01565b3480156102f757600080fd5b506102a1610306366004611a64565b610705565b34801561031757600080fd5b5061032b610326366004611aa5565b61071c565b005b34801561033957600080fd5b5061032b610348366004611ada565b61077a565b34801561035957600080fd5b5061027261084d565b34801561036e57600080fd5b5061032b61037d366004611afc565b610897565b34801561038e57600080fd5b5061027260085481565b3480156103a457600080fd5b5061032b6108e2565b3480156103b957600080fd5b506102a16103c8366004611b19565b610978565b3480156103d957600080fd5b506102a16103e8366004611afc565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561041257600080fd5b50600b54600c5460408051928352602083019190915201610254565b34801561043a57600080fd5b5060405160098152602001610254565b34801561045657600080fd5b5061032b610465366004611aa5565b6109f0565b34801561047657600080fd5b506102726b015b6a759f4835dc2400000081565b34801561049657600080fd5b5061032b6104a5366004611b5a565b610afd565b3480156104b657600080fd5b50600f54610240906001600160a01b031681565b3480156104d657600080fd5b50610272600081565b3480156104eb57600080fd5b506102726104fa366004611afc565b6001600160a01b031660009081526007602052604090205490565b34801561052157600080fd5b5061032b610b31565b34801561053657600080fd5b5061032b610545366004611b5a565b610b67565b34801561055657600080fd5b506000546001600160a01b0316610240565b34801561057457600080fd5b506102a1610583366004611a64565b610c7b565b34801561059457600080fd5b50600e54610240906001600160a01b031681565b3480156105b457600080fd5b5061032b6105c3366004611afc565b610c92565b3480156105d457600080fd5b5061032b6105e3366004611afc565b610d14565b3480156105f457600080fd5b506102726103e881565b34801561060a57600080fd5b50610272610619366004611b73565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561065057600080fd5b5061027260095481565b34801561066657600080fd5b5061032b610675366004611afc565b610d92565b34801561068657600080fd5b5061032b610695366004611afc565b610e2d565b3480156106a657600080fd5b5061032b6106b5366004611bac565b610e7b565b3480156106c657600080fd5b506102a16106d5366004611afc565b60066020526000908152604090205460ff1681565b6107026113886b015b6a759f4835dc24000000611be4565b81565b6000610712338484610ec5565b5060015b92915050565b6000546001600160a01b0316331461074f5760405162461bcd60e51b815260040161074690611c06565b60405180910390fd5b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107a45760405162461bcd60e51b815260040161074690611c06565b801515600d60019054906101000a900460ff161515036107f95760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b6044820152606401610746565b600d80548215156101000261ff00199091161790556040517f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e89061084290831515815260200190565b60405180910390a150565b600061dead60005260076020527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d54610892906b015b6a759f4835dc24000000611c3b565b905090565b6000546001600160a01b031633146108c15760405162461bcd60e51b815260040161074690611c06565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b0316331461090c5760405162461bcd60e51b815260040161074690611c06565b600d5460ff16156109545760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b6044820152606401610746565b6b015b6a759f4835dc24000000600b819055600c55600d805460ff19166001179055565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019146109dd576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906109d7908490611c3b565b90915550505b6109e8848484610f89565b949350505050565b6000546001600160a01b03163314610a1a5760405162461bcd60e51b815260040161074690611c06565b6001600160a01b03821660009081526005602052604090205481151560ff909116151503610a765760405162461bcd60e51b815260206004820152600960248201526814d85b5948189bdbdb60ba1b6044820152606401610746565b6001600160a01b0382166000818152600560209081526040808320805486151560ff1991821681179092556002845282852080548216831790556003845293829020805490941681179093558051938452908301919091527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b764513910160405180910390a15050565b6000546001600160a01b03163314610b275760405162461bcd60e51b815260040161074690611c06565b600b819055600c55565b6000546001600160a01b03163314610b5b5760405162461bcd60e51b815260040161074690611c06565b610b6560006114da565b565b6000546001600160a01b03163314610b915760405162461bcd60e51b815260040161074690611c06565b60068110610bd55760405162461bcd60e51b8152602060048201526011602482015270088cac2c8d8d2dcca40e8dede40d0d2ced607b1b6044820152606401610746565b600f54600160a01b900460ff1615610c2f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610746565b600f805460ff60a01b1916600160a01b179055610c4c8143611c4e565b600a556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686890600090a150565b6000610c88338484610f89565b5060019392505050565b6000546001600160a01b03163314610cbc5760405162461bcd60e51b815260040161074690611c06565b600d805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040519081527fb074145dac98cbf04c5e3a6d58501e8e3aa6eb107008ec598af2309ae5179dfe90602001610842565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b815260040161074690611c06565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f79101610842565b6000546001600160a01b03163314610dbc5760405162461bcd60e51b815260040161074690611c06565b6001600160a01b038116610e215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610746565b610e2a816114da565b50565b6000546001600160a01b03163314610e575760405162461bcd60e51b815260040161074690611c06565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610ea55760405162461bcd60e51b815260040161074690611c06565b610eb082600a611c61565b600855610ebe81600a611c61565b6009555050565b6001600160a01b038316610f115760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610746565b6001600160a01b038216610f5d5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610746565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610fef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610746565b6001600160a01b0385166110535760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610746565b600083116110b55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610746565b6001600160a01b03851660009081526006602052604090205460ff161561111e5760405162461bcd60e51b815260206004820152601b60248201527f54686973206163636f756e7420697320626c61636b6c697374656400000000006044820152606401610746565b600061112a868661152a565b801561113f5750600f54600160a01b900460ff165b801561114d5750600a544311155b9050611159868661152a565b156112b357600f54600160a01b900460ff166111b05760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610746565b600d5460ff166112b357600b548411156111fa5760405162461bcd60e51b815260206004820152600b60248201526a6d6178547820697320322560a81b6044820152606401610746565b6001600160a01b03851660009081526004602052604090205460ff1615801561122c57506001600160a01b0386163014155b801561124157506001600160a01b0385163014155b156112b357600c5484611269876001600160a01b031660009081526007602052604090205490565b6112739190611c4e565b11156112b35760405162461bcd60e51b815260206004820152600f60248201526e6d617857616c6c657420697320322560881b6044820152606401610746565b6112bd8686611616565b80156112d35750600f54600160a81b900460ff16155b80156112e457506112e4868661165d565b1561132257306000908152600760205260409020546113116113886b015b6a759f4835dc24000000611be4565b811061132057611320816116bc565b505b6001600160a01b03861660009081526002602052604090205460ff168061136157506001600160a01b03851660009081526002602052604090205460ff165b1561136b57600091505b6001600160a01b03861660009081526007602052604081208054869290611393908490611c3b565b9091555060009050826113a657846113c4565b6113c4876113b489896118e9565b6113be8a8a611616565b88611930565b6001600160a01b0387166000908152600760205260408120805492935083929091906113f1908490611c4e565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161143d91815260200190565b60405180910390a36001600160a01b03871660009081526004602052604090205460ff16801561146a5750815b801561148f57506001600160a01b03861660009081526004602052604090205460ff16155b80156114a457506001600160a01b0386163014155b156114cd576001600160a01b0386166000908152600660205260409020805460ff191660011790555b5060019695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008061153f6000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561156e57506000546001600160a01b03848116911614155b801561158557506000546001600160a01b03163314155b80156115aa57506001600160a01b03841660009081526003602052604090205460ff16155b80156115cf57506001600160a01b03831660009081526003602052604090205460ff16155b80156115e657506001600160a01b03831661dead14155b80156115fa57506001600160a01b03831615155b80156109e857506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff1680156109e857505050506001600160a01b031660009081526004602052604090205460ff161590565b600d546000908190610100900460ff16801561169257506001600160a01b03841660009081526005602052604090205460ff16155b80156109e8575050506001600160a01b031660009081526005602052604090205460ff1615919050565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061170457611704611c78565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561175d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117819190611c8e565b8160018151811061179457611794611c78565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600e549094168252929091522054600019146117fe57306000908152600160209081526040808320600e546001600160a01b03168452909152902060001990555b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611837908590600090869030904290600401611cab565b600060405180830381600087803b15801561185157600080fd5b505af1925050508015611862575060015b61186c57506118d9565b600047156118d657600d54604051620100009091046001600160a01b0316906188b89047906000818181858888f193505050503d80600081146118cb576040519150601f19603f3d011682016040523d82523d6000602084013e6118d0565b606091505b50909150505b50505b50600f805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff161580156109e857505050506001600160a01b031660009081526004602052604090205460ff1690565b60008084156119425750600854611955565b83156119515750600954611955565b5060005b8060000361196657829150506109e8565b60006103e86119758386611c61565b61197f9190611be4565b905080156119ec5730600090815260076020526040812080548392906119a6908490611c4e565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6119f68185611c3b565b979650505050505050565b600060208083528351808285015260005b81811015611a2e57858101830151858201604001528201611a12565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e2a57600080fd5b60008060408385031215611a7757600080fd5b8235611a8281611a4f565b946020939093013593505050565b80358015158114611aa057600080fd5b919050565b60008060408385031215611ab857600080fd5b8235611ac381611a4f565b9150611ad160208401611a90565b90509250929050565b600060208284031215611aec57600080fd5b611af582611a90565b9392505050565b600060208284031215611b0e57600080fd5b8135611af581611a4f565b600080600060608486031215611b2e57600080fd5b8335611b3981611a4f565b92506020840135611b4981611a4f565b929592945050506040919091013590565b600060208284031215611b6c57600080fd5b5035919050565b60008060408385031215611b8657600080fd5b8235611b9181611a4f565b91506020830135611ba181611a4f565b809150509250929050565b60008060408385031215611bbf57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b600082611c0157634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561071657610716611bce565b8082018082111561071657610716611bce565b808202811582820484141761071657610716611bce565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ca057600080fd5b8151611af581611a4f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cfb5784516001600160a01b031683529383019391830191600101611cd6565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220030fd833c3f81726c8ec0491745d4b6959279b85291f061fd9ca09aead2a1b9b64736f6c63430008130033

Deployed Bytecode Sourcemap

5016:10963:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7090:73;;;;;;;;;;;;7121:42;7090:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;7090:73:0;;;;;;;;6348:60;;;;;;;;;;;;;:::i;:::-;;;368:25:1;;;356:2;341:18;6348:60:0;222:177:1;7198:36:0;;;;;;;;;;-1:-1:-1;7198:36:0;;;;-1:-1:-1;;;7198:36:0;;;;;;;;;569:14:1;;562:22;544:41;;532:2;517:18;7198:36:0;404:187:1;5443:80:0;;;;;;;;;;-1:-1:-1;5515:5:0;;;;;;;;;;;-1:-1:-1;;;5515:5:0;;;;5443:80;;;;5515:5;5443:80;:::i;9048:161::-;;;;;;;;;;-1:-1:-1;9048:161:0;;;;;:::i;:::-;;:::i;9923:116::-;;;;;;;;;;-1:-1:-1;9923:116:0;;;;;:::i;:::-;;:::i;:::-;;11085:196;;;;;;;;;;-1:-1:-1;11085:196:0;;;;;:::i;:::-;;:::i;5072:152::-;;;;;;;;;;;;;:::i;12884:106::-;;;;;;;;;;-1:-1:-1;12884:106:0;;;;;:::i;:::-;;:::i;6415:27::-;;;;;;;;;;;;;;;;13109:223;;;;;;;;;;;;;:::i;9494:306::-;;;;;;;;;;-1:-1:-1;9494:306:0;;;;;:::i;:::-;;:::i;9806:109::-;;;;;;;;;;-1:-1:-1;9806:109:0;;;;;:::i;:::-;-1:-1:-1;;;;;9892:15:0;9868:4;9892:15;;;:6;:15;;;;;;;;;9806:109;15213:131;;;;;;;;;;-1:-1:-1;15315:5:0;;15322:9;;15213:131;;;3162:25:1;;;3218:2;3203:18;;3196:34;;;;3135:18;15213:131:0;2988:248:1;5230:117:0;;;;;;;;;;-1:-1:-1;5230:117:0;;7082:1;3383:36:1;;3371:2;3356:18;5230:117:0;3241:184:1;14860:341:0;;;;;;;;;;-1:-1:-1;14860:341:0;;;;;:::i;:::-;;:::i;6271:70::-;;;;;;;;;;;;6310:31;6271:70;;15513:131;;;;;;;;;;-1:-1:-1;15513:131:0;;;;;:::i;:::-;;:::i;7170:21::-;;;;;;;;;;-1:-1:-1;7170:21:0;;;;-1:-1:-1;;;;;7170:21:0;;;6484:39;;;;;;;;;;;;6522:1;6484:39;;5754:117;;;;;;;;;;-1:-1:-1;5754:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;5847:16:0;5820:7;5847:16;;;:7;:16;;;;;;;5754:117;993:94;;;;;;;;;;;;;:::i;15656:320::-;;;;;;;;;;-1:-1:-1;15656:320:0;;;;;:::i;:::-;;:::i;5529:80::-;;;;;;;;;;-1:-1:-1;5581:7:0;843:6;-1:-1:-1;;;;;843:6:0;5529:80;5072:152;8871:165;;;;;;;;;;-1:-1:-1;8871:165:0;;;;;:::i;:::-;;:::i;6907:27::-;;;;;;;;;;-1:-1:-1;6907:27:0;;;;-1:-1:-1;;;;;6907:27:0;;;13340:158;;;;;;;;;;-1:-1:-1;13340:158:0;;;;;:::i;:::-;;:::i;10940:137::-;;;;;;;;;;-1:-1:-1;10940:137:0;;;;;:::i;:::-;;:::i;6710:47::-;;;;;;;;;;;;6752:5;6710:47;;5615:133;;;;;;;;;;-1:-1:-1;5615:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5717:19:0;;;5699:7;5717:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5615:133;6449:28;;;;;;;;;;;;;;;;1095:192;;;;;;;;;;-1:-1:-1;1095:192:0;;;;;:::i;:::-;;:::i;12998:103::-;;;;;;;;;;-1:-1:-1;12998:103:0;;;;;:::i;:::-;;:::i;15356:145::-;;;;;;;;;;-1:-1:-1;15356:145:0;;;;;:::i;:::-;;:::i;6163:46::-;;;;;;;;;;-1:-1:-1;6163:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6348:60;6388:20;6403:5;6310:31;6388:20;:::i;:::-;6348:60;:::o;9048:161::-;9125:4;9142:37;9151:10;9163:7;9172:6;9142:8;:37::i;:::-;-1:-1:-1;9197:4:0;9048:161;;;;;:::o;9923:116::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10006:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:25;;-1:-1:-1;;10006:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9923:116::o;11085:196::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;11177:5:::1;11162:20;;:11;;;;;;;;;;;:20;;::::0;11154:48:::1;;;::::0;-1:-1:-1;;;11154:48:0;;5403:2:1;11154:48:0::1;::::0;::::1;5385:21:1::0;5442:2;5422:18;;;5415:30;-1:-1:-1;;;5461:18:1;;;5454:46;5517:18;;11154:48:0::1;5201:340:1::0;11154:48:0::1;11213:11;:19:::0;;;::::1;;;;-1:-1:-1::0;;11213:19:0;;::::1;;::::0;;11248:25:::1;::::0;::::1;::::0;::::1;::::0;11227:5;569:14:1;562:22;544:41;;532:2;517:18;;404:187;11248:25:0::1;;;;;;;;11085:196:::0;:::o;5072:152::-;5127:7;7121:42;5820:7;5847:16;:7;:16;;;;5182:39;;6310:31;5182:39;:::i;:::-;5175:46;;5072:152;:::o;12884:106::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12952:22:0::1;12977:5;12952:22:::0;;;:13:::1;:22;::::0;;;;:30;;-1:-1:-1;;12952:30:0::1;::::0;;12884:106::o;13109:223::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;13174:16:::1;::::0;::::1;;13173:17;13165:47;;;::::0;-1:-1:-1;;;13165:47:0;;5881:2:1;13165:47:0::1;::::0;::::1;5863:21:1::0;5920:2;5900:18;;;5893:30;-1:-1:-1;;;5939:18:1;;;5932:48;5997:18;;13165:47:0::1;5679:342:1::0;13165:47:0::1;6310:31;13227:5;:20:::0;;;13262:9:::1;:24:::0;13301:16:::1;:23:::0;;-1:-1:-1;;13301:23:0::1;13320:4;13301:23;::::0;;13109:223::o;9494:306::-;-1:-1:-1;;;;;9615:19:0;;9594:4;9615:19;;;:11;:19;;;;;;;;9635:10;9615:31;;;;;;;;-1:-1:-1;;9615:52:0;9611:126;;-1:-1:-1;;;;;9684:19:0;;;;;;:11;:19;;;;;;;;9704:10;9684:31;;;;;;;:41;;9719:6;;9684:19;:41;;9719:6;;9684:41;:::i;:::-;;;;-1:-1:-1;;9611:126:0;9756:36;9766:6;9774:9;9785:6;9756:9;:36::i;:::-;9749:43;9494:306;-1:-1:-1;;;;9494:306:0:o;14860:341::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14958:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;:34;::::1;;:25;::::0;;::::1;:34;;::::0;14950:55:::1;;;::::0;-1:-1:-1;;;14950:55:0;;6228:2:1;14950:55:0::1;::::0;::::1;6210:21:1::0;6267:1;6247:18;;;6240:29;-1:-1:-1;;;6285:18:1;;;6278:39;6334:18;;14950:55:0::1;6026:332:1::0;14950:55:0::1;-1:-1:-1::0;;;;;15020:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;:33;;;::::1;;-1:-1:-1::0;;15020:33:0;;::::1;::::0;::::1;::::0;;;15068:6:::1;:15:::0;;;;;:23;;;::::1;::::0;::::1;::::0;;15106:12:::1;:21:::0;;;;;;:29;;;;::::1;::::0;::::1;::::0;;;15155:34;;6531:51:1;;;6598:18;;;6591:50;;;;15155:34:0::1;::::0;6504:18:1;15155:34:0::1;;;;;;;14860:341:::0;;:::o;15513:131::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;15585:5:::1;:14:::0;;;15614:9:::1;:18:::0;15513:131::o;993:94::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;1058:21:::1;1076:1;1058:9;:21::i;:::-;993:94::o:0;15656:320::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;15750:1:::1;15739:8;:12;15731:41;;;::::0;-1:-1:-1;;;15731:41:0;;6854:2:1;15731:41:0::1;::::0;::::1;6836:21:1::0;6893:2;6873:18;;;6866:30;-1:-1:-1;;;6912:18:1;;;6905:47;6969:18;;15731:41:0::1;6652:341:1::0;15731:41:0::1;15796:16;::::0;-1:-1:-1;;;15796:16:0;::::1;;;15795:17;15787:53;;;::::0;-1:-1:-1;;;15787:53:0;;7200:2:1;15787:53:0::1;::::0;::::1;7182:21:1::0;7239:2;7219:18;;;7212:30;7278:25;7258:18;;;7251:53;7321:18;;15787:53:0::1;6998:347:1::0;15787:53:0::1;15855:16;:23:::0;;-1:-1:-1;;;;15855:23:0::1;-1:-1:-1::0;;;15855:23:0::1;::::0;;15905::::1;15920:8:::0;15905:12:::1;:23;:::i;:::-;15893:9;:35:::0;15948:16:::1;::::0;::::1;::::0;;;::::1;15656:320:::0;:::o;8871:165::-;8949:4;8966:40;8976:10;8988:9;8999:6;8966:9;:40::i;:::-;-1:-1:-1;9024:4:0;;8871:165;-1:-1:-1;;;8871:165:0:o;13340:158::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;13412:16:::1;:37:::0;;-1:-1:-1;;;;;;13412:37:0::1;::::0;-1:-1:-1;;;;;13412:37:0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;13465:25:::1;::::0;160:51:1;;;13465:25:0::1;::::0;148:2:1;133:18;13465:25:0::1;14:203:1::0;10940:137:0;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11009:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;;;;;:24;;-1:-1:-1;;11009:24:0::1;11029:4;11009:24;::::0;;11049:20;;160:51:1;;;11049:20:0::1;::::0;133:18:1;11049:20:0::1;14:203:1::0;1095:192:0;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1184:22:0;::::1;1176:73;;;::::0;-1:-1:-1;;;1176:73:0;;7682:2:1;1176:73:0::1;::::0;::::1;7664:21:1::0;7721:2;7701:18;;;7694:30;7760:34;7740:18;;;7733:62;-1:-1:-1;;;7811:18:1;;;7804:36;7857:19;;1176:73:0::1;7480:402:1::0;1176:73:0::1;1260:19;1270:8;1260:9;:19::i;:::-;1095:192:::0;:::o;12998:103::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13064:22:0::1;;::::0;;;:13:::1;:22;::::0;;;;:29;;-1:-1:-1;;13064:29:0::1;13089:4;13064:29;::::0;;12998:103::o;15356:145::-;816:7;843:6;-1:-1:-1;;;;;843:6:0;378:10;905:23;897:68;;;;-1:-1:-1;;;897:68:0;;;;;;;:::i;:::-;15447:8:::1;:3:::0;15453:2:::1;15447:8;:::i;:::-;15438:6;:17:::0;15480:9:::1;:4:::0;15487:2:::1;15480:9;:::i;:::-;15470:7;:19:::0;-1:-1:-1;;15356:145:0:o;9221:261::-;-1:-1:-1;;;;;9316:20:0;;9308:52;;;;-1:-1:-1;;;9308:52:0;;8262:2:1;9308:52:0;;;8244:21:1;8301:2;8281:18;;;8274:30;-1:-1:-1;;;8320:18:1;;;8313:49;8379:18;;9308:52:0;8060:343:1;9308:52:0;-1:-1:-1;;;;;9379:21:0;;9371:53;;;;-1:-1:-1;;;9371:53:0;;8262:2:1;9371:53:0;;;8244:21:1;8301:2;8281:18;;;8274:30;-1:-1:-1;;;8320:18:1;;;8313:49;8379:18;;9371:53:0;8060:343:1;9371:53:0;-1:-1:-1;;;;;9437:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;9221:261::o;11289:1587::-;11369:4;11401;-1:-1:-1;;;;;11424:16:0;;11416:64;;;;-1:-1:-1;;;11416:64:0;;8610:2:1;11416:64:0;;;8592:21:1;8649:2;8629:18;;;8622:30;8688:34;8668:18;;;8661:62;-1:-1:-1;;;8739:18:1;;;8732:33;8782:19;;11416:64:0;8408:399:1;11416:64:0;-1:-1:-1;;;;;11499:18:0;;11491:68;;;;-1:-1:-1;;;11491:68:0;;9014:2:1;11491:68:0;;;8996:21:1;9053:2;9033:18;;;9026:30;9092:34;9072:18;;;9065:62;-1:-1:-1;;;9143:18:1;;;9136:35;9188:19;;11491:68:0;8812:401:1;11491:68:0;11587:1;11578:6;:10;11570:64;;;;-1:-1:-1;;;11570:64:0;;9420:2:1;11570:64:0;;;9402:21:1;9459:2;9439:18;;;9432:30;9498:34;9478:18;;;9471:62;-1:-1:-1;;;9549:18:1;;;9542:39;9598:19;;11570:64:0;9218:405:1;11570:64:0;-1:-1:-1;;;;;11654:19:0;;;;;;:13;:19;;;;;;;;11653:20;11645:59;;;;-1:-1:-1;;;11645:59:0;;9830:2:1;11645:59:0;;;9812:21:1;9869:2;9849:18;;;9842:30;9908:29;9888:18;;;9881:57;9955:18;;11645:59:0;9628:351:1;11645:59:0;11717:14;11734:25;11751:4;11756:2;11734:16;:25::i;:::-;:45;;;;-1:-1:-1;11763:16:0;;-1:-1:-1;;;11763:16:0;;;;11734:45;:74;;;;;11799:9;;11783:12;:25;;11734:74;11717:91;;11825:25;11842:4;11847:2;11825:16;:25::i;:::-;11821:331;;;11875:16;;-1:-1:-1;;;11875:16:0;;;;11867:50;;;;-1:-1:-1;;;11867:50:0;;10186:2:1;11867:50:0;;;10168:21:1;10225:2;10205:18;;;10198:30;-1:-1:-1;;;10244:18:1;;;10237:52;10306:18;;11867:50:0;9984:346:1;11867:50:0;11936:16;;;;11932:209;;11973:5;;11963:6;:15;;11955:38;;;;-1:-1:-1;;;11955:38:0;;10537:2:1;11955:38:0;;;10519:21:1;10576:2;10556:18;;;10549:30;-1:-1:-1;;;10595:18:1;;;10588:41;10646:18;;11955:38:0;10335:335:1;11955:38:0;-1:-1:-1;;;;;12012:12:0;;;;;;:8;:12;;;;;;;;12011:13;:38;;;;-1:-1:-1;;;;;;12028:21:0;;12044:4;12028:21;;12011:38;:61;;;;-1:-1:-1;;;;;;12053:19:0;;12067:4;12053:19;;12011:61;12008:132;;;12110:9;;12100:6;12084:13;12094:2;-1:-1:-1;;;;;5847:16:0;5820:7;5847:16;;;:7;:16;;;;;;;5754:117;12084:13;:22;;;;:::i;:::-;:35;;12076:62;;;;-1:-1:-1;;;12076:62:0;;10877:2:1;12076:62:0;;;10859:21:1;10916:2;10896:18;;;10889:30;-1:-1:-1;;;10935:18:1;;;10928:45;10990:18;;12076:62:0;10675:339:1;12076:62:0;12169:17;12177:4;12183:2;12169:7;:17::i;:::-;:29;;;;-1:-1:-1;12192:6:0;;-1:-1:-1;;;12192:6:0;;;;12191:7;12169:29;:50;;;;;12202:17;12210:4;12216:2;12202:7;:17::i;:::-;12166:232;;;12285:4;12236:28;5847:16;;;:7;:16;;;;;;6388:20;6403:5;6310:31;6388:20;:::i;:::-;12309;:37;12306:81;;12350:34;12363:20;12350:12;:34::i;:::-;12221:177;12166:232;-1:-1:-1;;;;;12414:12:0;;;;;;:6;:12;;;;;;;;;:26;;-1:-1:-1;;;;;;12430:10:0;;;;;;:6;:10;;;;;;;;12414:26;12410:73;;;12466:5;12456:15;;12410:73;-1:-1:-1;;;;;12495:13:0;;;;;;:7;:13;;;;;:23;;12512:6;;12495:13;:23;;12512:6;;12495:23;:::i;:::-;;;;-1:-1:-1;12520:22:0;;-1:-1:-1;12546:7:0;12545:81;;12620:6;12545:81;;;12557:60;12567:4;12573:16;12580:4;12586:2;12573:6;:16::i;:::-;12591:17;12599:4;12605:2;12591:7;:17::i;:::-;12610:6;12557:9;:60::i;:::-;-1:-1:-1;;;;;12637:11:0;;;;;;:7;:11;;;;;:29;;12520:106;;-1:-1:-1;12520:106:0;;12637:11;;;:29;;12520:106;;12637:29;:::i;:::-;;;;;;;;12688:2;-1:-1:-1;;;;;12673:34:0;12682:4;-1:-1:-1;;;;;12673:34:0;;12692:14;12673:34;;;;368:25:1;;356:2;341:18;;222:177;12673:34:0;;;;;;;;-1:-1:-1;;;;;12723:14:0;;;;;;:8;:14;;;;;;;;:27;;;;;12741:9;12723:27;:44;;;;-1:-1:-1;;;;;;12755:12:0;;;;;;:8;:12;;;;;;;;12754:13;12723:44;:67;;;;-1:-1:-1;;;;;;12771:19:0;;12785:4;12771:19;;12723:67;12720:123;;;-1:-1:-1;;;;;12807:17:0;;;;;;:13;:17;;;;;:24;;-1:-1:-1;;12807:24:0;12827:4;12807:24;;;12720:123;-1:-1:-1;12862:4:0;;11289:1587;-1:-1:-1;;;;;;11289:1587:0:o;1295:173::-;1351:16;1370:6;;-1:-1:-1;;;;;1387:17:0;;;-1:-1:-1;;;;;;1387:17:0;;;;;;1420:40;;1370:6;;;;;;;1420:40;;1351:16;1420:40;1340:128;1295:173;:::o;10047:338::-;10122:4;10141:14;10165:7;816;843:6;-1:-1:-1;;;;;843:6:0;;770:87;10165:7;-1:-1:-1;;;;;10158:14:0;:3;-1:-1:-1;;;;;10158:14:0;;;:45;;;;-1:-1:-1;816:7:0;843:6;-1:-1:-1;;;;;10189:14:0;;;843:6;;10189:14;;10158:45;:70;;;;-1:-1:-1;816:7:0;843:6;-1:-1:-1;;;;;843:6:0;10207:10;:21;;10158:70;:105;;;;-1:-1:-1;;;;;;10246:17:0;;;;;;:12;:17;;;;;;;;10245:18;10158:105;:128;;;;-1:-1:-1;;;;;;10269:17:0;;;;;;:12;:17;;;;;;;;10268:18;10158:128;:143;;;;-1:-1:-1;;;;;;10290:11:0;;7121:42;10290:11;;10158:143;:164;;;;-1:-1:-1;;;;;;10305:17:0;;;;10158:164;:188;;;;-1:-1:-1;;;;;;10326:20:0;;10341:4;10326:20;;10141:205;10047:338;-1:-1:-1;;;;10047:338:0:o;10562:165::-;-1:-1:-1;;;;;10662:13:0;;10628:4;10662:13;;;:8;:13;;;;;;10628:4;;10662:13;;:31;;;;-1:-1:-1;;;;;;;;;10680:13:0;;;;;:8;:13;;;;;;;;10679:14;;10562:165::o;10736:196::-;10834:11;;10802:4;;;;10834:11;;;;;:37;;;;-1:-1:-1;;;;;;10850:21:0;;;;;;:16;:21;;;;;;;;10849:22;10834:37;:63;;;;-1:-1:-1;;;;;;;;10876:21:0;;;;;:16;:21;;;;;;;;10875:22;;10736:196;-1:-1:-1;10736:196:0:o;14046:802::-;7304:6;:13;;-1:-1:-1;;;;7304:13:0;-1:-1:-1;;;7304:13:0;;;14163:16:::1;::::0;;14177:1:::1;14163:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14163:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14163:16:0::1;14139:40;;14208:4;14190;14195:1;14190:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14190:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14234:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;14234:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;14190:7;;14234:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14224:4;14229:1;14224:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14224:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;14288:4:::1;14268:26;::::0;;;:11:::1;:26:::0;;;;;;14303:10:::1;::::0;;;::::1;14268:47:::0;;;;;;;;-1:-1:-1;;14268:68:0::1;14264:168;;14373:4;14353:26;::::0;;;:11:::1;:26;::::0;;;;;;;14388:10:::1;::::0;-1:-1:-1;;;;;14388:10:0::1;14353:47:::0;;;;;;;-1:-1:-1;;14353:67:0;;14264:168:::1;14448:10;::::0;:200:::1;::::0;-1:-1:-1;;;14448:200:0;;-1:-1:-1;;;;;14448:10:0;;::::1;::::0;:61:::1;::::0;:200:::1;::::0;14524:20;;14448:10:::1;::::0;14575:4;;14602::::1;::::0;14622:15:::1;::::0;14448:200:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;14444:247;;14673:7;;;14444:247;14701:12;14729:21;:25:::0;14726:113:::1;;14770:16;::::0;:67:::1;::::0;:16;;;::::1;-1:-1:-1::0;;;;;14770:16:0::1;::::0;14827:5:::1;::::0;14799:21:::1;::::0;14770:67:::1;::::0;;;14799:21;14770:16;14827:5;14770:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14757:80:0;;-1:-1:-1;;14726:113:0::1;14118:730;;7328:1;-1:-1:-1::0;7340:6:0;:14;;-1:-1:-1;;;;7340:14:0;;;14046:802::o;10393:161::-;-1:-1:-1;;;;;10491:13:0;;10458:4;10491:13;;;:8;:13;;;;;;10458:4;;10491:13;;10490:14;:31;;;;-1:-1:-1;;;;;;;;;10508:13:0;;;;;:8;:13;;;;;;;;;10393:161::o;13508:530::-;13600:7;13620:11;13646:5;13642:84;;;-1:-1:-1;13660:6:0;;13642:84;;;13678:6;13674:52;;;-1:-1:-1;13693:7:0;;13674:52;;;-1:-1:-1;6522:1:0;13674:52;13742:3;13749:1;13742:8;13738:28;;13760:6;13753:13;;;;;13738:28;13777:17;6752:5;13797:12;13806:3;13797:6;:12;:::i;:::-;:30;;;;:::i;:::-;13777:50;-1:-1:-1;13842:13:0;;13838:157;;13890:4;13874:22;;;;:7;:22;;;;;:35;;13900:9;;13874:22;:35;;13900:9;;13874:35;:::i;:::-;;;;-1:-1:-1;;13929:40:0;;368:25:1;;;13952:4:0;;-1:-1:-1;;;;;13929:40:0;;;;;356:2:1;341:18;13929:40:0;;;;;;;13838:157;14012:18;14021:9;14012:6;:18;:::i;:::-;14005:25;13508:530;-1:-1:-1;;;;;;;13508:530:0:o;596:548:1:-;708:4;737:2;766;755:9;748:21;798:6;792:13;841:6;836:2;825:9;821:18;814:34;866:1;876:140;890:6;887:1;884:13;876:140;;;985:14;;;981:23;;975:30;951:17;;;970:2;947:26;940:66;905:10;;876:140;;;880:3;1065:1;1060:2;1051:6;1040:9;1036:22;1032:31;1025:42;1135:2;1128;1124:7;1119:2;1111:6;1107:15;1103:29;1092:9;1088:45;1084:54;1076:62;;;;596:548;;;;:::o;1149:131::-;-1:-1:-1;;;;;1224:31:1;;1214:42;;1204:70;;1270:1;1267;1260:12;1285:315;1353:6;1361;1414:2;1402:9;1393:7;1389:23;1385:32;1382:52;;;1430:1;1427;1420:12;1382:52;1469:9;1456:23;1488:31;1513:5;1488:31;:::i;:::-;1538:5;1590:2;1575:18;;;;1562:32;;-1:-1:-1;;;1285:315:1:o;1605:160::-;1670:20;;1726:13;;1719:21;1709:32;;1699:60;;1755:1;1752;1745:12;1699:60;1605:160;;;:::o;1770:315::-;1835:6;1843;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;1951:9;1938:23;1970:31;1995:5;1970:31;:::i;:::-;2020:5;-1:-1:-1;2044:35:1;2075:2;2060:18;;2044:35;:::i;:::-;2034:45;;1770:315;;;;;:::o;2090:180::-;2146:6;2199:2;2187:9;2178:7;2174:23;2170:32;2167:52;;;2215:1;2212;2205:12;2167:52;2238:26;2254:9;2238:26;:::i;:::-;2228:36;2090:180;-1:-1:-1;;;2090:180:1:o;2275:247::-;2334:6;2387:2;2375:9;2366:7;2362:23;2358:32;2355:52;;;2403:1;2400;2393:12;2355:52;2442:9;2429:23;2461:31;2486:5;2461:31;:::i;2527:456::-;2604:6;2612;2620;2673:2;2661:9;2652:7;2648:23;2644:32;2641:52;;;2689:1;2686;2679:12;2641:52;2728:9;2715:23;2747:31;2772:5;2747:31;:::i;:::-;2797:5;-1:-1:-1;2854:2:1;2839:18;;2826:32;2867:33;2826:32;2867:33;:::i;:::-;2527:456;;2919:7;;-1:-1:-1;;;2973:2:1;2958:18;;;;2945:32;;2527:456::o;3430:180::-;3489:6;3542:2;3530:9;3521:7;3517:23;3513:32;3510:52;;;3558:1;3555;3548:12;3510:52;-1:-1:-1;3581:23:1;;3430:180;-1:-1:-1;3430:180:1:o;3840:388::-;3908:6;3916;3969:2;3957:9;3948:7;3944:23;3940:32;3937:52;;;3985:1;3982;3975:12;3937:52;4024:9;4011:23;4043:31;4068:5;4043:31;:::i;:::-;4093:5;-1:-1:-1;4150:2:1;4135:18;;4122:32;4163:33;4122:32;4163:33;:::i;:::-;4215:7;4205:17;;;3840:388;;;;;:::o;4233:248::-;4301:6;4309;4362:2;4350:9;4341:7;4337:23;4333:32;4330:52;;;4378:1;4375;4368:12;4330:52;-1:-1:-1;;4401:23:1;;;4471:2;4456:18;;;4443:32;;-1:-1:-1;4233:248:1:o;4486:127::-;4547:10;4542:3;4538:20;4535:1;4528:31;4578:4;4575:1;4568:15;4602:4;4599:1;4592:15;4618:217;4658:1;4684;4674:132;;4728:10;4723:3;4719:20;4716:1;4709:31;4763:4;4760:1;4753:15;4791:4;4788:1;4781:15;4674:132;-1:-1:-1;4820:9:1;;4618:217::o;4840:356::-;5042:2;5024:21;;;5061:18;;;5054:30;5120:34;5115:2;5100:18;;5093:62;5187:2;5172:18;;4840:356::o;5546:128::-;5613:9;;;5634:11;;;5631:37;;;5648:18;;:::i;7350:125::-;7415:9;;;7436:10;;;7433:36;;;7449:18;;:::i;7887:168::-;7960:9;;;7991;;8008:15;;;8002:22;;7988:37;7978:71;;8029:18;;:::i;11151:127::-;11212:10;11207:3;11203:20;11200:1;11193:31;11243:4;11240:1;11233:15;11267:4;11264:1;11257:15;11283:251;11353:6;11406:2;11394:9;11385:7;11381:23;11377:32;11374:52;;;11422:1;11419;11412:12;11374:52;11454:9;11448:16;11473:31;11498:5;11473:31;:::i;11539:980::-;11801:4;11849:3;11838:9;11834:19;11880:6;11869:9;11862:25;11906:2;11944:6;11939:2;11928:9;11924:18;11917:34;11987:3;11982:2;11971:9;11967:18;11960:31;12011:6;12046;12040:13;12077:6;12069;12062:22;12115:3;12104:9;12100:19;12093:26;;12154:2;12146:6;12142:15;12128:29;;12175:1;12185:195;12199:6;12196:1;12193:13;12185:195;;;12264:13;;-1:-1:-1;;;;;12260:39:1;12248:52;;12355:15;;;;12320:12;;;;12296:1;12214:9;12185:195;;;-1:-1:-1;;;;;;;12436:32:1;;;;12431:2;12416:18;;12409:60;-1:-1:-1;;;12500:3:1;12485:19;12478:35;12397:3;11539:980;-1:-1:-1;;;11539:980:1:o

Swarm Source

ipfs://030fd833c3f81726c8ec0491745d4b6959279b85291f061fd9ca09aead2a1b9b
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.