ETH Price: $2,593.52 (-16.59%)
 

Overview

Max Total Supply

1,000,000 BTCH

Holders

61

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 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:
SaylorsLastHope

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-15
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/**
bitchcoin is singlehandedly propping up the price of bitcoin by buying and 
reflecting wBTC (aka the hardest money you can get your hands on) to token holders.

we are michael saylor's last line of defense against liquidation. join us now:

thereisnosecondbest.org

https://t.me/bitchcoineth

twitter @bitchcoineth
*/

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
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);
}

abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

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

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

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

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

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

interface IFailedTheHowieTest {
    function setDigitalGold (address goldAddress) external;
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function goBrrr(address shareholder) external;
}


contract MoneyPrinter is IFailedTheHowieTest {

    using SafeMath for uint256;
    address _token;
    address michaelSaylor;

    address public DigitalGold;

    IDEXRouter router;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;
    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 30 minutes;
    uint256 public minDistribution = 0 * (10 ** 9);

    uint256 public currentIndex;
    bool initialized;

    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor () {
        _token = msg.sender;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        DigitalGold = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
    }
    
    receive() external payable {
        deposit();
    }

    function setDigitalGold(address goldAddress) external override onlyToken {
        DigitalGold = goldAddress;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {

        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() public payable override {

        uint256 balanceBefore = IERC20(DigitalGold).balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(DigitalGold);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = IERC20(DigitalGold).balanceOf(address(this)).sub(balanceBefore);
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }
    
    function process(uint256 gas) external override {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while(gasUsed < gas && iterations < shareholderCount) {

            if(currentIndex >= shareholderCount){ currentIndex = 0; }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) public view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            IERC20(DigitalGold).transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function goBrrr(address) external override onlyToken {
        require(shouldDistribute(msg.sender), "Tendies not rdy yet!");
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract SaylorsLastHope is IERC20, Auth {
    using SafeMath for uint256;

    address public DigitalGold = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599; //wBTC aka hardest money you can get your hands on

    string private constant _name = "bitchcoin";
    string private constant _symbol = "BTCH";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 1000000 * (10 ** _decimals);

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

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

    bool public antiBot = true;

    mapping (address => bool) private bots; 
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isDividendExempt;

    uint256 public launchedAt;
    address private lpWallet = DEAD;

    uint256 public buyFee = 10;
    uint256 public sellFee = 10;

    uint256 public toReflections = 50;
    uint256 public toLiquidity = 30;
    uint256 public toMarketing = 20;

    uint256 public allocationSum = 100;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public marketingWallet = payable(0xebb488B9e9a23d4818ABdDfA5E84bbA09f105766);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;
    
    MoneyPrinter public moneyPrinter;
    uint256 public moneyPrinterGas = 0;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    uint256 public maxTx = _totalSupply.div(100);
    uint256 public maxWallet = _totalSupply.div(50);
    uint256 public swapThreshold = _totalSupply.div(200);

    constructor (
        address _owner        
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        moneyPrinter = new MoneyPrinter();
        
        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;             

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;    

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;    


        _balances[_owner] = _totalSupply;
    
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function _setDigitalGold(address goldAddress) internal {
        moneyPrinter.setDigitalGold(goldAddress);
    }

    function setDigitalGold(address goldAddress) external onlyOwner {
        DigitalGold = goldAddress;
        _setDigitalGold(goldAddress);
    }

    function setBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    //once enabled, cannot be reversed
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }      

    function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {

        buyFee = newBuyFee;
        sellFee = newSellFee;

        require(buyFee <= 10, "don b greedy");
        require(sellFee <= 10, "don b greedy");
    } 
    
    function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner {
        toReflections = newRewardFee;
        toLiquidity = newLpFee;
        toMarketing = newMarketingFee;
    }

    function changeTxLimit(uint256 newLimit) external onlyOwner {
        maxTx = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner {      
        isTxLimitExempt[holder] = exempt;
    }

    function setMarketingWallet(address payable newMarketingWallet) external onlyOwner {
        marketingWallet = payable(newMarketingWallet);
    }

    function setLpWallet(address newLpWallet) external onlyOwner {
        lpWallet = newLpWallet;
    }    

    function setOwnerWallet(address payable newOwnerWallet) external onlyOwner {
        tokenOwner = newOwnerWallet;
    }     

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner {
        moneyPrinter.setDistributionCriteria(newMinPeriod, newMinDistribution);        
    }

    function delBot(address notbot) external onlyOwner {
        bots[notbot] = false;
    }

    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            moneyPrinter.setShare(holder, 0);
        }else{
            moneyPrinter.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

    function changeMoneyPrinterGas(uint256 newGas) external onlyOwner {
        moneyPrinterGas = newGas;
    }           

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(msg.sender, recipient, 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] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive
        require(!bots[sender] && !bots[recipient]);

        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        require(amount <= maxTx || isTxLimitExempt[sender], "tx");

        if(!isTxLimitExempt[recipient] && antiBot)
        {
            require(_balances[recipient].add(amount) <= maxWallet, "wallet");
        }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try moneyPrinter.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try moneyPrinter.setShare(recipient, _balances[recipient]) {} catch {} 
        }

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }    

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }  
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeApplicable = pair == recipient ? sellFee : buyFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        approve(address(this), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

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

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)]; 
        uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2);     
        uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity);

        swapTokensForEth(amountToSwap);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForDigitalGold = totalEthBalance.mul(toReflections).div(100);
        uint256 ethForMarketing = totalEthBalance.mul(toMarketing).div(100);
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
      
        if (totalEthBalance > 0){
            payable(marketingWallet).transfer(ethForMarketing);
        }
        
        try moneyPrinter.deposit{value: ethForDigitalGold}() {} catch {}
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0){          
            payable(marketingWallet).transfer(contractETHBalance);
        }
    }

    function manualProcessGas(uint256 manualGas) external onlyOwner {
        moneyPrinter.process(manualGas);
    }

    function howMuchGold(address shareholder) external view returns (uint256) {
        return moneyPrinter.getUnpaidEarnings(shareholder);
    }

    function gibMeMyDijitalGold() external {
        moneyPrinter.goBrrr(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":"DigitalGold","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","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":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeMoneyPrinterGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gibMeMyDijitalGold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"howMuchGold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"moneyPrinter","outputs":[{"internalType":"contract MoneyPrinter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"moneyPrinterGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"goldAddress","type":"address"}],"name":"setDigitalGold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLpWallet","type":"address"}],"name":"setLpWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

6080604052600180546001600160a01b031916732260fac5e5542a773aa44fbcfedf7c193bc2c599179055620000386012600a6200062f565b6200004790620f424062000640565b6002819055600780546001600160a01b031990811661dead908117909255600880546001600160a81b031916600160a01b179055600e80549091169091179055600a600f8190556010556032601155601e6012556014601381905560649081905560198054600162ffff0160a01b031916750100ebb488b9e9a23d4818abddfa5e84bba09f1057661790556000601b55620000f29190620014d962000476602090811b91909117901c565b601c556200011260326002546200047660201b620014d91790919060201c565b601d556200013260c86002546200047660201b620014d91790919060201c565b601e553480156200014257600080fd5b5060405162003e8f38038062003e8f833981016040819052620001659162000662565b600080546001600160a01b03199081166001600160a01b0384161790915560158054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000204919062000662565b600680546001600160a01b0319166001600160a01b039283161790556015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000289919062000662565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000301919062000662565b601680546001600160a01b0319166001600160a01b0392831617905530600090815260046020908152604080832060155490941683529290528190206000199055516200034e906200050e565b604051809103906000f0801580156200036b573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b039283161790558181166000818152600a60209081526040808320805460ff1990811660019081179092556019548716855282852080548216831790556016805488168652600c85528386208054831684179055308652838620805483168417905560078054891687528487208054841685179055878752600b865284872080548416851790559054881686528386208054831684179055549096168452818420805490961617909455600254838352600382528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200070f565b6000620004c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004c960201b60201c565b90505b92915050565b60008183620004f65760405162461bcd60e51b8152600401620004ed919062000694565b60405180910390fd5b506000620005058486620006ec565b95945050505050565b61114e8062002d4183390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005735781600019048211156200055757620005576200051c565b808516156200056557918102915b93841c939080029062000537565b509250929050565b6000826200058c57506001620004c3565b816200059b57506000620004c3565b8160018114620005b45760028114620005bf57620005df565b6001915050620004c3565b60ff841115620005d357620005d36200051c565b50506001821b620004c3565b5060208310610133831016604e8410600b841016171562000604575081810a620004c3565b62000610838362000532565b80600019048211156200062757620006276200051c565b029392505050565b6000620004c060ff8416836200057b565b60008160001904831182151516156200065d576200065d6200051c565b500290565b6000602082840312156200067557600080fd5b81516001600160a01b03811681146200068d57600080fd5b9392505050565b600060208083528351808285015260005b81811015620006c357858101830151858201604001528201620006a5565b81811115620006d6576000604083870101525b50601f01601f1916929092016040019392505050565b6000826200070a57634e487b7160e01b600052601260045260246000fd5b500490565b612622806200071f6000396000f3fe60806040526004361061038f5760003560e01c806375df1305116101dc578063b626d09c11610102578063d920334e116100a0578063f887ea401161006f578063f887ea4014610ab1578063f8b45b0514610ad1578063fabe628314610ae7578063ffb54a9914610b0757600080fd5b8063d920334e14610a0b578063dd62ed3e14610a2b578063f2fde38b14610a71578063f708a64f14610a9157600080fd5b8063c45a0155116100dc578063c45a0155146109aa578063c8d1293d146109ca578063c9567bf9146109e0578063caa5581b146109f557600080fd5b8063b626d09c14610954578063bb542ef014610974578063bf56b3711461099457600080fd5b8063893d20e81161017a578063a3a2e89e11610149578063a3a2e89e146108d4578063a8aa1b31146108f4578063a9059cbb14610914578063b515566a1461093457600080fd5b8063893d20e8146108395780638b42507f146108575780638d77345d1461088757806395d89b41146108a757600080fd5b80637db1342c116101b65780637db1342c146107c35780637dfcbe34146107e3578063819340311461080457806389291a8f1461082457600080fd5b806375df13051461077857806375f0a8741461078e5780637ced2ea3146107ae57600080fd5b80632f54bf6e116102c1578063468c7ee21161025f5780635d098b381161022e5780635d098b38146106f757806366eb37851461071757806370a082311461072c5780637437681e1461076257600080fd5b8063468c7ee21461068057806347062402146106a05780634a74bb02146106b6578063571ac8b0146106d757600080fd5b80633dab52691161029b5780633dab5269146105ea5780633f4218e01461060a5780634355855a1461063a578063454343771461066a57600080fd5b80632f54bf6e1461057f57806330ca34ee146105ae578063313ce567146105ce57600080fd5b806320e92a8e1161032e5780632b112e49116103085780632b112e49146105145780632b14ca56146105295780632d48e8961461053f5780632dbea2e11461055f57600080fd5b806320e92a8e146104b457806323b872dd146104d4578063273123b7146104f457600080fd5b8063095ea7b31161036a578063095ea7b3146104155780630bdb28781461044557806318160ddd14610467578063183c59011461047c57600080fd5b8062c98bce1461039b5780630445b667146103c457806306fdde03146103da57600080fd5b3661039657005b600080fd5b3480156103a757600080fd5b506103b1601b5481565b6040519081526020015b60405180910390f35b3480156103d057600080fd5b506103b1601e5481565b3480156103e657600080fd5b506040805180820190915260098152683134ba31b431b7b4b760b91b60208201525b6040516103bb9190612162565b34801561042157600080fd5b506104356104303660046121dc565b610b28565b60405190151581526020016103bb565b34801561045157600080fd5b50610465610460366004612208565b610b95565b005b34801561047357600080fd5b506002546103b1565b34801561048857600080fd5b5060015461049c906001600160a01b031681565b6040516001600160a01b0390911681526020016103bb565b3480156104c057600080fd5b506103b16104cf366004612221565b610bcd565b3480156104e057600080fd5b506104356104ef36600461223e565b610c3c565b34801561050057600080fd5b5061046561050f366004612221565b610cfe565b34801561052057600080fd5b506103b1610d49565b34801561053557600080fd5b506103b160105481565b34801561054b57600080fd5b5061046561055a36600461227f565b610d9b565b34801561056b57600080fd5b5061046561057a3660046122a1565b610e2f565b34801561058b57600080fd5b5061043561059a366004612221565b6000546001600160a01b0391821691161490565b3480156105ba57600080fd5b506104656105c936600461227f565b610e67565b3480156105da57600080fd5b50604051601281526020016103bb565b3480156105f657600080fd5b506104656106053660046122dd565b610f21565b34801561061657600080fd5b50610435610625366004612221565b600a6020526000908152604090205460ff1681565b34801561064657600080fd5b50610435610655366004612221565b600c6020526000908152604090205460ff1681565b34801561067657600080fd5b506103b160145481565b34801561068c57600080fd5b5061046561069b366004612221565b610f6d565b3480156106ac57600080fd5b506103b1600f5481565b3480156106c257600080fd5b5060195461043590600160a81b900460ff1681565b3480156106e357600080fd5b506104356106f2366004612221565b610fb9565b34801561070357600080fd5b50610465610712366004612221565b610fc7565b34801561072357600080fd5b50610465611013565b34801561073857600080fd5b506103b1610747366004612221565b6001600160a01b031660009081526003602052604090205490565b34801561076e57600080fd5b506103b1601c5481565b34801561078457600080fd5b506103b160135481565b34801561079a57600080fd5b5060195461049c906001600160a01b031681565b3480156107ba57600080fd5b50610465611047565b3480156107cf57600080fd5b506104656107de366004612208565b6110a6565b3480156107ef57600080fd5b5060085461043590600160a01b900460ff1681565b34801561081057600080fd5b5061046561081f366004612208565b6110d5565b34801561083057600080fd5b50610465611164565b34801561084557600080fd5b506000546001600160a01b031661049c565b34801561086357600080fd5b50610435610872366004612221565b600b6020526000908152604090205460ff1681565b34801561089357600080fd5b50601a5461049c906001600160a01b031681565b3480156108b357600080fd5b50604080518082019091526004815263084a886960e31b6020820152610408565b3480156108e057600080fd5b506104656108ef3660046122f9565b6111d2565b34801561090057600080fd5b5060165461049c906001600160a01b031681565b34801561092057600080fd5b5061043561092f3660046121dc565b611227565b34801561094057600080fd5b5061046561094f366004612344565b611234565b34801561096057600080fd5b5061046561096f366004612221565b6112c6565b34801561098057600080fd5b5061046561098f366004612221565b611314565b3480156109a057600080fd5b506103b1600d5481565b3480156109b657600080fd5b5060175461049c906001600160a01b031681565b3480156109d657600080fd5b506103b160125481565b3480156109ec57600080fd5b50610465611360565b348015610a0157600080fd5b506103b160115481565b348015610a1757600080fd5b50610465610a26366004612208565b6113a3565b348015610a3757600080fd5b506103b1610a46366004612409565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a7d57600080fd5b50610465610a8c366004612221565b6113d2565b348015610a9d57600080fd5b50610465610aac3660046122f9565b611450565b348015610abd57600080fd5b5060155461049c906001600160a01b031681565b348015610add57600080fd5b506103b1601d5481565b348015610af357600080fd5b50610465610b023660046122f9565b611484565b348015610b1357600080fd5b5060195461043590600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b839086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610bc85760405162461bcd60e51b8152600401610bbf90612442565b60405180910390fd5b601b55565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f9190612462565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610ce9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610cc491849061151b565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610cf4848484611555565b90505b9392505050565b6000546001600160a01b03163314610d285760405162461bcd60e51b8152600401610bbf90612442565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610d96906007546001600160a01b0316600090815260036020526040902054610d909060025490611a0b565b90611a0b565b905090565b6000546001600160a01b03163314610dc55760405162461bcd60e51b8152600401610bbf90612442565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610e1357600080fd5b505af1158015610e27573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610e595760405162461bcd60e51b8152600401610bbf90612442565b601192909255601255601355565b6000546001600160a01b03163314610e915760405162461bcd60e51b8152600401610bbf90612442565b600f8290556010819055600a821115610edb5760405162461bcd60e51b815260206004820152600c60248201526b646f6e20622067726565647960a01b6044820152606401610bbf565b600a6010541115610f1d5760405162461bcd60e51b815260206004820152600c60248201526b646f6e20622067726565647960a01b6044820152606401610bbf565b5050565b6000546001600160a01b03163314610f4b5760405162461bcd60e51b8152600401610bbf90612442565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b03163314610f975760405162461bcd60e51b8152600401610bbf90612442565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b8f82600019610b28565b6000546001600160a01b03163314610ff15760405162461bcd60e51b8152600401610bbf90612442565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461103d5760405162461bcd60e51b8152600401610bbf90612442565b611045611a4d565b565b601a546040516320bec5a360e01b81523360048201526001600160a01b03909116906320bec5a390602401600060405180830381600087803b15801561108c57600080fd5b505af11580156110a0573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146110d05760405162461bcd60e51b8152600401610bbf90612442565b601d55565b6000546001600160a01b031633146110ff5760405162461bcd60e51b8152600401610bbf90612442565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024015b600060405180830381600087803b15801561114957600080fd5b505af115801561115d573d6000803e3d6000fd5b5050505050565b6000546001600160a01b0316331461118e5760405162461bcd60e51b8152600401610bbf90612442565b4780156111cf576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f1d573d6000803e3d6000fd5b50565b6000546001600160a01b031633146111fc5760405162461bcd60e51b8152600401610bbf90612442565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610cf7338484611555565b6000546001600160a01b0316331461125e5760405162461bcd60e51b8152600401610bbf90612442565b60005b8151811015610f1d576001600960008484815181106112825761128261247b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806112be816124a7565b915050611261565b6000546001600160a01b031633146112f05760405162461bcd60e51b8152600401610bbf90612442565b600180546001600160a01b0319166001600160a01b0383161790556111cf81611bdb565b6000546001600160a01b0316331461133e5760405162461bcd60e51b8152600401610bbf90612442565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461138a5760405162461bcd60e51b8152600401610bbf90612442565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146113cd5760405162461bcd60e51b8152600401610bbf90612442565b601c55565b6000546001600160a01b031633146113fc5760405162461bcd60e51b8152600401610bbf90612442565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461147a5760405162461bcd60e51b8152600401610bbf90612442565b610f1d8282611c0d565b6000546001600160a01b031633146114ae5760405162461bcd60e51b8152600401610bbf90612442565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610cf783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cec565b6000818484111561153f5760405162461bcd60e51b8152600401610bbf9190612162565b50600061154c84866124c0565b95945050505050565b600080546001600160a01b0385811691161480159061158257506000546001600160a01b03848116911614155b156115e057601954600160b01b900460ff166115e05760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610bbf565b6001600160a01b03841660009081526009602052604090205460ff1615801561162257506001600160a01b03831660009081526009602052604090205460ff16155b61162b57600080fd5b601954600160a01b900460ff161561164f57611648848484611d1a565b9050610cf7565b601c548211158061167857506001600160a01b0384166000908152600b602052604090205460ff165b6116a95760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610bbf565b6001600160a01b0383166000908152600b602052604090205460ff161580156116db5750600854600160a01b900460ff165b1561173d57601d546001600160a01b0384166000908152600360205260409020546117069084611e00565b111561173d5760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610bbf565b6016546001600160a01b031633148015906117625750601954600160a01b900460ff16155b80156117775750601954600160a81b900460ff165b80156117945750601e543060009081526003602052604090205410155b156117a1576117a1611a4d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600390915291909120546117f391849061151b565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561184357506001600160a01b0384166000908152600a602052604090205460ff16155b61184d5782611858565b611858858585611e5f565b6001600160a01b03851660009081526003602052604090205490915061187e9082611e00565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff1661192257601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561190f57600080fd5b505af1925050508015611920575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166119b357601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156119a057600080fd5b505af19250505080156119b1575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119f891815260200190565b60405180910390a3506001949350505050565b6000610cf783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061151b565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611a9390600290611a8d9060649082908790611f22565b906114d9565b90506000611aa18383611a0b565b9050611aac81611fa4565b60004790506000611acd6064611a8d60115485611f2290919063ffffffff16565b90506000611aeb6064611a8d60135486611f2290919063ffffffff16565b90506000611b0e6002611a8d6064611a8d60125489611f2290919063ffffffff16565b90508315611b52576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611b50573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611ba257600080fd5b505af193505050508015611bb4575060015b508515611bc557611bc586826120cd565b50506019805460ff60a01b191690555050505050565b601a54604051632d89b42760e21b81526001600160a01b0383811660048301529091169063b626d09c9060240161112f565b6001600160a01b0382163014801590611c3457506016546001600160a01b03838116911614155b611c3d57600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611ca357601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610df9565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610df9565b60008183611d0d5760405162461bcd60e51b8152600401610bbf9190612162565b50600061154c84866124d7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611d6b91849061151b565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611d9a9083611e00565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611dee9086815260200190565b60405180910390a35060019392505050565b600080611e0d83856124f9565b905083811015610cf75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bbf565b60165460009081906001600160a01b03858116911614611e8157600f54611e85565b6010545b90506000611e986064611a8d8685611f22565b30600090815260036020526040902054909150611eb59082611e00565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f069085815260200190565b60405180910390a3611f188482611a0b565b9695505050505050565b600082600003611f3457506000610b8f565b6000611f408385612511565b905082611f4d85836124d7565b14610cf75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bbf565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fd957611fd961247b565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612032573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120569190612530565b816001815181106120695761206961247b565b60200260200101906001600160a01b031690816001600160a01b0316815250506120933083610b28565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610df990859060009086903090429060040161254d565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561213d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115d91906125be565b600060208083528351808285015260005b8181101561218f57858101830151858201604001528201612173565b818111156121a1576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146111cf57600080fd5b80356121d7816121b7565b919050565b600080604083850312156121ef57600080fd5b82356121fa816121b7565b946020939093013593505050565b60006020828403121561221a57600080fd5b5035919050565b60006020828403121561223357600080fd5b8135610cf7816121b7565b60008060006060848603121561225357600080fd5b833561225e816121b7565b9250602084013561226e816121b7565b929592945050506040919091013590565b6000806040838503121561229257600080fd5b50508035926020909101359150565b6000806000606084860312156122b657600080fd5b505081359360208301359350604090920135919050565b803580151581146121d757600080fd5b600080604083850312156122f057600080fd5b6121fa836122cd565b6000806040838503121561230c57600080fd5b8235612317816121b7565b9150612325602084016122cd565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561235757600080fd5b823567ffffffffffffffff8082111561236f57600080fd5b818501915085601f83011261238357600080fd5b8135818111156123955761239561232e565b8060051b604051601f19603f830116810181811085821117156123ba576123ba61232e565b6040529182528482019250838101850191888311156123d857600080fd5b938501935b828510156123fd576123ee856121cc565b845293850193928501926123dd565b98975050505050505050565b6000806040838503121561241c57600080fd5b8235612427816121b7565b91506020830135612437816121b7565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b60006020828403121561247457600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016124b9576124b9612491565b5060010190565b6000828210156124d2576124d2612491565b500390565b6000826124f457634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561250c5761250c612491565b500190565b600081600019048311821515161561252b5761252b612491565b500290565b60006020828403121561254257600080fd5b8151610cf7816121b7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561259d5784516001600160a01b031683529383019391830191600101612578565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125d357600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220617a1c2a50273f7e6cc3304a8f2df9ab877b2b6c1a1085784f05663bd4cb310264736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600c55610708600d556000600e5534801561002e57600080fd5b50600080546001600160a01b03199081163317909155600380548216737a250d5630b4cf539739df2c5dacb4c659f2488d17905560028054909116732260fac5e5542a773aa44fbcfedf7c193bc2c5991790556110be806100906000396000f3fe60806040526004361061010d5760003560e01c80638c21cd5211610095578063d0e30db011610064578063d0e30db014610301578063e2d2e21914610309578063efca2eed1461031f578063ffb2c47914610335578063ffd49c841461035557600080fd5b80638c21cd5214610244578063997664d714610274578063b626d09c1461028a578063ce7c2ac2146102aa57600080fd5b806326987b60116100dc57806326987b60146101c257806328fd3198146101d85780632d48e896146101f85780633a98ef39146102185780634fab0ae81461022e57600080fd5b806311ce023d1461012157806314b6ca961461014a578063183c59011461016a57806320bec5a3146101a257600080fd5b3661011c5761011a61036b565b005b600080fd5b34801561012d57600080fd5b50610137600c5481565b6040519081526020015b60405180910390f35b34801561015657600080fd5b5061011a610165366004610e22565b6105e4565b34801561017657600080fd5b5060025461018a906001600160a01b031681565b6040516001600160a01b039091168152602001610141565b3480156101ae57600080fd5b5061011a6101bd366004610e4e565b61075c565b3480156101ce57600080fd5b50610137600f5481565b3480156101e457600080fd5b506101376101f3366004610e4e565b6107d0565b34801561020457600080fd5b5061011a610213366004610e6b565b61085b565b34801561022457600080fd5b5061013760085481565b34801561023a57600080fd5b50610137600e5481565b34801561025057600080fd5b5061026461025f366004610e4e565b61087d565b6040519015158152602001610141565b34801561028057600080fd5b5061013760095481565b34801561029657600080fd5b5061011a6102a5366004610e4e565b6108c3565b3480156102b657600080fd5b506102e66102c5366004610e4e565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610141565b61011a61036b565b34801561031557600080fd5b50610137600b5481565b34801561032b57600080fd5b50610137600a5481565b34801561034157600080fd5b5061011a610350366004610e8d565b6108fc565b34801561036157600080fd5b50610137600d5481565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156103b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d89190610ea6565b60408051600280825260608201835292935060009290916020830190803683375050600354604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610447573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046b9190610ebf565b8160008151811061047e5761047e610edc565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106104af576104af610edc565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de959034906104f590600090869030904290600401610ef2565b6000604051808303818588803b15801561050e57600080fd5b505af1158015610522573d6000803e3d6000fd5b50506002546040516370a0823160e01b8152306004820152600094506105a293508692506001600160a01b03909116906370a0823190602401602060405180830381865afa158015610578573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059c9190610ea6565b906109e9565b6009549091506105b29082610a32565b600955600854600c546105dc916105d3916105cd9085610a91565b90610b13565b600b5490610a32565b600b55505050565b6000546001600160a01b031633146105fb57600080fd5b6001600160a01b038216600090815260076020526040902054156106225761062282610b55565b60008111801561064857506001600160a01b038216600090815260076020526040902054155b156106ae57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b03191690911790556106e1565b801580156106d357506001600160a01b03821660009081526007602052604090205415155b156106e1576106e182610c73565b6001600160a01b03821660009081526007602052604090205460085461071291839161070c916109e9565b90610a32565b6008556001600160a01b038216600090815260076020526040902081905561073981610d88565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6000546001600160a01b0316331461077357600080fd5b61077c3361087d565b6107c45760405162461bcd60e51b815260206004820152601460248201527354656e64696573206e6f7420726479207965742160601b60448201526064015b60405180910390fd5b6107cd33610b55565b50565b6001600160a01b03811660009081526007602052604081205481036107f757506000919050565b6001600160a01b03821660009081526007602052604081205461081990610d88565b6001600160a01b038416600090815260076020526040902060010154909150808211610849575060009392505050565b61085382826109e9565b949350505050565b6000546001600160a01b0316331461087257600080fd5b600d91909155600e55565b600d546001600160a01b038216600090815260066020526040812054909142916108a79190610f72565b1080156108bd5750600e546108bb836107d0565b115b92915050565b6000546001600160a01b031633146108da57600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600454600081900361090c575050565b60008060005a90505b848210801561092357508383105b156109e25783600f5410610937576000600f555b6109696004600f548154811061094f5761094f610edc565b6000918252602090912001546001600160a01b031661087d565b156109a0576109a06004600f548154811061098657610986610edc565b6000918252602090912001546001600160a01b0316610b55565b6109b56109ae5a83906109e9565b8390610a32565b91505a600f805491925060006109ca83610f8a565b919050555082806109da90610f8a565b935050610915565b5050505050565b6000610a2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610da5565b9392505050565b600080610a3f8385610f72565b905083811015610a2b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107bb565b600082600003610aa3575060006108bd565b6000610aaf8385610fa3565b905082610abc8583610fc2565b14610a2b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107bb565b6000610a2b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ddf565b6001600160a01b0381166000908152600760205260408120549003610b775750565b6000610b82826107d0565b90508015610c6f57600a54610b979082610a32565b600a5560025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c119190610fe4565b506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610c459082610a32565b6001600160a01b038316600090815260076020526040902060028101919091555461073990610d88565b5050565b60048054610c8390600190611006565b81548110610c9357610c93610edc565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610cd157610cd1610edc565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610d1d90600190611006565b81548110610d2d57610d2d610edc565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610d6357610d6361101d565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60006108bd600c546105cd600b5485610a9190919063ffffffff16565b60008184841115610dc95760405162461bcd60e51b81526004016107bb9190611033565b506000610dd68486611006565b95945050505050565b60008183610e005760405162461bcd60e51b81526004016107bb9190611033565b506000610dd68486610fc2565b6001600160a01b03811681146107cd57600080fd5b60008060408385031215610e3557600080fd5b8235610e4081610e0d565b946020939093013593505050565b600060208284031215610e6057600080fd5b8135610a2b81610e0d565b60008060408385031215610e7e57600080fd5b50508035926020909101359150565b600060208284031215610e9f57600080fd5b5035919050565b600060208284031215610eb857600080fd5b5051919050565b600060208284031215610ed157600080fd5b8151610a2b81610e0d565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610f3c5784516001600160a01b031683529383019391830191600101610f17565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610f8557610f85610f5c565b500190565b600060018201610f9c57610f9c610f5c565b5060010190565b6000816000190483118215151615610fbd57610fbd610f5c565b500290565b600082610fdf57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610ff657600080fd5b81518015158114610a2b57600080fd5b60008282101561101857611018610f5c565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208083528351808285015260005b8181101561106057858101830151858201604001528201611044565b81811115611072576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220226d45f716b62027522e95d691dd3f2e9a825f45a0a5e5e77712ec4aad0e51cb64736f6c634300080d0033000000000000000000000000110cbaa2772ac05083f57819d583b1d6cf86a34e

Deployed Bytecode

0x60806040526004361061038f5760003560e01c806375df1305116101dc578063b626d09c11610102578063d920334e116100a0578063f887ea401161006f578063f887ea4014610ab1578063f8b45b0514610ad1578063fabe628314610ae7578063ffb54a9914610b0757600080fd5b8063d920334e14610a0b578063dd62ed3e14610a2b578063f2fde38b14610a71578063f708a64f14610a9157600080fd5b8063c45a0155116100dc578063c45a0155146109aa578063c8d1293d146109ca578063c9567bf9146109e0578063caa5581b146109f557600080fd5b8063b626d09c14610954578063bb542ef014610974578063bf56b3711461099457600080fd5b8063893d20e81161017a578063a3a2e89e11610149578063a3a2e89e146108d4578063a8aa1b31146108f4578063a9059cbb14610914578063b515566a1461093457600080fd5b8063893d20e8146108395780638b42507f146108575780638d77345d1461088757806395d89b41146108a757600080fd5b80637db1342c116101b65780637db1342c146107c35780637dfcbe34146107e3578063819340311461080457806389291a8f1461082457600080fd5b806375df13051461077857806375f0a8741461078e5780637ced2ea3146107ae57600080fd5b80632f54bf6e116102c1578063468c7ee21161025f5780635d098b381161022e5780635d098b38146106f757806366eb37851461071757806370a082311461072c5780637437681e1461076257600080fd5b8063468c7ee21461068057806347062402146106a05780634a74bb02146106b6578063571ac8b0146106d757600080fd5b80633dab52691161029b5780633dab5269146105ea5780633f4218e01461060a5780634355855a1461063a578063454343771461066a57600080fd5b80632f54bf6e1461057f57806330ca34ee146105ae578063313ce567146105ce57600080fd5b806320e92a8e1161032e5780632b112e49116103085780632b112e49146105145780632b14ca56146105295780632d48e8961461053f5780632dbea2e11461055f57600080fd5b806320e92a8e146104b457806323b872dd146104d4578063273123b7146104f457600080fd5b8063095ea7b31161036a578063095ea7b3146104155780630bdb28781461044557806318160ddd14610467578063183c59011461047c57600080fd5b8062c98bce1461039b5780630445b667146103c457806306fdde03146103da57600080fd5b3661039657005b600080fd5b3480156103a757600080fd5b506103b1601b5481565b6040519081526020015b60405180910390f35b3480156103d057600080fd5b506103b1601e5481565b3480156103e657600080fd5b506040805180820190915260098152683134ba31b431b7b4b760b91b60208201525b6040516103bb9190612162565b34801561042157600080fd5b506104356104303660046121dc565b610b28565b60405190151581526020016103bb565b34801561045157600080fd5b50610465610460366004612208565b610b95565b005b34801561047357600080fd5b506002546103b1565b34801561048857600080fd5b5060015461049c906001600160a01b031681565b6040516001600160a01b0390911681526020016103bb565b3480156104c057600080fd5b506103b16104cf366004612221565b610bcd565b3480156104e057600080fd5b506104356104ef36600461223e565b610c3c565b34801561050057600080fd5b5061046561050f366004612221565b610cfe565b34801561052057600080fd5b506103b1610d49565b34801561053557600080fd5b506103b160105481565b34801561054b57600080fd5b5061046561055a36600461227f565b610d9b565b34801561056b57600080fd5b5061046561057a3660046122a1565b610e2f565b34801561058b57600080fd5b5061043561059a366004612221565b6000546001600160a01b0391821691161490565b3480156105ba57600080fd5b506104656105c936600461227f565b610e67565b3480156105da57600080fd5b50604051601281526020016103bb565b3480156105f657600080fd5b506104656106053660046122dd565b610f21565b34801561061657600080fd5b50610435610625366004612221565b600a6020526000908152604090205460ff1681565b34801561064657600080fd5b50610435610655366004612221565b600c6020526000908152604090205460ff1681565b34801561067657600080fd5b506103b160145481565b34801561068c57600080fd5b5061046561069b366004612221565b610f6d565b3480156106ac57600080fd5b506103b1600f5481565b3480156106c257600080fd5b5060195461043590600160a81b900460ff1681565b3480156106e357600080fd5b506104356106f2366004612221565b610fb9565b34801561070357600080fd5b50610465610712366004612221565b610fc7565b34801561072357600080fd5b50610465611013565b34801561073857600080fd5b506103b1610747366004612221565b6001600160a01b031660009081526003602052604090205490565b34801561076e57600080fd5b506103b1601c5481565b34801561078457600080fd5b506103b160135481565b34801561079a57600080fd5b5060195461049c906001600160a01b031681565b3480156107ba57600080fd5b50610465611047565b3480156107cf57600080fd5b506104656107de366004612208565b6110a6565b3480156107ef57600080fd5b5060085461043590600160a01b900460ff1681565b34801561081057600080fd5b5061046561081f366004612208565b6110d5565b34801561083057600080fd5b50610465611164565b34801561084557600080fd5b506000546001600160a01b031661049c565b34801561086357600080fd5b50610435610872366004612221565b600b6020526000908152604090205460ff1681565b34801561089357600080fd5b50601a5461049c906001600160a01b031681565b3480156108b357600080fd5b50604080518082019091526004815263084a886960e31b6020820152610408565b3480156108e057600080fd5b506104656108ef3660046122f9565b6111d2565b34801561090057600080fd5b5060165461049c906001600160a01b031681565b34801561092057600080fd5b5061043561092f3660046121dc565b611227565b34801561094057600080fd5b5061046561094f366004612344565b611234565b34801561096057600080fd5b5061046561096f366004612221565b6112c6565b34801561098057600080fd5b5061046561098f366004612221565b611314565b3480156109a057600080fd5b506103b1600d5481565b3480156109b657600080fd5b5060175461049c906001600160a01b031681565b3480156109d657600080fd5b506103b160125481565b3480156109ec57600080fd5b50610465611360565b348015610a0157600080fd5b506103b160115481565b348015610a1757600080fd5b50610465610a26366004612208565b6113a3565b348015610a3757600080fd5b506103b1610a46366004612409565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a7d57600080fd5b50610465610a8c366004612221565b6113d2565b348015610a9d57600080fd5b50610465610aac3660046122f9565b611450565b348015610abd57600080fd5b5060155461049c906001600160a01b031681565b348015610add57600080fd5b506103b1601d5481565b348015610af357600080fd5b50610465610b023660046122f9565b611484565b348015610b1357600080fd5b5060195461043590600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b839086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610bc85760405162461bcd60e51b8152600401610bbf90612442565b60405180910390fd5b601b55565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f9190612462565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610ce9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610cc491849061151b565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610cf4848484611555565b90505b9392505050565b6000546001600160a01b03163314610d285760405162461bcd60e51b8152600401610bbf90612442565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610d96906007546001600160a01b0316600090815260036020526040902054610d909060025490611a0b565b90611a0b565b905090565b6000546001600160a01b03163314610dc55760405162461bcd60e51b8152600401610bbf90612442565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610e1357600080fd5b505af1158015610e27573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610e595760405162461bcd60e51b8152600401610bbf90612442565b601192909255601255601355565b6000546001600160a01b03163314610e915760405162461bcd60e51b8152600401610bbf90612442565b600f8290556010819055600a821115610edb5760405162461bcd60e51b815260206004820152600c60248201526b646f6e20622067726565647960a01b6044820152606401610bbf565b600a6010541115610f1d5760405162461bcd60e51b815260206004820152600c60248201526b646f6e20622067726565647960a01b6044820152606401610bbf565b5050565b6000546001600160a01b03163314610f4b5760405162461bcd60e51b8152600401610bbf90612442565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b03163314610f975760405162461bcd60e51b8152600401610bbf90612442565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b8f82600019610b28565b6000546001600160a01b03163314610ff15760405162461bcd60e51b8152600401610bbf90612442565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461103d5760405162461bcd60e51b8152600401610bbf90612442565b611045611a4d565b565b601a546040516320bec5a360e01b81523360048201526001600160a01b03909116906320bec5a390602401600060405180830381600087803b15801561108c57600080fd5b505af11580156110a0573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146110d05760405162461bcd60e51b8152600401610bbf90612442565b601d55565b6000546001600160a01b031633146110ff5760405162461bcd60e51b8152600401610bbf90612442565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024015b600060405180830381600087803b15801561114957600080fd5b505af115801561115d573d6000803e3d6000fd5b5050505050565b6000546001600160a01b0316331461118e5760405162461bcd60e51b8152600401610bbf90612442565b4780156111cf576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f1d573d6000803e3d6000fd5b50565b6000546001600160a01b031633146111fc5760405162461bcd60e51b8152600401610bbf90612442565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610cf7338484611555565b6000546001600160a01b0316331461125e5760405162461bcd60e51b8152600401610bbf90612442565b60005b8151811015610f1d576001600960008484815181106112825761128261247b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806112be816124a7565b915050611261565b6000546001600160a01b031633146112f05760405162461bcd60e51b8152600401610bbf90612442565b600180546001600160a01b0319166001600160a01b0383161790556111cf81611bdb565b6000546001600160a01b0316331461133e5760405162461bcd60e51b8152600401610bbf90612442565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461138a5760405162461bcd60e51b8152600401610bbf90612442565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146113cd5760405162461bcd60e51b8152600401610bbf90612442565b601c55565b6000546001600160a01b031633146113fc5760405162461bcd60e51b8152600401610bbf90612442565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461147a5760405162461bcd60e51b8152600401610bbf90612442565b610f1d8282611c0d565b6000546001600160a01b031633146114ae5760405162461bcd60e51b8152600401610bbf90612442565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610cf783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cec565b6000818484111561153f5760405162461bcd60e51b8152600401610bbf9190612162565b50600061154c84866124c0565b95945050505050565b600080546001600160a01b0385811691161480159061158257506000546001600160a01b03848116911614155b156115e057601954600160b01b900460ff166115e05760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610bbf565b6001600160a01b03841660009081526009602052604090205460ff1615801561162257506001600160a01b03831660009081526009602052604090205460ff16155b61162b57600080fd5b601954600160a01b900460ff161561164f57611648848484611d1a565b9050610cf7565b601c548211158061167857506001600160a01b0384166000908152600b602052604090205460ff165b6116a95760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610bbf565b6001600160a01b0383166000908152600b602052604090205460ff161580156116db5750600854600160a01b900460ff165b1561173d57601d546001600160a01b0384166000908152600360205260409020546117069084611e00565b111561173d5760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610bbf565b6016546001600160a01b031633148015906117625750601954600160a01b900460ff16155b80156117775750601954600160a81b900460ff165b80156117945750601e543060009081526003602052604090205410155b156117a1576117a1611a4d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600390915291909120546117f391849061151b565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561184357506001600160a01b0384166000908152600a602052604090205460ff16155b61184d5782611858565b611858858585611e5f565b6001600160a01b03851660009081526003602052604090205490915061187e9082611e00565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff1661192257601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561190f57600080fd5b505af1925050508015611920575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166119b357601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156119a057600080fd5b505af19250505080156119b1575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119f891815260200190565b60405180910390a3506001949350505050565b6000610cf783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061151b565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611a9390600290611a8d9060649082908790611f22565b906114d9565b90506000611aa18383611a0b565b9050611aac81611fa4565b60004790506000611acd6064611a8d60115485611f2290919063ffffffff16565b90506000611aeb6064611a8d60135486611f2290919063ffffffff16565b90506000611b0e6002611a8d6064611a8d60125489611f2290919063ffffffff16565b90508315611b52576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611b50573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611ba257600080fd5b505af193505050508015611bb4575060015b508515611bc557611bc586826120cd565b50506019805460ff60a01b191690555050505050565b601a54604051632d89b42760e21b81526001600160a01b0383811660048301529091169063b626d09c9060240161112f565b6001600160a01b0382163014801590611c3457506016546001600160a01b03838116911614155b611c3d57600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611ca357601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610df9565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610df9565b60008183611d0d5760405162461bcd60e51b8152600401610bbf9190612162565b50600061154c84866124d7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611d6b91849061151b565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611d9a9083611e00565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611dee9086815260200190565b60405180910390a35060019392505050565b600080611e0d83856124f9565b905083811015610cf75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bbf565b60165460009081906001600160a01b03858116911614611e8157600f54611e85565b6010545b90506000611e986064611a8d8685611f22565b30600090815260036020526040902054909150611eb59082611e00565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f069085815260200190565b60405180910390a3611f188482611a0b565b9695505050505050565b600082600003611f3457506000610b8f565b6000611f408385612511565b905082611f4d85836124d7565b14610cf75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bbf565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fd957611fd961247b565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612032573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120569190612530565b816001815181106120695761206961247b565b60200260200101906001600160a01b031690816001600160a01b0316815250506120933083610b28565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610df990859060009086903090429060040161254d565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561213d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115d91906125be565b600060208083528351808285015260005b8181101561218f57858101830151858201604001528201612173565b818111156121a1576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146111cf57600080fd5b80356121d7816121b7565b919050565b600080604083850312156121ef57600080fd5b82356121fa816121b7565b946020939093013593505050565b60006020828403121561221a57600080fd5b5035919050565b60006020828403121561223357600080fd5b8135610cf7816121b7565b60008060006060848603121561225357600080fd5b833561225e816121b7565b9250602084013561226e816121b7565b929592945050506040919091013590565b6000806040838503121561229257600080fd5b50508035926020909101359150565b6000806000606084860312156122b657600080fd5b505081359360208301359350604090920135919050565b803580151581146121d757600080fd5b600080604083850312156122f057600080fd5b6121fa836122cd565b6000806040838503121561230c57600080fd5b8235612317816121b7565b9150612325602084016122cd565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561235757600080fd5b823567ffffffffffffffff8082111561236f57600080fd5b818501915085601f83011261238357600080fd5b8135818111156123955761239561232e565b8060051b604051601f19603f830116810181811085821117156123ba576123ba61232e565b6040529182528482019250838101850191888311156123d857600080fd5b938501935b828510156123fd576123ee856121cc565b845293850193928501926123dd565b98975050505050505050565b6000806040838503121561241c57600080fd5b8235612427816121b7565b91506020830135612437816121b7565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b60006020828403121561247457600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016124b9576124b9612491565b5060010190565b6000828210156124d2576124d2612491565b500390565b6000826124f457634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561250c5761250c612491565b500190565b600081600019048311821515161561252b5761252b612491565b500290565b60006020828403121561254257600080fd5b8151610cf7816121b7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561259d5784516001600160a01b031683529383019391830191600101612578565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125d357600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220617a1c2a50273f7e6cc3304a8f2df9ab877b2b6c1a1085784f05663bd4cb310264736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000110cbaa2772ac05083f57819d583b1d6cf86a34e

-----Decoded View---------------
Arg [0] : _owner (address): 0x110CbaA2772AC05083F57819D583B1D6CF86a34E

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000110cbaa2772ac05083f57819d583b1d6cf86a34e


Deployed Bytecode Sourcemap

11328:12453:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13010:34;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13010:34:0;;;;;;;;13276:52;;;;;;;;;;;;;;;;17845:80;;;;;;;;;;-1:-1:-1;17917:5:0;;;;;;;;;;;;-1:-1:-1;;;17917:5:0;;;;17845:80;;;;;;;:::i;18271:216::-;;;;;;;;;;-1:-1:-1;18271:216:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;18271:216:0;1393:187:1;17297:109:0;;;;;;;;;;-1:-1:-1;17297:109:0;;;;;:::i;:::-;;:::i;:::-;;17575:88;;;;;;;;;;-1:-1:-1;17648:12:0;;17575:88;;11411:71;;;;;;;;;;-1:-1:-1;11411:71:0;;;;-1:-1:-1;;;;;11411:71:0;;;;;;-1:-1:-1;;;;;1934:32:1;;;1916:51;;1904:2;1889:18;11411:71:0;1770:203:1;23538:143:0;;;;;;;;;;-1:-1:-1;23538:143:0;;;;;:::i;:::-;;:::i;18785:366::-;;;;;;;;;;-1:-1:-1;18785:366:0;;;;;:::i;:::-;;:::i;16712:90::-;;;;;;;;;;-1:-1:-1;16712:90:0;;;;;:::i;:::-;;:::i;17425:142::-;;;;;;;;;;;;;:::i;12443:27::-;;;;;;;;;;;;;;;;16505:199;;;;;;;;;;-1:-1:-1;16505:199:0;;;;;:::i;:::-;;:::i;15161:233::-;;;;;;;;;;-1:-1:-1;15161:233:0;;;;;:::i;:::-;;:::i;3084:103::-;;;;;;;;;;-1:-1:-1;3084:103:0;;;;;:::i;:::-;3139:4;3174:5;-1:-1:-1;;;;;3163:16:0;;;3174:5;;3163:16;;3084:103;14896:252;;;;;;;;;;-1:-1:-1;14896:252:0;;;;;:::i;:::-;;:::i;17669:80::-;;;;;;;;;;-1:-1:-1;17669:80:0;;11674:2;3407:36:1;;3395:2;3380:18;17669:80:0;3265:184:1;16298:199:0;;;;;;;;;;-1:-1:-1;16298:199:0;;;;;:::i;:::-;;:::i;12174:44::-;;;;;;;;;;-1:-1:-1;12174:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12280:49;;;;;;;;;;-1:-1:-1;12280:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12597:34;;;;;;;;;;;;;;;;16050:102;;;;;;;;;;-1:-1:-1;16050:102:0;;;;;:::i;:::-;;:::i;12410:26::-;;;;;;;;;;;;;;;;12880:40;;;;;;;;;;-1:-1:-1;12880:40:0;;;;-1:-1:-1;;;12880:40:0;;;;;;18495:122;;;;;;;;;;-1:-1:-1;18495:122:0;;;;;:::i;:::-;;:::i;15895:147::-;;;;;;;;;;-1:-1:-1;15895:147:0;;;;;:::i;:::-;;:::i;23087:74::-;;;;;;;;;;;;;:::i;18015:105::-;;;;;;;;;;-1:-1:-1;18015:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;18099:18:0;18081:7;18099:18;;;:9;:18;;;;;;;18015:105;13171:44;;;;;;;;;;;;;;;;12557:31;;;;;;;;;;;;;;;;12759:84;;;;;;;;;;-1:-1:-1;12759:84:0;;;;-1:-1:-1;;;;;12759:84:0;;;23689:89;;;;;;;;;;;;;:::i;15505:104::-;;;;;;;;;;-1:-1:-1;15505:104:0;;;;;:::i;:::-;;:::i;12093:26::-;;;;;;;;;;-1:-1:-1;12093:26:0;;;;-1:-1:-1;;;12093:26:0;;;;;;23416:114;;;;;;;;;;-1:-1:-1;23416:114:0;;;;;:::i;:::-;;:::i;23169:239::-;;;;;;;;;;;;;:::i;17931:78::-;;;;;;;;;;-1:-1:-1;17983:7:0;18001:5;-1:-1:-1;;;;;18001:5:0;17931:78;;12225:48;;;;;;;;;;-1:-1:-1;12225:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12971:32;;;;;;;;;;-1:-1:-1;12971:32:0;;;;-1:-1:-1;;;;;12971:32:0;;;17755:84;;;;;;;;;;-1:-1:-1;17829:7:0;;;;;;;;;;;;-1:-1:-1;;;17829:7:0;;;;17755:84;;15621:122;;;;;;;;;;-1:-1:-1;15621:122:0;;;;;:::i;:::-;;:::i;12671:19::-;;;;;;;;;;-1:-1:-1;12671:19:0;;;;-1:-1:-1;;;;;12671:19:0;;;18625:152;;;;;;;;;;-1:-1:-1;18625:152:0;;;;;:::i;:::-;;:::i;14549:166::-;;;;;;;;;;-1:-1:-1;14549:166:0;;;;;:::i;:::-;;:::i;14394:147::-;;;;;;;;;;-1:-1:-1;14394:147:0;;;;;:::i;:::-;;:::i;16164:121::-;;;;;;;;;;-1:-1:-1;16164:121:0;;;;;:::i;:::-;;:::i;12338:25::-;;;;;;;;;;;;;;;;12697:22;;;;;;;;;;-1:-1:-1;12697:22:0;;;;-1:-1:-1;;;;;12697:22:0;;;12519:31;;;;;;;;;;;;;;;;14767:115;;;;;;;;;;;;;:::i;12479:33::-;;;;;;;;;;;;;;;;15402:95;;;;;;;;;;-1:-1:-1;15402:95:0;;;;;:::i;:::-;;:::i;18126:133::-;;;;;;;;;;-1:-1:-1;18126:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;18228:19:0;;;18210:7;18228:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18126:133;3312:136;;;;;;;;;;-1:-1:-1;3312:136:0;;;;;:::i;:::-;;:::i;17157:132::-;;;;;;;;;;-1:-1:-1;17157:132:0;;;;;:::i;:::-;;:::i;12640:24::-;;;;;;;;;;-1:-1:-1;12640:24:0;;;;-1:-1:-1;;;;;12640:24:0;;;13222:47;;;;;;;;;;;;;;;;15751:136;;;;;;;;;;-1:-1:-1;15751:136:0;;;;;:::i;:::-;;:::i;12927:31::-;;;;;;;;;;-1:-1:-1;12927:31:0;;;;-1:-1:-1;;;12927:31:0;;;;;;18271:216;18375:10;18346:4;18363:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18363:32:0;;;;;;;;;;:41;;;18420:37;18346:4;;18363:32;;18420:37;;;;18398:6;160:25:1;;148:2;133:18;;14:177;18420:37:0;;;;;;;;-1:-1:-1;18475:4:0;18271:216;;;;;:::o;17297:109::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;;;;;;;;;17374:15:::1;:24:::0;17297:109::o;23538:143::-;23630:12;;:43;;-1:-1:-1;;;23630:43:0;;-1:-1:-1;;;;;1934:32:1;;;23630:43:0;;;1916:51:1;23603:7:0;;23630:12;;:30;;1889:18:1;;23630:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18785:366::-;-1:-1:-1;;;;;18905:19:0;;18885:4;18905:19;;;:11;:19;;;;;;;;18925:10;18905:31;;;;;;;;-1:-1:-1;;18905:52:0;18902:186;;19007:69;;;;;;;;;;;-1:-1:-1;;;19007:69:0;;;;;;;;-1:-1:-1;;;;;19007:19:0;;-1:-1:-1;19007:19:0;;;:11;:19;;;;;19027:10;19007:31;;;;;;;;;;:69;;19043:6;;19007:35;:69::i;:::-;-1:-1:-1;;;;;18973:19:0;;;;;;:11;:19;;;;;;;;18993:10;18973:31;;;;;;;:103;18902:186;19107:36;19117:6;19125:9;19136:6;19107:9;:36::i;:::-;19100:43;;18785:366;;;;;;:::o;16712:90::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16774:12:0::1;16789:5;16774:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16774:20:0::1;::::0;;16712:90::o;17425:142::-;17553:4;;-1:-1:-1;;;;;17553:4:0;17478:7;18099:18;;;:9;:18;;;;;;17505:54;;17532:4;;-1:-1:-1;;;;;17532:4:0;18081:7;18099:18;;;:9;:18;;;;;;17505:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17498:61;;17425:142;:::o;16505:199::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;16618:12:::1;::::0;:70:::1;::::0;-1:-1:-1;;;16618:70:0;;::::1;::::0;::::1;7263:25:1::0;;;7304:18;;;7297:34;;;-1:-1:-1;;;;;16618:12:0;;::::1;::::0;:36:::1;::::0;7236:18:1;;16618:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16505:199:::0;;:::o;15161:233::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;15285:13:::1;:28:::0;;;;15324:11:::1;:22:::0;15357:11:::1;:29:::0;15161:233::o;14896:252::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;14992:6:::1;:18:::0;;;15021:7:::1;:20:::0;;;15072:2:::1;15062:12:::0;::::1;;15054:37;;;::::0;-1:-1:-1;;;15054:37:0;;7544:2:1;15054:37:0::1;::::0;::::1;7526:21:1::0;7583:2;7563:18;;;7556:30;-1:-1:-1;;;7602:18:1;;;7595:42;7654:18;;15054:37:0::1;7342:336:1::0;15054:37:0::1;15121:2;15110:7;;:13;;15102:38;;;::::0;-1:-1:-1;;;15102:38:0;;7544:2:1;15102:38:0::1;::::0;::::1;7526:21:1::0;7583:2;7563:18;;;7556:30;-1:-1:-1;;;7602:18:1;;;7595:42;7654:18;;15102:38:0::1;7342:336:1::0;15102:38:0::1;14896:252:::0;;:::o;16298:199::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;16407:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;16407:39:0::1;-1:-1:-1::0;;;;16407:39:0;;::::1;::::0;;;::::1;::::0;;;16457:13:::1;:32:::0;16298:199::o;16050:102::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;16122:8:::1;:22:::0;;-1:-1:-1;;;;;;16122:22:0::1;-1:-1:-1::0;;;;;16122:22:0;;;::::1;::::0;;;::::1;::::0;;16050:102::o;18495:122::-;18550:4;18574:35;18582:7;-1:-1:-1;;18574:7:0;:35::i;15895:147::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;15989:15:::1;:45:::0;;-1:-1:-1;;;;;;15989:45:0::1;-1:-1:-1::0;;;;;15989:45:0;;;::::1;::::0;;;::::1;::::0;;15895:147::o;23087:74::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;23143:10:::1;:8;:10::i;:::-;23087:74::o:0;23689:89::-;23739:12;;:31;;-1:-1:-1;;;23739:31:0;;23759:10;23739:31;;;1916:51:1;-1:-1:-1;;;;;23739:12:0;;;;:19;;1889:18:1;;23739:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23689:89::o;15505:104::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;15580:9:::1;:21:::0;15505:104::o;23416:114::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;23491:12:::1;::::0;:31:::1;::::0;-1:-1:-1;;;;;;23491:31:0;;::::1;::::0;::::1;160:25:1::0;;;-1:-1:-1;;;;;23491:12:0;;::::1;::::0;:20:::1;::::0;133:18:1;;23491:31:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23416:114:::0;:::o;23169:239::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;23253:21:::1;23288:22:::0;;23285:116:::1;;23344:15;::::0;23336:53:::1;::::0;-1:-1:-1;;;;;23344:15:0;;::::1;::::0;23336:53;::::1;;;::::0;23370:18;;23344:15:::1;23336:53:::0;23344:15;23336:53;23370:18;23344:15;23336:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;23285:116;23213:195;23169:239::o:0;15621:122::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15707:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15707:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15621:122::o;18625:152::-;18705:4;18729:40;18739:10;18751:9;18762:6;18729:9;:40::i;14549:166::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;14625:6:::1;14620:88;14641:5;:12;14637:1;:16;14620:88;;;14692:4;14675;:14;14680:5;14686:1;14680:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14675:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14675:14:0;:21;;-1:-1:-1;;14675:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14655:3;::::1;::::0;::::1;:::i;:::-;;;;14620:88;;14394:147:::0;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;14469:11:::1;:25:::0;;-1:-1:-1;;;;;;14469:25:0::1;-1:-1:-1::0;;;;;14469:25:0;::::1;;::::0;;14505:28:::1;14469:25:::0;14505:15:::1;:28::i;16164:121::-:0;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;16250:10:::1;:27:::0;;-1:-1:-1;;;;;;16250:27:0::1;-1:-1:-1::0;;;;;16250:27:0;;;::::1;::::0;;;::::1;::::0;;16164:121::o;14767:115::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;14833:12:::1;14820:10;:25:::0;14856:11:::1;:18:::0;;-1:-1:-1;;;;14856:18:0::1;-1:-1:-1::0;;;14856:18:0::1;::::0;;14767:115::o;15402:95::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;15473:5:::1;:16:::0;15402:95::o;3312:136::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;3388:5:::1;:11:::0;;-1:-1:-1;;;;;;3388:11:0::1;-1:-1:-1::0;;;;;3388:11:0;::::1;::::0;;::::1;::::0;;;3415:25:::1;::::0;1916:51:1;;;3415:25:0::1;::::0;1904:2:1;1889:18;3415:25:0::1;;;;;;;3312:136:::0;:::o;17157:132::-;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;17245:36:::1;17266:6;17274;17245:20;:36::i;15751:136::-:0;3139:4;3174:5;-1:-1:-1;;;;;3174:5:0;2991:10;3163:16;2975:38;;;;-1:-1:-1;;;2975:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15847:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;15847:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15751:136::o;1283:132::-;1341:7;1368:39;1372:1;1375;1368:39;;;;;;;;;;;;;;;;;:3;:39::i;829:192::-;915:7;951:12;943:6;;;;935:29;;;;-1:-1:-1;;;935:29:0;;;;;;;;:::i;:::-;-1:-1:-1;975:9:0;987:5;991:1;987;:5;:::i;:::-;975:17;829:192;-1:-1:-1;;;;;829:192:0:o;19159:1422::-;19247:4;19277:5;;-1:-1:-1;;;;;19268:14:0;;;19277:5;;19268:14;;;;:35;;-1:-1:-1;19298:5:0;;-1:-1:-1;;;;;19286:17:0;;;19298:5;;19286:17;;19268:35;19264:88;;;19313:11;;-1:-1:-1;;;19313:11:0;;;;19305:47;;;;-1:-1:-1;;;19305:47:0;;8635:2:1;19305:47:0;;;8617:21:1;8674:2;8654:18;;;8647:30;8713:25;8693:18;;;8686:53;8756:18;;19305:47:0;8433:347:1;19305:47:0;-1:-1:-1;;;;;19414:12:0;;;;;;:4;:12;;;;;;;;19413:13;:33;;;;-1:-1:-1;;;;;;19431:15:0;;;;;;:4;:15;;;;;;;;19430:16;19413:33;19405:42;;;;;;19463:16;;-1:-1:-1;;;19463:16:0;;;;19460:73;;;19489:41;19504:6;19512:9;19523:6;19489:14;:41::i;:::-;19482:48;;;;19460:73;19563:5;;19553:6;:15;;:42;;;-1:-1:-1;;;;;;19572:23:0;;;;;;:15;:23;;;;;;;;19553:42;19545:57;;;;-1:-1:-1;;;19545:57:0;;8987:2:1;19545:57:0;;;8969:21:1;9026:1;9006:18;;;8999:29;-1:-1:-1;;;9044:18:1;;;9037:32;9086:18;;19545:57:0;8785:325:1;19545:57:0;-1:-1:-1;;;;;19619:26:0;;;;;;:15;:26;;;;;;;;19618:27;:38;;;;-1:-1:-1;19649:7:0;;-1:-1:-1;;;19649:7:0;;;;19618:38;19615:143;;;19726:9;;-1:-1:-1;;;;;19690:20:0;;;;;;:9;:20;;;;;;:32;;19715:6;19690:24;:32::i;:::-;:45;;19682:64;;;;-1:-1:-1;;;19682:64:0;;9317:2:1;19682:64:0;;;9299:21:1;9356:1;9336:18;;;9329:29;-1:-1:-1;;;9374:18:1;;;9367:36;9420:18;;19682:64:0;9115:329:1;19682:64:0;19787:4;;-1:-1:-1;;;;;19787:4:0;19773:10;:18;;;;:39;;-1:-1:-1;19796:16:0;;-1:-1:-1;;;19796:16:0;;;;19795:17;19773:39;:64;;;;-1:-1:-1;19816:21:0;;-1:-1:-1;;;19816:21:0;;;;19773:64;:109;;;;-1:-1:-1;19869:13:0;;19859:4;19841:24;;;;:9;:24;;;;;;:41;;19773:109;19770:128;;;19885:10;:8;:10::i;:::-;19930:53;;;;;;;;;;;-1:-1:-1;;;19930:53:0;;;;;;;;-1:-1:-1;;;;;19930:17:0;;-1:-1:-1;19930:17:0;;;:9;:17;;;;;;;;:53;;19952:6;;19930:21;:53::i;:::-;-1:-1:-1;;;;;19910:17:0;;;;;;:9;:17;;;;;;;;:73;;;;20027:11;:19;;;;;;;;20026:20;:47;;;;-1:-1:-1;;;;;;20051:22:0;;;;;;:11;:22;;;;;;;;20050:23;20026:47;:93;;20113:6;20026:93;;;20076:34;20084:6;20092:9;20103:6;20076:7;:34::i;:::-;-1:-1:-1;;;;;20153:20:0;;;;;;:9;:20;;;;;;20004:115;;-1:-1:-1;20153:37:0;;20004:115;20153:24;:37::i;:::-;-1:-1:-1;;;;;20130:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;20236:24;;;;;:16;:24;;;;;;;20232:120;;20281:12;;-1:-1:-1;;;;;20311:17:0;;;20281:12;20311:17;;;:9;:17;;;;;;;;20281:48;;-1:-1:-1;;;20281:48:0;;;;;9623:51:1;;;;9690:18;;;9683:34;20281:12:0;;;:21;;9596:18:1;;20281:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20277:64;;-1:-1:-1;;;;;20368:27:0;;;;;;:16;:27;;;;;;;;20364:130;;20416:12;;-1:-1:-1;;;;;20449:20:0;;;20416:12;20449:20;;;:9;:20;;;;;;;;20416:54;;-1:-1:-1;;;20416:54:0;;;;;9623:51:1;;;;9690:18;;;9683:34;20416:12:0;;;:21;;9596:18:1;;20416:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20412:70;;20528:9;-1:-1:-1;;;;;20511:40:0;20520:6;-1:-1:-1;;;;;20511:40:0;;20539:11;20511:40;;;;160:25:1;;148:2;133:18;;14:177;20511:40:0;;;;;;;;-1:-1:-1;20569:4:0;;19159:1422;-1:-1:-1;;;;19159:1422:0:o;687:136::-;745:7;772:43;776:1;779;772:43;;;;;;;;;;;;;;;;;:3;:43::i;22131:948::-;13085:16;:23;;-1:-1:-1;;;;13085:23:0;-1:-1:-1;;;13085:23:0;;;22230:4:::1;13085:23:::0;22212:24;;;:9:::1;:24;::::0;;;;;22294:11:::1;::::0;22212:24;;13085:23;22277:45:::1;::::0;22320:1:::1;::::0;22277:38:::1;::::0;22311:3:::1;::::0;22277:38;;22212:24;;22277:16:::1;:29::i;:::-;:33:::0;::::1;:38::i;:45::-;22248:74:::0;-1:-1:-1;22338:20:0::1;22361:36;:12:::0;22248:74;22361:16:::1;:36::i;:::-;22338:59;;22410:30;22427:12;22410:16;:30::i;:::-;22453:23;22479:21;22453:47;;22511:25;22539:43;22578:3;22539:34;22559:13;;22539:15;:19;;:34;;;;:::i;:43::-;22511:71;;22593:23;22619:41;22656:3;22619:32;22639:11;;22619:15;:19;;:32;;;;:::i;:41::-;22593:67;;22671:23;22697:48;22743:1;22697:41;22734:3;22697:32;22717:11;;22697:15;:19;;:32;;;;:::i;:48::-;22671:74:::0;-1:-1:-1;22768:19:0;;22764:101:::1;;22811:15;::::0;22803:50:::1;::::0;-1:-1:-1;;;;;22811:15:0;;::::1;::::0;22803:50;::::1;;;::::0;22837:15;;22811::::1;22803:50:::0;22811:15;22803:50;22837:15;22811;22803:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22764:101;22889:12;;;;;;;;;-1:-1:-1::0;;;;;22889:12:0::1;-1:-1:-1::0;;;;;22889:20:0::1;;22917:17;22889:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22885:64:::0;22973:22;;22969:103:::1;;23011:49;23024:18;23044:15;23011:12;:49::i;:::-;-1:-1:-1::0;;13131:16:0;:24;;-1:-1:-1;;;;13131:24:0;;;-1:-1:-1;;;;;22131:948:0:o;14272:114::-;14338:12;;:40;;-1:-1:-1;;;14338:40:0;;-1:-1:-1;;;;;1934:32:1;;;14338:40:0;;;1916:51:1;14338:12:0;;;;:27;;1889:18:1;;14338:40:0;1770:203:1;16810:339:0;-1:-1:-1;;;;;16897:23:0;;16915:4;16897:23;;;;:41;;-1:-1:-1;16934:4:0;;-1:-1:-1;;;;;16924:14:0;;;16934:4;;16924:14;;16897:41;16889:50;;;;;;-1:-1:-1;;;;;16950:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;16950:33:0;;;;;;;;;;;;16994:148;;17019:12;;:32;;-1:-1:-1;;;17019:32:0;;-1:-1:-1;;;;;9641:32:1;;;17019::0;;;9623:51:1;17019:12:0;9690:18:1;;;9683:34;17019:12:0;;;;:21;;9596:18:1;;17019:32:0;9449:274:1;16994:148:0;17082:12;;-1:-1:-1;;;;;17112:17:0;;;17082:12;17112:17;;;:9;:17;;;;;;;;17082:48;;-1:-1:-1;;;17082:48:0;;;;;9623:51:1;;;;9690:18;;;9683:34;17082:12:0;;;:21;;9596:18:1;;17082:48:0;9449:274:1;1421:345:0;1507:7;1609:12;1602:5;1594:28;;;;-1:-1:-1;;;1594:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1633:9:0;1645:5;1649:1;1645;:5;:::i;20593:330::-;20723:53;;;;;;;;;;;-1:-1:-1;;;20723:53:0;;;;;;;;-1:-1:-1;;;;;20723:17:0;;20686:4;20723:17;;;:9;:17;;;;;;;:53;;20745:6;;20723:21;:53::i;:::-;-1:-1:-1;;;;;20703:17:0;;;;;;;:9;:17;;;;;;:73;;;;20810:20;;;;;;;:32;;20835:6;20810:24;:32::i;:::-;-1:-1:-1;;;;;20787:20:0;;;;;;;:9;:20;;;;;;;:55;;;;20858:35;;;;;;;;;;20886:6;160:25:1;;148:2;133:18;;14:177;20858:35:0;;;;;;;;-1:-1:-1;20911:4:0;20593:330;;;;;:::o;500:181::-;558:7;;590:5;594:1;590;:5;:::i;:::-;578:17;;619:1;614;:6;;606:46;;;;-1:-1:-1;;;606:46:0;;10572:2:1;606:46:0;;;10554:21:1;10611:2;10591:18;;;10584:30;10650:29;10630:18;;;10623:57;10697:18;;606:46:0;10370:351:1;20937:427:0;21077:4;;21023:7;;;;-1:-1:-1;;;;;21077:17:0;;;:4;;:17;:36;;21107:6;;21077:36;;;21097:7;;21077:36;21053:60;-1:-1:-1;21124:17:0;21144:34;21174:3;21144:25;:6;21053:60;21144:10;:25::i;:34::-;21236:4;21218:24;;;;:9;:24;;;;;;21124:54;;-1:-1:-1;21218:39:0;;21124:54;21218:28;:39::i;:::-;21209:4;21191:24;;;;:9;:24;;;;;;;:66;;;;21273:42;;-1:-1:-1;;;;;21273:42:0;;;;;;;21305:9;160:25:1;;148:2;133:18;;14:177;21273:42:0;;;;;;;;21335:21;:6;21346:9;21335:10;:21::i;:::-;21328:28;20937:427;-1:-1:-1;;;;;;20937:427:0:o;1027:250::-;1085:7;1109:1;1114;1109:6;1105:47;;-1:-1:-1;1139:1:0;1132:8;;1105:47;1164:9;1176:5;1180:1;1176;:5;:::i;:::-;1164:17;-1:-1:-1;1209:1:0;1200:5;1204:1;1164:17;1200:5;:::i;:::-;:10;1192:56;;;;-1:-1:-1;;;1192:56:0;;11101:2:1;1192:56:0;;;11083:21:1;11140:2;11120:18;;;11113:30;11179:34;11159:18;;;11152:62;-1:-1:-1;;;11230:18:1;;;11223:31;11271:19;;1192:56:0;10899:397:1;21376:460:0;21468:16;;;21482:1;21468:16;;;;;;;;21444:21;;21468:16;;;;;;;;;;-1:-1:-1;21468:16:0;21444:40;;21513:4;21495;21500:1;21495:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21495:23:0;;;:7;;;;;;;;;;:23;;;;21539:6;;:13;;;-1:-1:-1;;;21539:13:0;;;;:6;;;;;:11;;:13;;;;;21495:7;;21539:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21529:4;21534:1;21529:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21529:23:0;;;-1:-1:-1;;;;;21529:23:0;;;;;21565:35;21581:4;21588:11;21565:7;:35::i;:::-;-1:-1:-1;21613:6:0;;:215;;-1:-1:-1;;;21613:215:0;;-1:-1:-1;;;;;21613:6:0;;;;:57;;:215;;21685:11;;21613:6;;21755:4;;21782;;21802:15;;21613:215;;;:::i;21844:279::-;21925:6;;22066:8;;21925:190;;-1:-1:-1;;;21925:190:0;;21988:4;21925:190;;;12883:34:1;12933:18;;;12926:34;;;21925:6:0;12976:18:1;;;12969:34;;;13019:18;;;13012:34;-1:-1:-1;;;;;22066:8:0;;;13062:19:1;;;13055:44;22089:15:0;13115:19:1;;;13108:35;21925:6:0;;;:22;;21955:9;;12817:19:1;;21925:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:134;1002:20;;1031:31;1002:20;1031:31;:::i;:::-;934:134;;;:::o;1073:315::-;1141:6;1149;1202:2;1190:9;1181:7;1177:23;1173:32;1170:52;;;1218:1;1215;1208:12;1170:52;1257:9;1244:23;1276:31;1301:5;1276:31;:::i;:::-;1326:5;1378:2;1363:18;;;;1350:32;;-1:-1:-1;;;1073:315:1:o;1585:180::-;1644:6;1697:2;1685:9;1676:7;1672:23;1668:32;1665:52;;;1713:1;1710;1703:12;1665:52;-1:-1:-1;1736:23:1;;1585:180;-1:-1:-1;1585:180:1:o;1978:247::-;2037:6;2090:2;2078:9;2069:7;2065:23;2061:32;2058:52;;;2106:1;2103;2096:12;2058:52;2145:9;2132:23;2164:31;2189:5;2164:31;:::i;2230:456::-;2307:6;2315;2323;2376:2;2364:9;2355:7;2351:23;2347:32;2344:52;;;2392:1;2389;2382:12;2344:52;2431:9;2418:23;2450:31;2475:5;2450:31;:::i;:::-;2500:5;-1:-1:-1;2557:2:1;2542:18;;2529:32;2570:33;2529:32;2570:33;:::i;:::-;2230:456;;2622:7;;-1:-1:-1;;;2676:2:1;2661:18;;;;2648:32;;2230:456::o;2691:248::-;2759:6;2767;2820:2;2808:9;2799:7;2795:23;2791:32;2788:52;;;2836:1;2833;2826:12;2788:52;-1:-1:-1;;2859:23:1;;;2929:2;2914:18;;;2901:32;;-1:-1:-1;2691:248:1:o;2944:316::-;3021:6;3029;3037;3090:2;3078:9;3069:7;3065:23;3061:32;3058:52;;;3106:1;3103;3096:12;3058:52;-1:-1:-1;;3129:23:1;;;3199:2;3184:18;;3171:32;;-1:-1:-1;3250:2:1;3235:18;;;3222:32;;2944:316;-1:-1:-1;2944:316:1:o;3454:160::-;3519:20;;3575:13;;3568:21;3558:32;;3548:60;;3604:1;3601;3594:12;3619:248;3684:6;3692;3745:2;3733:9;3724:7;3720:23;3716:32;3713:52;;;3761:1;3758;3751:12;3713:52;3784:26;3800:9;3784:26;:::i;4369:315::-;4434:6;4442;4495:2;4483:9;4474:7;4470:23;4466:32;4463:52;;;4511:1;4508;4501:12;4463:52;4550:9;4537:23;4569:31;4594:5;4569:31;:::i;:::-;4619:5;-1:-1:-1;4643:35:1;4674:2;4659:18;;4643:35;:::i;:::-;4633:45;;4369:315;;;;;:::o;4689:127::-;4750:10;4745:3;4741:20;4738:1;4731:31;4781:4;4778:1;4771:15;4805:4;4802:1;4795:15;4821:1121;4905:6;4936:2;4979;4967:9;4958:7;4954:23;4950:32;4947:52;;;4995:1;4992;4985:12;4947:52;5035:9;5022:23;5064:18;5105:2;5097:6;5094:14;5091:34;;;5121:1;5118;5111:12;5091:34;5159:6;5148:9;5144:22;5134:32;;5204:7;5197:4;5193:2;5189:13;5185:27;5175:55;;5226:1;5223;5216:12;5175:55;5262:2;5249:16;5284:2;5280;5277:10;5274:36;;;5290:18;;:::i;:::-;5336:2;5333:1;5329:10;5368:2;5362:9;5431:2;5427:7;5422:2;5418;5414:11;5410:25;5402:6;5398:38;5486:6;5474:10;5471:22;5466:2;5454:10;5451:18;5448:46;5445:72;;;5497:18;;:::i;:::-;5533:2;5526:22;5583:18;;;5617:15;;;;-1:-1:-1;5659:11:1;;;5655:20;;;5687:19;;;5684:39;;;5719:1;5716;5709:12;5684:39;5743:11;;;;5763:148;5779:6;5774:3;5771:15;5763:148;;;5845:23;5864:3;5845:23;:::i;:::-;5833:36;;5796:12;;;;5889;;;;5763:148;;;5930:6;4821:1121;-1:-1:-1;;;;;;;;4821:1121:1:o;5947:388::-;6015:6;6023;6076:2;6064:9;6055:7;6051:23;6047:32;6044:52;;;6092:1;6089;6082:12;6044:52;6131:9;6118:23;6150:31;6175:5;6150:31;:::i;:::-;6200:5;-1:-1:-1;6257:2:1;6242:18;;6229:32;6270:33;6229:32;6270:33;:::i;:::-;6322:7;6312:17;;;5947:388;;;;;:::o;6566:329::-;6768:2;6750:21;;;6807:1;6787:18;;;6780:29;-1:-1:-1;;;6840:2:1;6825:18;;6818:36;6886:2;6871:18;;6566:329::o;6900:184::-;6970:6;7023:2;7011:9;7002:7;6998:23;6994:32;6991:52;;;7039:1;7036;7029:12;6991:52;-1:-1:-1;7062:16:1;;6900:184;-1:-1:-1;6900:184:1:o;7683:127::-;7744:10;7739:3;7735:20;7732:1;7725:31;7775:4;7772:1;7765:15;7799:4;7796:1;7789:15;7815:127;7876:10;7871:3;7867:20;7864:1;7857:31;7907:4;7904:1;7897:15;7931:4;7928:1;7921:15;7947:135;7986:3;8007:17;;;8004:43;;8027:18;;:::i;:::-;-1:-1:-1;8074:1:1;8063:13;;7947:135::o;8303:125::-;8343:4;8371:1;8368;8365:8;8362:34;;;8376:18;;:::i;:::-;-1:-1:-1;8413:9:1;;8303:125::o;10015:217::-;10055:1;10081;10071:132;;10125:10;10120:3;10116:20;10113:1;10106:31;10160:4;10157:1;10150:15;10188:4;10185:1;10178:15;10071:132;-1:-1:-1;10217:9:1;;10015:217::o;10237:128::-;10277:3;10308:1;10304:6;10301:1;10298:13;10295:39;;;10314:18;;:::i;:::-;-1:-1:-1;10350:9:1;;10237:128::o;10726:168::-;10766:7;10832:1;10828;10824:6;10820:14;10817:1;10814:21;10809:1;10802:9;10795:17;10791:45;10788:71;;;10839:18;;:::i;:::-;-1:-1:-1;10879:9:1;;10726:168::o;11301:251::-;11371:6;11424:2;11412:9;11403:7;11399:23;11395:32;11392:52;;;11440:1;11437;11430:12;11392:52;11472:9;11466:16;11491:31;11516:5;11491:31;:::i;11557:980::-;11819:4;11867:3;11856:9;11852:19;11898:6;11887:9;11880:25;11924:2;11962:6;11957:2;11946:9;11942:18;11935:34;12005:3;12000:2;11989:9;11985:18;11978:31;12029:6;12064;12058:13;12095:6;12087;12080:22;12133:3;12122:9;12118:19;12111:26;;12172:2;12164:6;12160:15;12146:29;;12193:1;12203:195;12217:6;12214:1;12211:13;12203:195;;;12282:13;;-1:-1:-1;;;;;12278:39:1;12266:52;;12373:15;;;;12338:12;;;;12314:1;12232:9;12203:195;;;-1:-1:-1;;;;;;;12454:32:1;;;;12449:2;12434:18;;12427:60;-1:-1:-1;;;12518:3:1;12503:19;12496:35;12415:3;11557:980;-1:-1:-1;;;11557:980:1:o;13154:306::-;13242:6;13250;13258;13311:2;13299:9;13290:7;13286:23;13282:32;13279:52;;;13327:1;13324;13317:12;13279:52;13356:9;13350:16;13340:26;;13406:2;13395:9;13391:18;13385:25;13375:35;;13450:2;13439:9;13435:18;13429:25;13419:35;;13154:306;;;;;:::o

Swarm Source

ipfs://226d45f716b62027522e95d691dd3f2e9a825f45a0a5e5e77712ec4aad0e51cb
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.