ETH Price: $3,632.32 (-2.10%)

Token

ERC-20: SHIBETOSHI (STOSHI)
 

Overview

Max Total Supply

21,000,000 STOSHI

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
59,559.264518144103411764 STOSHI

Value
$0.00
0x4d052c2f196e2157e89ae22579d1b39f8f077d6c
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:
SHIBETOSHI

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
SHIBETOSHI | STOSHI

https://medium.com/@SHIBETOSHIERC20/3199cc2982d3

Hi DEV Here,

So, I have been sitting on the sidelines watching the market.
After some thinking I decided on leveraging the move in market, which led me
to create a safe community rewards token with low tax.

This is an experiment for me so I hope you all are ready and can handle this.
Look at these Tokenomics:
Supply = 21.000.000.
Max Trx = 420.000.
Max Wallet = 420.000.
BUY/SELL TAX = 6% (Buy&Sell) 1.80% Dev fee & 4.20% BTC Rewards.

I will be observing from the outside as I want this to be driven by the community!

My promise to you the Investor:

* Contract is safe and will be locked for 30 Days and ownership will be transferred to a dead address.
* Contract Trx and Wallet size can't be lower than 2%, and taxes won't be higher than 6%.
* I will communicate on ETHERSCAN.io.
* Website will be built at 69K MC.
* I hope the community makes a Telegram (I will join at 100K MC).  
* DEXTOOL LOGO SOCIAL UPDATE at 150K MC.

I only get 1,80 % Tax 4,20 % goes back to You the Community.
No Dev Cash Grab, but a Dev Who Cares About the COMMUNITY
Let's Moon this, because the more volume we get the more BTC we Spread.

* I will buy back with at least 0.3 % of the taxes.
* I won't Sell any tokens but will burn them.
* Liquidity will be locked for 100 years at 200K MC

Way forward:
* Release SHIBETOSHI SWAP at 250K MC
* Build/Release SHIBETOSH LOCKER at 350K MC
* I will use 0.5% of my collected taxes for fast track CMC & Coingecko at 669K MC
* Start building SHIBETOSHI ANTI RUGG SYSTEM (ARS) RUGGSCANNER/TOKENSNIFFER and HONEYPOTCHECKER at 750K MC
* I will Dox at 1 million MC, I'm not a coward like SATOSHI

We don't need big paid Influencers or big Marketing,I rather the community  get all the rewards! RIGHT????
4.20% BTC Reward on a 6% token is INSANE influencers will shill this for free!!
We want organic growth, share the message!
Get all your friends and family involved, even your wife's boyfriend.

This is not a scam, so don't listen to fudders that just want you to ape into their scam project.
If you investors Don't Ape into this one maybe you like to be RUGGED.
I hate ruggers but I also hate mindless sheep investors that ape in Rugg/Scamcoins.
Be smart about this and invest in a token that's built for the community by a dev that likes safe 
and honest projects. 

CREATE THE HYPE
BE SMART FOLLOW THE HYPE 
SEND THIS SHIT
LET THE FOMO BEGIN
FUCK THE SCAMS& THE RUGS.
SPREAD BTC 4.20 % BTC REWARDS 1.80 % DEV TAX
LETS FUCKING GO SEND IT

Greetings,
SHIBETOSHIDEV.eth
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.13;
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;
    }
}

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

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

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

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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 IBtcPrinter {
    function setBitCoin (address btcAddress) 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 goBTC(address shareholder) external;
}


contract BtcPrinter is IBtcPrinter {

    using SafeMath for uint256;
    address _token;

    address public BitCoin;

    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 = 69 minutes;
    uint256 public minDistribution = 1 / 100000 * (10 ** 18);

    uint256 public currentIndex;
    bool initialized;

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

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

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

    function setBitCoin(address btcAddress) external override onlyToken {
        BitCoin = btcAddress;
    }

    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(BitCoin).balanceOf(address(this));

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

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

        uint256 amount = IERC20(BitCoin).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(BitCoin).transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function goBTC(address) external override onlyToken {
        require(shouldDistribute(msg.sender), "Btc 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 SHIBETOSHI is IERC20, Auth {
    using SafeMath for uint256;

    address public BitCoin = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599; //wBTC 

    string private constant _name = "SHIBETOSHI";
    string private constant _symbol = "STOSHI";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 21000000 * (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 = 6;
    uint256 public sellFee = 6;

    uint256 public toReflections = 70;//7x0.6=4.20%
    uint256 public toLiquidity = 0;
    uint256 public toMarketing = 30;//3x0.6=1.80%

    uint256 public allocationSum = 100;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public devWallet = 0x624588d9315bb503705986732BF90A65A5860D6F;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;
    
    BtcPrinter public btcPrinter;
    uint256 public btcPrinterGas = 0;

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

    uint256 public maxTx = _totalSupply.mul(2).div(100);
    uint256 public maxWallet = _totalSupply.mul(2).div(100);
    uint256 public swapThreshold = _totalSupply.mul(5).div(10000);

    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;

        btcPrinter = new BtcPrinter();
        
        isFeeExempt[_owner] = true;
        isFeeExempt[devWallet] = 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 _setBitCoin(address btcAddress) internal {
        btcPrinter.setBitCoin(btcAddress);
    }

    function setBitCoin(address btcAddress) external onlyOwner {
        BitCoin = btcAddress;
        _setBitCoin(btcAddress);
    }

    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 <= 6, "don be greedy DEV");
        require(sellFee <= 6, "don be greedy DEV");
    } 
    
    function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner {
        toReflections = newRewardFee;
        toLiquidity = newLpFee;
        toMarketing = newMarketingFee;
    }

    function changeTxLimit(uint256 amountPercent) external onlyOwner {
        require(amountPercent>1);
        maxTx = (_totalSupply * amountPercent ) / 100;
    }

    function changeWalletLimit(uint256 amountPercent) external onlyOwner {
        require(amountPercent>1);
        maxWallet = (_totalSupply * amountPercent ) / 100;
    }

     function removeLimits() external onlyOwner{
        maxTx = _totalSupply;
        maxWallet = _totalSupply;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

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

    function setDevWallet(address payable newDevWallet) external onlyOwner {
        devWallet = payable(newDevWallet);
    }

    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 {
        btcPrinter.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){
            btcPrinter.setShare(holder, 0);
        }else{
            btcPrinter.setShare(holder, _balances[holder]);
        }
    }

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

    function changeBtcPrinterGas(uint256 newGas) external onlyOwner {
        btcPrinterGas = 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 btcPrinter.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try btcPrinter.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 ethForBitCoin = 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(devWallet).transfer(ethForMarketing);
        }
        
        try btcPrinter.deposit{value: ethForBitCoin}() {} 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(devWallet).transfer(contractETHBalance);
        }
    }

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

    function howMuchBTC(address shareholder) external view returns (uint256) {
        return btcPrinter.getUnpaidEarnings(shareholder);
    }

    function giveMeMyOwedBtc() external {
        btcPrinter.goBTC(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":"BitCoin","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":"btcPrinter","outputs":[{"internalType":"contract BtcPrinter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"btcPrinterGas","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":"newGas","type":"uint256"}],"name":"changeBtcPrinterGas","outputs":[],"stateMutability":"nonpayable","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":"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":"amountPercent","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"giveMeMyOwedBtc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"howMuchBTC","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":"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":"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"btcAddress","type":"address"}],"name":"setBitCoin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","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":"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"}]

6080604052600180546001600160a01b031916732260fac5e5542a773aa44fbcfedf7c193bc2c599179055620000386012600a620006de565b62000048906301406f40620006ef565b6002818155600780546001600160a01b031990811661dead908117909255600880546001600160a81b031916600160a01b179055600e805490911690911790556006600f819055601055604660115560006012819055601e6013556064601481905560198054600162ffff0160a01b031916750100624588d9315bb503705986732bf90a65a5860d6f179055601b9190915562000110929091620000fc91906200158e620004a0602090811b91909117901c565b6200053760201b620016101790919060201c565b601c55620001356064620000fc60028054620004a060201b6200158e1790919060201c565b601d556200015c612710620000fc6005600254620004a060201b6200158e1790919060201c565b601e553480156200016c57600080fd5b5060405162003fec38038062003fec8339810160408190526200018f9162000711565b600080546001600160a01b03199081166001600160a01b0384161790915560158054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022e919062000711565b600680546001600160a01b0319166001600160a01b039283161790556015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200028d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b3919062000711565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032b919062000711565b601680546001600160a01b0319166001600160a01b0392831617905530600090815260046020908152604080832060155490941683529290528190206000199055516200037890620005bd565b604051809103906000f08015801562000395573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b039283161790558181166000818152600a60209081526040808320805460ff1990811660019081179092556019548716855282852080548216831790556016805488168652600c85528386208054831684179055308652838620805483168417905560078054891687528487208054841685179055878752600b865284872080548416851790559054881686528386208054831684179055549096168452818420805490961617909455600254838352600382528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620007b7565b600082600003620004b45750600062000531565b6000620004c28385620006ef565b905082620004d185836200073c565b146200052e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200052e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058160201b60201c565b60008183620005a55760405162461bcd60e51b81526004016200052591906200075f565b506000620005b484866200073c565b95945050505050565b61114e8062002e9e83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000622578160001904821115620006065762000606620005cb565b808516156200061457918102915b93841c9390800290620005e6565b509250929050565b6000826200063b5750600162000531565b816200064a5750600062000531565b81600181146200066357600281146200066e576200068e565b600191505062000531565b60ff841115620006825762000682620005cb565b50506001821b62000531565b5060208310610133831016604e8410600b8410161715620006b3575081810a62000531565b620006bf8383620005e1565b8060001904821115620006d657620006d6620005cb565b029392505050565b60006200052e60ff8416836200062a565b60008160001904831182151516156200070c576200070c620005cb565b500290565b6000602082840312156200072457600080fd5b81516001600160a01b03811681146200052e57600080fd5b6000826200075a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b818110156200078e5785810183015185820160400152820162000770565b81811115620007a1576000604083870101525b50601f01601f1916929092016040019392505050565b6126d780620007c76000396000f3fe60806040526004361061039b5760003560e01c8063751039fc116101dc578063bf56b37111610102578063f2fde38b116100a0578063f8fc9a1e1161006f578063f8fc9a1e14610ad6578063fabe628314610af6578063fcd391b914610b16578063ffb54a9914610b2b57600080fd5b8063f2fde38b14610a60578063f708a64f14610a80578063f887ea4014610aa0578063f8b45b0514610ac057600080fd5b8063c9567bf9116100dc578063c9567bf9146109cf578063caa5581b146109e4578063d920334e146109fa578063dd62ed3e14610a1a57600080fd5b8063bf56b37114610983578063c45a015514610999578063c8d1293d146109b957600080fd5b80638b42507f1161017a578063a8aa1b3111610149578063a8aa1b3114610903578063a9059cbb14610923578063b515566a14610943578063bb542ef01461096357600080fd5b80638b42507f146108645780638ea5220f1461089457806395d89b41146108b4578063a3a2e89e146108e357600080fd5b80637dfcbe34116101b65780637dfcbe34146107f0578063819340311461081157806389291a8f14610831578063893d20e81461084657600080fd5b8063751039fc146107a557806375df1305146107ba5780637db1342c146107d057600080fd5b806330ca34ee116102c1578063468c7ee21161025f57806362103acf1161022e57806362103acf1461072e57806366eb37851461074457806370a08231146107595780637437681e1461078f57600080fd5b8063468c7ee2146106b757806347062402146106d75780634a74bb02146106ed578063571ac8b01461070e57600080fd5b80633dab52691161029b5780633dab5269146106215780633f4218e0146106415780634355855a1461067157806345434377146106a157600080fd5b806330ca34ee146105c5578063313ce567146105e557806333c081ea1461060157600080fd5b806323b872dd116103395780632b14ca56116103085780632b14ca56146105405780632d48e896146105565780632dbea2e1146105765780632f54bf6e1461059657600080fd5b806323b872dd146104cb578063273123b7146104eb5780632ac306b01461050b5780632b112e491461052b57600080fd5b806318160ddd1161037557806318160ddd1461043c5780631d7459a0146104515780631f53ac0214610471578063216d639e1461049357600080fd5b80630445b667146103a757806306fdde03146103d0578063095ea7b31461040c57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd601e5481565b6040519081526020015b60405180910390f35b3480156103dc57600080fd5b5060408051808201909152600a8152695348494245544f53484960b01b60208201525b6040516103c79190612217565b34801561041857600080fd5b5061042c610427366004612291565b610b4c565b60405190151581526020016103c7565b34801561044857600080fd5b506002546103bd565b34801561045d57600080fd5b506103bd61046c3660046122bd565b610bb9565b34801561047d57600080fd5b5061049161048c3660046122bd565b610c28565b005b34801561049f57600080fd5b50601a546104b3906001600160a01b031681565b6040516001600160a01b0390911681526020016103c7565b3480156104d757600080fd5b5061042c6104e63660046122da565b610c7d565b3480156104f757600080fd5b506104916105063660046122bd565b610d3f565b34801561051757600080fd5b506001546104b3906001600160a01b031681565b34801561053757600080fd5b506103bd610d8a565b34801561054c57600080fd5b506103bd60105481565b34801561056257600080fd5b5061049161057136600461231b565b610ddc565b34801561058257600080fd5b5061049161059136600461233d565b610e70565b3480156105a257600080fd5b5061042c6105b13660046122bd565b6000546001600160a01b0391821691161490565b3480156105d157600080fd5b506104916105e036600461231b565b610ea8565b3480156105f157600080fd5b50604051601281526020016103c7565b34801561060d57600080fd5b5061049161061c366004612369565b610f6c565b34801561062d57600080fd5b5061049161063c366004612392565b610f9b565b34801561064d57600080fd5b5061042c61065c3660046122bd565b600a6020526000908152604090205460ff1681565b34801561067d57600080fd5b5061042c61068c3660046122bd565b600c6020526000908152604090205460ff1681565b3480156106ad57600080fd5b506103bd60145481565b3480156106c357600080fd5b506104916106d23660046122bd565b610fe7565b3480156106e357600080fd5b506103bd600f5481565b3480156106f957600080fd5b5060195461042c90600160a81b900460ff1681565b34801561071a57600080fd5b5061042c6107293660046122bd565b611033565b34801561073a57600080fd5b506103bd601b5481565b34801561075057600080fd5b50610491611041565b34801561076557600080fd5b506103bd6107743660046122bd565b6001600160a01b031660009081526003602052604090205490565b34801561079b57600080fd5b506103bd601c5481565b3480156107b157600080fd5b50610491611075565b3480156107c657600080fd5b506103bd60135481565b3480156107dc57600080fd5b506104916107eb366004612369565b6110ac565b3480156107fc57600080fd5b5060085461042c90600160a01b900460ff1681565b34801561081d57600080fd5b5061049161082c366004612369565b611103565b34801561083d57600080fd5b50610491611192565b34801561085257600080fd5b506000546001600160a01b03166104b3565b34801561087057600080fd5b5061042c61087f3660046122bd565b600b6020526000908152604090205460ff1681565b3480156108a057600080fd5b506019546104b3906001600160a01b031681565b3480156108c057600080fd5b5060408051808201909152600681526553544f53484960d01b60208201526103ff565b3480156108ef57600080fd5b506104916108fe3660046123ae565b611200565b34801561090f57600080fd5b506016546104b3906001600160a01b031681565b34801561092f57600080fd5b5061042c61093e366004612291565b611255565b34801561094f57600080fd5b5061049161095e3660046123f9565b611262565b34801561096f57600080fd5b5061049161097e3660046122bd565b6112f4565b34801561098f57600080fd5b506103bd600d5481565b3480156109a557600080fd5b506017546104b3906001600160a01b031681565b3480156109c557600080fd5b506103bd60125481565b3480156109db57600080fd5b50610491611340565b3480156109f057600080fd5b506103bd60115481565b348015610a0657600080fd5b50610491610a15366004612369565b611383565b348015610a2657600080fd5b506103bd610a353660046124be565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a6c57600080fd5b50610491610a7b3660046122bd565b6113da565b348015610a8c57600080fd5b50610491610a9b3660046123ae565b611458565b348015610aac57600080fd5b506015546104b3906001600160a01b031681565b348015610acc57600080fd5b506103bd601d5481565b348015610ae257600080fd5b50610491610af13660046122bd565b61148c565b348015610b0257600080fd5b50610491610b113660046123ae565b6114da565b348015610b2257600080fd5b5061049161152f565b348015610b3757600080fd5b5060195461042c90600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ba79086815260200190565b60405180910390a35060015b92915050565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb391906124f7565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b8152600401610c5290612510565b60405180910390fd5b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610d2a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610d05918490611652565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610d3584848461168c565b90505b9392505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b8152600401610c5290612510565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610dd7906007546001600160a01b0316600090815260036020526040902054610dd19060025490611b42565b90611b42565b905090565b6000546001600160a01b03163314610e065760405162461bcd60e51b8152600401610c5290612510565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610e5457600080fd5b505af1158015610e68573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610e9a5760405162461bcd60e51b8152600401610c5290612510565b601192909255601255601355565b6000546001600160a01b03163314610ed25760405162461bcd60e51b8152600401610c5290612510565b600f82905560108190556006821115610f215760405162461bcd60e51b81526020600482015260116024820152703237b71031329033b932b2b23c902222ab60791b6044820152606401610c52565b60066010541115610f685760405162461bcd60e51b81526020600482015260116024820152703237b71031329033b932b2b23c902222ab60791b6044820152606401610c52565b5050565b6000546001600160a01b03163314610f965760405162461bcd60e51b8152600401610c5290612510565b601b55565b6000546001600160a01b03163314610fc55760405162461bcd60e51b8152600401610c5290612510565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b031633146110115760405162461bcd60e51b8152600401610c5290612510565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bb382600019610b4c565b6000546001600160a01b0316331461106b5760405162461bcd60e51b8152600401610c5290612510565b611073611b84565b565b6000546001600160a01b0316331461109f5760405162461bcd60e51b8152600401610c5290612510565b600254601c819055601d55565b6000546001600160a01b031633146110d65760405162461bcd60e51b8152600401610c5290612510565b600181116110e357600080fd5b6064816002546110f39190612546565b6110fd9190612565565b601d5550565b6000546001600160a01b0316331461112d5760405162461bcd60e51b8152600401610c5290612510565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024015b600060405180830381600087803b15801561117757600080fd5b505af115801561118b573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146111bc5760405162461bcd60e51b8152600401610c5290612510565b4780156111fd576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f68573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461122a5760405162461bcd60e51b8152600401610c5290612510565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610d3833848461168c565b6000546001600160a01b0316331461128c5760405162461bcd60e51b8152600401610c5290612510565b60005b8151811015610f68576001600960008484815181106112b0576112b0612587565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806112ec8161259d565b91505061128f565b6000546001600160a01b0316331461131e5760405162461bcd60e51b8152600401610c5290612510565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461136a5760405162461bcd60e51b8152600401610c5290612510565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146113ad5760405162461bcd60e51b8152600401610c5290612510565b600181116113ba57600080fd5b6064816002546113ca9190612546565b6113d49190612565565b601c5550565b6000546001600160a01b031633146114045760405162461bcd60e51b8152600401610c5290612510565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146114825760405162461bcd60e51b8152600401610c5290612510565b610f688282611d12565b6000546001600160a01b031633146114b65760405162461bcd60e51b8152600401610c5290612510565b600180546001600160a01b0319166001600160a01b0383161790556111fd81611df1565b6000546001600160a01b031633146115045760405162461bcd60e51b8152600401610c5290612510565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b601a5460405163e6c0255160e01b81523360048201526001600160a01b039091169063e6c0255190602401600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b50505050565b6000826000036115a057506000610bb3565b60006115ac8385612546565b9050826115b98583612565565b14610d385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c52565b6000610d3883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e23565b600081848411156116765760405162461bcd60e51b8152600401610c529190612217565b50600061168384866125b6565b95945050505050565b600080546001600160a01b038581169116148015906116b957506000546001600160a01b03848116911614155b1561171757601954600160b01b900460ff166117175760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610c52565b6001600160a01b03841660009081526009602052604090205460ff1615801561175957506001600160a01b03831660009081526009602052604090205460ff16155b61176257600080fd5b601954600160a01b900460ff16156117865761177f848484611e51565b9050610d38565b601c54821115806117af57506001600160a01b0384166000908152600b602052604090205460ff165b6117e05760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610c52565b6001600160a01b0383166000908152600b602052604090205460ff161580156118125750600854600160a01b900460ff165b1561187457601d546001600160a01b03841660009081526003602052604090205461183d9084611f37565b11156118745760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610c52565b6016546001600160a01b031633148015906118995750601954600160a01b900460ff16155b80156118ae5750601954600160a81b900460ff165b80156118cb5750601e543060009081526003602052604090205410155b156118d8576118d8611b84565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526003909152919091205461192a918490611652565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561197a57506001600160a01b0384166000908152600a602052604090205460ff16155b611984578261198f565b61198f858585611f96565b6001600160a01b0385166000908152600360205260409020549091506119b59082611f37565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff16611a5957601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611a4657600080fd5b505af1925050508015611a57575060015b505b6001600160a01b0384166000908152600c602052604090205460ff16611aea57601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611ad757600080fd5b505af1925050508015611ae8575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b2f91815260200190565b60405180910390a3506001949350505050565b6000610d3883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611652565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611bca90600290611bc4906064908290879061158e565b90611610565b90506000611bd88383611b42565b9050611be381612059565b60004790506000611c046064611bc46011548561158e90919063ffffffff16565b90506000611c226064611bc46013548661158e90919063ffffffff16565b90506000611c456002611bc46064611bc46012548961158e90919063ffffffff16565b90508315611c89576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611c87573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611cd957600080fd5b505af193505050508015611ceb575060015b508515611cfc57611cfc8682612182565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611d3957506016546001600160a01b03838116911614155b611d4257600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611da857601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610e3a565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610e3a565b601a54604051637c7e4d0f60e11b81526001600160a01b0383811660048301529091169063f8fc9a1e9060240161115d565b60008183611e445760405162461bcd60e51b8152600401610c529190612217565b5060006116838486612565565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611ea2918490611652565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611ed19083611f37565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f259086815260200190565b60405180910390a35060019392505050565b600080611f4483856125cd565b905083811015610d385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c52565b60165460009081906001600160a01b03858116911614611fb857600f54611fbc565b6010545b90506000611fcf6064611bc4868561158e565b30600090815260036020526040902054909150611fec9082611f37565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061203d9085815260200190565b60405180910390a361204f8482611b42565b9695505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061208e5761208e612587565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210b91906125e5565b8160018151811061211e5761211e612587565b60200260200101906001600160a01b031690816001600160a01b0316815250506121483083610b4c565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e3a908590600090869030904290600401612602565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156121f2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061118b9190612673565b600060208083528351808285015260005b8181101561224457858101830151858201604001528201612228565b81811115612256576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146111fd57600080fd5b803561228c8161226c565b919050565b600080604083850312156122a457600080fd5b82356122af8161226c565b946020939093013593505050565b6000602082840312156122cf57600080fd5b8135610d388161226c565b6000806000606084860312156122ef57600080fd5b83356122fa8161226c565b9250602084013561230a8161226c565b929592945050506040919091013590565b6000806040838503121561232e57600080fd5b50508035926020909101359150565b60008060006060848603121561235257600080fd5b505081359360208301359350604090920135919050565b60006020828403121561237b57600080fd5b5035919050565b8035801515811461228c57600080fd5b600080604083850312156123a557600080fd5b6122af83612382565b600080604083850312156123c157600080fd5b82356123cc8161226c565b91506123da60208401612382565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561240c57600080fd5b823567ffffffffffffffff8082111561242457600080fd5b818501915085601f83011261243857600080fd5b81358181111561244a5761244a6123e3565b8060051b604051601f19603f8301168101818110858211171561246f5761246f6123e3565b60405291825284820192508381018501918883111561248d57600080fd5b938501935b828510156124b2576124a385612281565b84529385019392850192612492565b98975050505050505050565b600080604083850312156124d157600080fd5b82356124dc8161226c565b915060208301356124ec8161226c565b809150509250929050565b60006020828403121561250957600080fd5b5051919050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561256057612560612530565b500290565b60008261258257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016125af576125af612530565b5060010190565b6000828210156125c8576125c8612530565b500390565b600082198211156125e0576125e0612530565b500190565b6000602082840312156125f757600080fd5b8151610d388161226c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126525784516001600160a01b03168352938301939183019160010161262d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561268857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122032701e8116c210268c6e0f4b7163f93eebd6e3450084858b81bdf580a3a34bb564736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b5561102c600c556509184e72a000600d5534801561003357600080fd5b50600080546001600160a01b03199081163317909155600280548216737a250d5630b4cf539739df2c5dacb4c659f2488d17905560018054909116732260fac5e5542a773aa44fbcfedf7c193bc2c5991790556110b9806100956000396000f3fe60806040526004361061010d5760003560e01c8063997664d711610095578063e6c0255111610064578063e6c02551146102df578063efca2eed146102ff578063f8fc9a1e14610315578063ffb2c47914610335578063ffd49c841461035557600080fd5b8063997664d714610254578063ce7c2ac21461026a578063d0e30db0146102c1578063e2d2e219146102c957600080fd5b80632ac306b0116100dc5780632ac306b0146101a05780632d48e896146101d85780633a98ef39146101f85780634fab0ae81461020e5780638c21cd521461022457600080fd5b806311ce023d1461012157806314b6ca961461014a57806326987b601461016a57806328fd31981461018057600080fd5b3661011c5761011a61036b565b005b600080fd5b34801561012d57600080fd5b50610137600b5481565b6040519081526020015b60405180910390f35b34801561015657600080fd5b5061011a610165366004610e1d565b6105e3565b34801561017657600080fd5b50610137600e5481565b34801561018c57600080fd5b5061013761019b366004610e49565b61075b565b3480156101ac57600080fd5b506001546101c0906001600160a01b031681565b6040516001600160a01b039091168152602001610141565b3480156101e457600080fd5b5061011a6101f3366004610e66565b6107e6565b34801561020457600080fd5b5061013760075481565b34801561021a57600080fd5b50610137600d5481565b34801561023057600080fd5b5061024461023f366004610e49565b610808565b6040519015158152602001610141565b34801561026057600080fd5b5061013760085481565b34801561027657600080fd5b506102a6610285366004610e49565b60066020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610141565b61011a61036b565b3480156102d557600080fd5b50610137600a5481565b3480156102eb57600080fd5b5061011a6102fa366004610e49565b61084e565b34801561030b57600080fd5b5061013760095481565b34801561032157600080fd5b5061011a610330366004610e49565b6108be565b34801561034157600080fd5b5061011a610350366004610e88565b6108f7565b34801561036157600080fd5b50610137600c5481565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156103b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d89190610ea1565b60408051600280825260608201835292935060009290916020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610447573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046b9190610eba565b8160008151811061047e5761047e610ed7565b6001600160a01b03928316602091820292909201015260018054835192169183919081106104ae576104ae610ed7565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de959034906104f490600090869030904290600401610eed565b6000604051808303818588803b15801561050d57600080fd5b505af1158015610521573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506105a193508692506001600160a01b03909116906370a0823190602401602060405180830381865afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b9190610ea1565b906109e4565b6008549091506105b19082610a2d565b600855600754600b546105db916105d2916105cc9085610a8c565b90610b0e565b600a5490610a2d565b600a55505050565b6000546001600160a01b031633146105fa57600080fd5b6001600160a01b038216600090815260066020526040902054156106215761062182610b50565b60008111801561064757506001600160a01b038216600090815260066020526040902054155b156106ad57600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b03191690911790556106e0565b801580156106d257506001600160a01b03821660009081526006602052604090205415155b156106e0576106e082610c6e565b6001600160a01b03821660009081526006602052604090205460075461071191839161070b916109e4565b90610a2d565b6007556001600160a01b038216600090815260066020526040902081905561073881610d83565b6001600160a01b0390921660009081526006602052604090206001019190915550565b6001600160a01b038116600090815260066020526040812054810361078257506000919050565b6001600160a01b0382166000908152600660205260408120546107a490610d83565b6001600160a01b0384166000908152600660205260409020600101549091508082116107d4575060009392505050565b6107de82826109e4565b949350505050565b6000546001600160a01b031633146107fd57600080fd5b600c91909155600d55565b600c546001600160a01b038216600090815260056020526040812054909142916108329190610f6d565b1080156108485750600d546108468361075b565b115b92915050565b6000546001600160a01b0316331461086557600080fd5b61086e33610808565b6108b25760405162461bcd60e51b815260206004820152601060248201526f427463206e6f7420726479207965742160801b60448201526064015b60405180910390fd5b6108bb33610b50565b50565b6000546001600160a01b031633146108d557600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6003546000819003610907575050565b60008060005a90505b848210801561091e57508383105b156109dd5783600e5410610932576000600e555b6109646003600e548154811061094a5761094a610ed7565b6000918252602090912001546001600160a01b0316610808565b1561099b5761099b6003600e548154811061098157610981610ed7565b6000918252602090912001546001600160a01b0316610b50565b6109b06109a95a83906109e4565b8390610a2d565b91505a600e805491925060006109c583610f85565b919050555082806109d590610f85565b935050610910565b5050505050565b6000610a2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610da0565b9392505050565b600080610a3a8385610f6d565b905083811015610a265760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108a9565b600082600003610a9e57506000610848565b6000610aaa8385610f9e565b905082610ab78583610fbd565b14610a265760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108a9565b6000610a2683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dda565b6001600160a01b0381166000908152600660205260408120549003610b725750565b6000610b7d8261075b565b90508015610c6a57600954610b929082610a2d565b60095560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0c9190610fdf565b506001600160a01b03821660009081526005602090815260408083204290556006909152902060020154610c409082610a2d565b6001600160a01b038316600090815260066020526040902060028101919091555461073890610d83565b5050565b60038054610c7e90600190611001565b81548110610c8e57610c8e610ed7565b60009182526020808320909101546001600160a01b0384811684526004909252604090922054600380549290931692918110610ccc57610ccc610ed7565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260049182905260408120546003805491939291610d1890600190611001565b81548110610d2857610d28610ed7565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610d5e57610d5e611018565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610848600b546105cc600a5485610a8c90919063ffffffff16565b60008184841115610dc45760405162461bcd60e51b81526004016108a9919061102e565b506000610dd18486611001565b95945050505050565b60008183610dfb5760405162461bcd60e51b81526004016108a9919061102e565b506000610dd18486610fbd565b6001600160a01b03811681146108bb57600080fd5b60008060408385031215610e3057600080fd5b8235610e3b81610e08565b946020939093013593505050565b600060208284031215610e5b57600080fd5b8135610a2681610e08565b60008060408385031215610e7957600080fd5b50508035926020909101359150565b600060208284031215610e9a57600080fd5b5035919050565b600060208284031215610eb357600080fd5b5051919050565b600060208284031215610ecc57600080fd5b8151610a2681610e08565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610f375784516001600160a01b031683529383019391830191600101610f12565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610f8057610f80610f57565b500190565b600060018201610f9757610f97610f57565b5060010190565b6000816000190483118215151615610fb857610fb8610f57565b500290565b600082610fda57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610ff157600080fd5b81518015158114610a2657600080fd5b60008282101561101357611013610f57565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208083528351808285015260005b8181101561105b5785810183015185820160400152820161103f565b8181111561106d576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220a1ad4da10b7be6374b5991a2dfc98aeaf8cc8429c147f5f858c801b1b032e6f564736f6c634300080d0033000000000000000000000000624588d9315bb503705986732bf90a65a5860d6f

Deployed Bytecode

0x60806040526004361061039b5760003560e01c8063751039fc116101dc578063bf56b37111610102578063f2fde38b116100a0578063f8fc9a1e1161006f578063f8fc9a1e14610ad6578063fabe628314610af6578063fcd391b914610b16578063ffb54a9914610b2b57600080fd5b8063f2fde38b14610a60578063f708a64f14610a80578063f887ea4014610aa0578063f8b45b0514610ac057600080fd5b8063c9567bf9116100dc578063c9567bf9146109cf578063caa5581b146109e4578063d920334e146109fa578063dd62ed3e14610a1a57600080fd5b8063bf56b37114610983578063c45a015514610999578063c8d1293d146109b957600080fd5b80638b42507f1161017a578063a8aa1b3111610149578063a8aa1b3114610903578063a9059cbb14610923578063b515566a14610943578063bb542ef01461096357600080fd5b80638b42507f146108645780638ea5220f1461089457806395d89b41146108b4578063a3a2e89e146108e357600080fd5b80637dfcbe34116101b65780637dfcbe34146107f0578063819340311461081157806389291a8f14610831578063893d20e81461084657600080fd5b8063751039fc146107a557806375df1305146107ba5780637db1342c146107d057600080fd5b806330ca34ee116102c1578063468c7ee21161025f57806362103acf1161022e57806362103acf1461072e57806366eb37851461074457806370a08231146107595780637437681e1461078f57600080fd5b8063468c7ee2146106b757806347062402146106d75780634a74bb02146106ed578063571ac8b01461070e57600080fd5b80633dab52691161029b5780633dab5269146106215780633f4218e0146106415780634355855a1461067157806345434377146106a157600080fd5b806330ca34ee146105c5578063313ce567146105e557806333c081ea1461060157600080fd5b806323b872dd116103395780632b14ca56116103085780632b14ca56146105405780632d48e896146105565780632dbea2e1146105765780632f54bf6e1461059657600080fd5b806323b872dd146104cb578063273123b7146104eb5780632ac306b01461050b5780632b112e491461052b57600080fd5b806318160ddd1161037557806318160ddd1461043c5780631d7459a0146104515780631f53ac0214610471578063216d639e1461049357600080fd5b80630445b667146103a757806306fdde03146103d0578063095ea7b31461040c57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd601e5481565b6040519081526020015b60405180910390f35b3480156103dc57600080fd5b5060408051808201909152600a8152695348494245544f53484960b01b60208201525b6040516103c79190612217565b34801561041857600080fd5b5061042c610427366004612291565b610b4c565b60405190151581526020016103c7565b34801561044857600080fd5b506002546103bd565b34801561045d57600080fd5b506103bd61046c3660046122bd565b610bb9565b34801561047d57600080fd5b5061049161048c3660046122bd565b610c28565b005b34801561049f57600080fd5b50601a546104b3906001600160a01b031681565b6040516001600160a01b0390911681526020016103c7565b3480156104d757600080fd5b5061042c6104e63660046122da565b610c7d565b3480156104f757600080fd5b506104916105063660046122bd565b610d3f565b34801561051757600080fd5b506001546104b3906001600160a01b031681565b34801561053757600080fd5b506103bd610d8a565b34801561054c57600080fd5b506103bd60105481565b34801561056257600080fd5b5061049161057136600461231b565b610ddc565b34801561058257600080fd5b5061049161059136600461233d565b610e70565b3480156105a257600080fd5b5061042c6105b13660046122bd565b6000546001600160a01b0391821691161490565b3480156105d157600080fd5b506104916105e036600461231b565b610ea8565b3480156105f157600080fd5b50604051601281526020016103c7565b34801561060d57600080fd5b5061049161061c366004612369565b610f6c565b34801561062d57600080fd5b5061049161063c366004612392565b610f9b565b34801561064d57600080fd5b5061042c61065c3660046122bd565b600a6020526000908152604090205460ff1681565b34801561067d57600080fd5b5061042c61068c3660046122bd565b600c6020526000908152604090205460ff1681565b3480156106ad57600080fd5b506103bd60145481565b3480156106c357600080fd5b506104916106d23660046122bd565b610fe7565b3480156106e357600080fd5b506103bd600f5481565b3480156106f957600080fd5b5060195461042c90600160a81b900460ff1681565b34801561071a57600080fd5b5061042c6107293660046122bd565b611033565b34801561073a57600080fd5b506103bd601b5481565b34801561075057600080fd5b50610491611041565b34801561076557600080fd5b506103bd6107743660046122bd565b6001600160a01b031660009081526003602052604090205490565b34801561079b57600080fd5b506103bd601c5481565b3480156107b157600080fd5b50610491611075565b3480156107c657600080fd5b506103bd60135481565b3480156107dc57600080fd5b506104916107eb366004612369565b6110ac565b3480156107fc57600080fd5b5060085461042c90600160a01b900460ff1681565b34801561081d57600080fd5b5061049161082c366004612369565b611103565b34801561083d57600080fd5b50610491611192565b34801561085257600080fd5b506000546001600160a01b03166104b3565b34801561087057600080fd5b5061042c61087f3660046122bd565b600b6020526000908152604090205460ff1681565b3480156108a057600080fd5b506019546104b3906001600160a01b031681565b3480156108c057600080fd5b5060408051808201909152600681526553544f53484960d01b60208201526103ff565b3480156108ef57600080fd5b506104916108fe3660046123ae565b611200565b34801561090f57600080fd5b506016546104b3906001600160a01b031681565b34801561092f57600080fd5b5061042c61093e366004612291565b611255565b34801561094f57600080fd5b5061049161095e3660046123f9565b611262565b34801561096f57600080fd5b5061049161097e3660046122bd565b6112f4565b34801561098f57600080fd5b506103bd600d5481565b3480156109a557600080fd5b506017546104b3906001600160a01b031681565b3480156109c557600080fd5b506103bd60125481565b3480156109db57600080fd5b50610491611340565b3480156109f057600080fd5b506103bd60115481565b348015610a0657600080fd5b50610491610a15366004612369565b611383565b348015610a2657600080fd5b506103bd610a353660046124be565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a6c57600080fd5b50610491610a7b3660046122bd565b6113da565b348015610a8c57600080fd5b50610491610a9b3660046123ae565b611458565b348015610aac57600080fd5b506015546104b3906001600160a01b031681565b348015610acc57600080fd5b506103bd601d5481565b348015610ae257600080fd5b50610491610af13660046122bd565b61148c565b348015610b0257600080fd5b50610491610b113660046123ae565b6114da565b348015610b2257600080fd5b5061049161152f565b348015610b3757600080fd5b5060195461042c90600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ba79086815260200190565b60405180910390a35060015b92915050565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb391906124f7565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b8152600401610c5290612510565b60405180910390fd5b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610d2a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610d05918490611652565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610d3584848461168c565b90505b9392505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b8152600401610c5290612510565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610dd7906007546001600160a01b0316600090815260036020526040902054610dd19060025490611b42565b90611b42565b905090565b6000546001600160a01b03163314610e065760405162461bcd60e51b8152600401610c5290612510565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610e5457600080fd5b505af1158015610e68573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610e9a5760405162461bcd60e51b8152600401610c5290612510565b601192909255601255601355565b6000546001600160a01b03163314610ed25760405162461bcd60e51b8152600401610c5290612510565b600f82905560108190556006821115610f215760405162461bcd60e51b81526020600482015260116024820152703237b71031329033b932b2b23c902222ab60791b6044820152606401610c52565b60066010541115610f685760405162461bcd60e51b81526020600482015260116024820152703237b71031329033b932b2b23c902222ab60791b6044820152606401610c52565b5050565b6000546001600160a01b03163314610f965760405162461bcd60e51b8152600401610c5290612510565b601b55565b6000546001600160a01b03163314610fc55760405162461bcd60e51b8152600401610c5290612510565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b031633146110115760405162461bcd60e51b8152600401610c5290612510565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bb382600019610b4c565b6000546001600160a01b0316331461106b5760405162461bcd60e51b8152600401610c5290612510565b611073611b84565b565b6000546001600160a01b0316331461109f5760405162461bcd60e51b8152600401610c5290612510565b600254601c819055601d55565b6000546001600160a01b031633146110d65760405162461bcd60e51b8152600401610c5290612510565b600181116110e357600080fd5b6064816002546110f39190612546565b6110fd9190612565565b601d5550565b6000546001600160a01b0316331461112d5760405162461bcd60e51b8152600401610c5290612510565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024015b600060405180830381600087803b15801561117757600080fd5b505af115801561118b573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146111bc5760405162461bcd60e51b8152600401610c5290612510565b4780156111fd576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f68573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461122a5760405162461bcd60e51b8152600401610c5290612510565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610d3833848461168c565b6000546001600160a01b0316331461128c5760405162461bcd60e51b8152600401610c5290612510565b60005b8151811015610f68576001600960008484815181106112b0576112b0612587565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806112ec8161259d565b91505061128f565b6000546001600160a01b0316331461131e5760405162461bcd60e51b8152600401610c5290612510565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461136a5760405162461bcd60e51b8152600401610c5290612510565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146113ad5760405162461bcd60e51b8152600401610c5290612510565b600181116113ba57600080fd5b6064816002546113ca9190612546565b6113d49190612565565b601c5550565b6000546001600160a01b031633146114045760405162461bcd60e51b8152600401610c5290612510565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146114825760405162461bcd60e51b8152600401610c5290612510565b610f688282611d12565b6000546001600160a01b031633146114b65760405162461bcd60e51b8152600401610c5290612510565b600180546001600160a01b0319166001600160a01b0383161790556111fd81611df1565b6000546001600160a01b031633146115045760405162461bcd60e51b8152600401610c5290612510565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b601a5460405163e6c0255160e01b81523360048201526001600160a01b039091169063e6c0255190602401600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b50505050565b6000826000036115a057506000610bb3565b60006115ac8385612546565b9050826115b98583612565565b14610d385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c52565b6000610d3883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e23565b600081848411156116765760405162461bcd60e51b8152600401610c529190612217565b50600061168384866125b6565b95945050505050565b600080546001600160a01b038581169116148015906116b957506000546001600160a01b03848116911614155b1561171757601954600160b01b900460ff166117175760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610c52565b6001600160a01b03841660009081526009602052604090205460ff1615801561175957506001600160a01b03831660009081526009602052604090205460ff16155b61176257600080fd5b601954600160a01b900460ff16156117865761177f848484611e51565b9050610d38565b601c54821115806117af57506001600160a01b0384166000908152600b602052604090205460ff165b6117e05760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610c52565b6001600160a01b0383166000908152600b602052604090205460ff161580156118125750600854600160a01b900460ff165b1561187457601d546001600160a01b03841660009081526003602052604090205461183d9084611f37565b11156118745760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610c52565b6016546001600160a01b031633148015906118995750601954600160a01b900460ff16155b80156118ae5750601954600160a81b900460ff165b80156118cb5750601e543060009081526003602052604090205410155b156118d8576118d8611b84565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526003909152919091205461192a918490611652565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561197a57506001600160a01b0384166000908152600a602052604090205460ff16155b611984578261198f565b61198f858585611f96565b6001600160a01b0385166000908152600360205260409020549091506119b59082611f37565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff16611a5957601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611a4657600080fd5b505af1925050508015611a57575060015b505b6001600160a01b0384166000908152600c602052604090205460ff16611aea57601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611ad757600080fd5b505af1925050508015611ae8575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b2f91815260200190565b60405180910390a3506001949350505050565b6000610d3883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611652565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611bca90600290611bc4906064908290879061158e565b90611610565b90506000611bd88383611b42565b9050611be381612059565b60004790506000611c046064611bc46011548561158e90919063ffffffff16565b90506000611c226064611bc46013548661158e90919063ffffffff16565b90506000611c456002611bc46064611bc46012548961158e90919063ffffffff16565b90508315611c89576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611c87573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611cd957600080fd5b505af193505050508015611ceb575060015b508515611cfc57611cfc8682612182565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611d3957506016546001600160a01b03838116911614155b611d4257600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611da857601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610e3a565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610e3a565b601a54604051637c7e4d0f60e11b81526001600160a01b0383811660048301529091169063f8fc9a1e9060240161115d565b60008183611e445760405162461bcd60e51b8152600401610c529190612217565b5060006116838486612565565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611ea2918490611652565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611ed19083611f37565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f259086815260200190565b60405180910390a35060019392505050565b600080611f4483856125cd565b905083811015610d385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c52565b60165460009081906001600160a01b03858116911614611fb857600f54611fbc565b6010545b90506000611fcf6064611bc4868561158e565b30600090815260036020526040902054909150611fec9082611f37565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061203d9085815260200190565b60405180910390a361204f8482611b42565b9695505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061208e5761208e612587565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210b91906125e5565b8160018151811061211e5761211e612587565b60200260200101906001600160a01b031690816001600160a01b0316815250506121483083610b4c565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e3a908590600090869030904290600401612602565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156121f2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061118b9190612673565b600060208083528351808285015260005b8181101561224457858101830151858201604001528201612228565b81811115612256576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146111fd57600080fd5b803561228c8161226c565b919050565b600080604083850312156122a457600080fd5b82356122af8161226c565b946020939093013593505050565b6000602082840312156122cf57600080fd5b8135610d388161226c565b6000806000606084860312156122ef57600080fd5b83356122fa8161226c565b9250602084013561230a8161226c565b929592945050506040919091013590565b6000806040838503121561232e57600080fd5b50508035926020909101359150565b60008060006060848603121561235257600080fd5b505081359360208301359350604090920135919050565b60006020828403121561237b57600080fd5b5035919050565b8035801515811461228c57600080fd5b600080604083850312156123a557600080fd5b6122af83612382565b600080604083850312156123c157600080fd5b82356123cc8161226c565b91506123da60208401612382565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561240c57600080fd5b823567ffffffffffffffff8082111561242457600080fd5b818501915085601f83011261243857600080fd5b81358181111561244a5761244a6123e3565b8060051b604051601f19603f8301168101818110858211171561246f5761246f6123e3565b60405291825284820192508381018501918883111561248d57600080fd5b938501935b828510156124b2576124a385612281565b84529385019392850192612492565b98975050505050505050565b600080604083850312156124d157600080fd5b82356124dc8161226c565b915060208301356124ec8161226c565b809150509250929050565b60006020828403121561250957600080fd5b5051919050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561256057612560612530565b500290565b60008261258257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016125af576125af612530565b5060010190565b6000828210156125c8576125c8612530565b500390565b600082198211156125e0576125e0612530565b500190565b6000602082840312156125f757600080fd5b8151610d388161226c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126525784516001600160a01b03168352938301939183019160010161262d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561268857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122032701e8116c210268c6e0f4b7163f93eebd6e3450084858b81bdf580a3a34bb564736f6c634300080d0033

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

000000000000000000000000624588d9315bb503705986732bf90a65a5860d6f

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000624588d9315bb503705986732bf90a65a5860d6f


Deployed Bytecode Sourcemap

13181:12593:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15098:61;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;15098:61:0;;;;;;;;19875:80;;;;;;;;;;-1:-1:-1;19947:5:0;;;;;;;;;;;;-1:-1:-1;;;19947:5:0;;;;19875:80;;;;;;;:::i;20301:216::-;;;;;;;;;;-1:-1:-1;20301:216:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;20301:216:0;1393:187:1;19605:88:0;;;;;;;;;;-1:-1:-1;19678:12:0;;19605:88;;25540:140;;;;;;;;;;-1:-1:-1;25540:140:0;;;;;:::i;:::-;;:::i;17959:123::-;;;;;;;;;;-1:-1:-1;17959:123:0;;;;;:::i;:::-;;:::i;:::-;;14784:28;;;;;;;;;;-1:-1:-1;14784:28:0;;;;-1:-1:-1;;;;;14784:28:0;;;;;;-1:-1:-1;;;;;2288:32:1;;;2270:51;;2258:2;2243:18;14784:28:0;2097:230:1;20815:366:0;;;;;;;;;;-1:-1:-1;20815:366:0;;;;;:::i;:::-;;:::i;18750:90::-;;;;;;;;;;-1:-1:-1;18750:90:0;;;;;:::i;:::-;;:::i;13259:67::-;;;;;;;;;;-1:-1:-1;13259:67:0;;;;-1:-1:-1;;;;;13259:67:0;;;19455:142;;;;;;;;;;;;;:::i;14247:26::-;;;;;;;;;;;;;;;;18545:197;;;;;;;;;;-1:-1:-1;18545:197:0;;;;;:::i;:::-;;:::i;16963:233::-;;;;;;;;;;-1:-1:-1;16963:233:0;;;;;:::i;:::-;;:::i;5135:103::-;;;;;;;;;;-1:-1:-1;5135:103:0;;;;;:::i;:::-;5190:4;5225:5;-1:-1:-1;;;;;5214:16:0;;;5225:5;;5214:16;;5135:103;16690:260;;;;;;;;;;-1:-1:-1;16690:260:0;;;;;:::i;:::-;;:::i;19699:80::-;;;;;;;;;;-1:-1:-1;19699:80:0;;13478:2;3717:36:1;;3705:2;3690:18;19699:80:0;3575:184:1;19331:105:0;;;;;;;;;;-1:-1:-1;19331:105:0;;;;;:::i;:::-;;:::i;18338:199::-;;;;;;;;;;-1:-1:-1;18338:199:0;;;;;:::i;:::-;;:::i;13979:44::-;;;;;;;;;;-1:-1:-1;13979:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14085:49;;;;;;;;;;-1:-1:-1;14085:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14425:34;;;;;;;;;;;;;;;;18090:102;;;;;;;;;;-1:-1:-1;18090:102:0;;;;;:::i;:::-;;:::i;14215:25::-;;;;;;;;;;;;;;;;14693:40;;;;;;;;;;-1:-1:-1;14693:40:0;;;;-1:-1:-1;;;14693:40:0;;;;;;20525:122;;;;;;;;;;-1:-1:-1;20525:122:0;;;;;:::i;:::-;;:::i;14819:32::-;;;;;;;;;;;;;;;;25097:74;;;;;;;;;;;;;:::i;20045:105::-;;;;;;;;;;-1:-1:-1;20045:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;20129:18:0;20111:7;20129:18;;;:9;:18;;;;;;;20045:105;14978:51;;;;;;;;;;;;;;;;17557:116;;;;;;;;;;;;;:::i;14372:31::-;;;;;;;;;;;;;;;;17376:172;;;;;;;;;;-1:-1:-1;17376:172:0;;;;;:::i;:::-;;:::i;13898:26::-;;;;;;;;;;-1:-1:-1;13898:26:0;;;;-1:-1:-1;;;13898:26:0;;;;;;25420:112;;;;;;;;;;-1:-1:-1;25420:112:0;;;;;:::i;:::-;;:::i;25179:233::-;;;;;;;;;;;;;:::i;19961:78::-;;;;;;;;;;-1:-1:-1;20013:7:0;20031:5;-1:-1:-1;;;;;20031:5:0;19961:78;;14030:48;;;;;;;;;;-1:-1:-1;14030:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14587:69;;;;;;;;;;-1:-1:-1;14587:69:0;;;;-1:-1:-1;;;;;14587:69:0;;;19785:84;;;;;;;;;;-1:-1:-1;19859:7:0;;;;;;;;;;;;-1:-1:-1;;;19859:7:0;;;;19785:84;;17685:122;;;;;;;;;;-1:-1:-1;17685:122:0;;;;;:::i;:::-;;:::i;14499:19::-;;;;;;;;;;-1:-1:-1;14499:19:0;;;;-1:-1:-1;;;;;14499:19:0;;;20655:152;;;;;;;;;;-1:-1:-1;20655:152:0;;;;;:::i;:::-;;:::i;16343:166::-;;;;;;;;;;-1:-1:-1;16343:166:0;;;;;:::i;:::-;;:::i;18204:121::-;;;;;;;;;;-1:-1:-1;18204:121:0;;;;;:::i;:::-;;:::i;14143:25::-;;;;;;;;;;;;;;;;14525:22;;;;;;;;;;-1:-1:-1;14525:22:0;;;;-1:-1:-1;;;;;14525:22:0;;;14335:30;;;;;;;;;;;;;;;;16561:115;;;;;;;;;;;;;:::i;14282:33::-;;;;;;;;;;;;;;;;17204:164;;;;;;;;;;-1:-1:-1;17204:164:0;;;;;:::i;:::-;;:::i;20156:133::-;;;;;;;;;;-1:-1:-1;20156:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;20258:19:0;;;20240:7;20258:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;20156:133;5246:136;;;;;;;;;;-1:-1:-1;5246:136:0;;;;;:::i;:::-;;:::i;19191:132::-;;;;;;;;;;-1:-1:-1;19191:132:0;;;;;:::i;:::-;;:::i;14468:24::-;;;;;;;;;;-1:-1:-1;14468:24:0;;;;-1:-1:-1;;;;;14468:24:0;;;15036:55;;;;;;;;;;;;;;;;16203:132;;;;;;;;;;-1:-1:-1;16203:132:0;;;;;:::i;:::-;;:::i;17815:136::-;;;;;;;;;;-1:-1:-1;17815:136:0;;;;;:::i;:::-;;:::i;25688:83::-;;;;;;;;;;;;;:::i;14740:31::-;;;;;;;;;;-1:-1:-1;14740:31:0;;;;-1:-1:-1;;;14740:31:0;;;;;;20301:216;20405:10;20376:4;20393:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;20393:32:0;;;;;;;;;;:41;;;20450:37;20376:4;;20393:32;;20450:37;;;;20428:6;160:25:1;;148:2;133:18;;14:177;20450:37:0;;;;;;;;-1:-1:-1;20505:4:0;20301:216;;;;;:::o;25540:140::-;25631:10;;:41;;-1:-1:-1;;;25631:41:0;;-1:-1:-1;;;;;2288:32:1;;;25631:41:0;;;2270:51:1;25604:7:0;;25631:10;;:28;;2243:18:1;;25631:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17959:123::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;;;;;;;;;18041:9:::1;:33:::0;;-1:-1:-1;;;;;;18041:33:0::1;-1:-1:-1::0;;;;;18041:33:0;;;::::1;::::0;;;::::1;::::0;;17959:123::o;20815:366::-;-1:-1:-1;;;;;20935:19:0;;20915:4;20935:19;;;:11;:19;;;;;;;;20955:10;20935:31;;;;;;;;-1:-1:-1;;20935:52:0;20932:186;;21037:69;;;;;;;;;;;-1:-1:-1;;;21037:69:0;;;;;;;;-1:-1:-1;;;;;21037:19:0;;-1:-1:-1;21037:19:0;;;:11;:19;;;;;21057:10;21037:31;;;;;;;;;;:69;;21073:6;;21037:35;:69::i;:::-;-1:-1:-1;;;;;21003:19:0;;;;;;:11;:19;;;;;;;;21023:10;21003:31;;;;;;;:103;20932:186;21137:36;21147:6;21155:9;21166:6;21137:9;:36::i;:::-;21130:43;;20815:366;;;;;;:::o;18750:90::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18812:12:0::1;18827:5;18812:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;18812:20:0::1;::::0;;18750:90::o;19455:142::-;19583:4;;-1:-1:-1;;;;;19583:4:0;19508:7;20129:18;;;:9;:18;;;;;;19535:54;;19562:4;;-1:-1:-1;;;;;19562:4:0;20111:7;20129:18;;;:9;:18;;;;;;19535:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19528:61;;19455:142;:::o;18545:197::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;18658:10:::1;::::0;:68:::1;::::0;-1:-1:-1;;;18658:68:0;;::::1;::::0;::::1;7261:25:1::0;;;7302:18;;;7295:34;;;-1:-1:-1;;;;;18658:10:0;;::::1;::::0;:34:::1;::::0;7234:18:1;;18658:68:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18545:197:::0;;:::o;16963:233::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;17087:13:::1;:28:::0;;;;17126:11:::1;:22:::0;17159:11:::1;:29:::0;16963:233::o;16690:260::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;16786:6:::1;:18:::0;;;16815:7:::1;:20:::0;;;16866:1:::1;16856:11:::0;::::1;;16848:41;;;::::0;-1:-1:-1;;;16848:41:0;;7542:2:1;16848:41:0::1;::::0;::::1;7524:21:1::0;7581:2;7561:18;;;7554:30;-1:-1:-1;;;7600:18:1;;;7593:47;7657:18;;16848:41:0::1;7340:341:1::0;16848:41:0::1;16919:1;16908:7;;:12;;16900:42;;;::::0;-1:-1:-1;;;16900:42:0;;7542:2:1;16900:42:0::1;::::0;::::1;7524:21:1::0;7581:2;7561:18;;;7554:30;-1:-1:-1;;;7600:18:1;;;7593:47;7657:18;;16900:42:0::1;7340:341:1::0;16900:42:0::1;16690:260:::0;;:::o;19331:105::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;19406:13:::1;:22:::0;19331:105::o;18338:199::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;18447:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;18447:39:0::1;-1:-1:-1::0;;;;18447:39:0;;::::1;::::0;;;::::1;::::0;;;18497:13:::1;:32:::0;18338:199::o;18090:102::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;18162:8:::1;:22:::0;;-1:-1:-1;;;;;;18162:22:0::1;-1:-1:-1::0;;;;;18162:22:0;;;::::1;::::0;;;::::1;::::0;;18090:102::o;20525:122::-;20580:4;20604:35;20612:7;-1:-1:-1;;20604:7:0;:35::i;25097:74::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;25153:10:::1;:8;:10::i;:::-;25097:74::o:0;17557:116::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;17618:12:::1;::::0;17610:5:::1;:20:::0;;;17641:9:::1;:24:::0;17557:116::o;17376:172::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;17478:1:::1;17464:13;:15;17456:24;;;::::0;::::1;;17537:3;17519:13;17504:12;;:28;;;;:::i;:::-;17503:37;;;;:::i;:::-;17491:9;:49:::0;-1:-1:-1;17376:172:0:o;25420:112::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;25495:10:::1;::::0;:29:::1;::::0;-1:-1:-1;;;;;;25495:29:0;;::::1;::::0;::::1;160:25:1::0;;;-1:-1:-1;;;;;25495:10:0;;::::1;::::0;:18:::1;::::0;133::1;;25495:29:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25420:112:::0;:::o;25179:233::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;25263:21:::1;25298:22:::0;;25295:110:::1;;25354:9;::::0;25346:47:::1;::::0;-1:-1:-1;;;;;25354:9:0;;::::1;::::0;25346:47;::::1;;;::::0;25374:18;;25354:9:::1;25346:47:::0;25354:9;25346:47;25374:18;25354:9;25346:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;25295:110;25223:189;25179:233::o:0;17685:122::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17771:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17771:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17685:122::o;20655:152::-;20735:4;20759:40;20769:10;20781:9;20792:6;20759:9;:40::i;16343:166::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;16419:6:::1;16414:88;16435:5;:12;16431:1;:16;16414:88;;;16486:4;16469;:14;16474:5;16480:1;16474:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16469:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16469:14:0;:21;;-1:-1:-1;;16469:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16449:3;::::1;::::0;::::1;:::i;:::-;;;;16414:88;;18204:121:::0;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;18290:10:::1;:27:::0;;-1:-1:-1;;;;;;18290:27:0::1;-1:-1:-1::0;;;;;18290:27:0;;;::::1;::::0;;;::::1;::::0;;18204:121::o;16561:115::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;16627:12:::1;16614:10;:25:::0;16650:11:::1;:18:::0;;-1:-1:-1;;;;16650:18:0::1;-1:-1:-1::0;;;16650:18:0::1;::::0;;16561:115::o;17204:164::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;17302:1:::1;17288:13;:15;17280:24;;;::::0;::::1;;17357:3;17339:13;17324:12;;:28;;;;:::i;:::-;17323:37;;;;:::i;:::-;17315:5;:45:::0;-1:-1:-1;17204:164:0:o;5246:136::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;5322:5:::1;:11:::0;;-1:-1:-1;;;;;;5322:11:0::1;-1:-1:-1::0;;;;;5322:11:0;::::1;::::0;;::::1;::::0;;;5349:25:::1;::::0;2270:51:1;;;5349:25:0::1;::::0;2258:2:1;2243:18;5349:25:0::1;;;;;;;5246:136:::0;:::o;19191:132::-;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;19279:36:::1;19300:6;19308;19279:20;:36::i;16203:132::-:0;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;16273:7:::1;:20:::0;;-1:-1:-1;;;;;;16273:20:0::1;-1:-1:-1::0;;;;;16273:20:0;::::1;;::::0;;16304:23:::1;16273:20:::0;16304:11:::1;:23::i;17815:136::-:0;5190:4;5225:5;-1:-1:-1;;;;;5225:5:0;5094:10;5214:16;5078:38;;;;-1:-1:-1;;;5078:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17911:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17911:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17815:136::o;25688:83::-;25735:10;;:28;;-1:-1:-1;;;25735:28:0;;25752:10;25735:28;;;2270:51:1;-1:-1:-1;;;;;25735:10:0;;;;:16;;2243:18:1;;25735:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25688:83::o;3256:250::-;3314:7;3338:1;3343;3338:6;3334:47;;-1:-1:-1;3368:1:0;3361:8;;3334:47;3393:9;3405:5;3409:1;3405;:5;:::i;:::-;3393:17;-1:-1:-1;3438:1:0;3429:5;3433:1;3393:17;3429:5;:::i;:::-;:10;3421:56;;;;-1:-1:-1;;;3421:56:0;;8903:2:1;3421:56:0;;;8885:21:1;8942:2;8922:18;;;8915:30;8981:34;8961:18;;;8954:62;-1:-1:-1;;;9032:18:1;;;9025:31;9073:19;;3421:56:0;8701:397:1;3512:132:0;3570:7;3597:39;3601:1;3604;3597:39;;;;;;;;;;;;;;;;;:3;:39::i;3058:192::-;3144:7;3180:12;3172:6;;;;3164:29;;;;-1:-1:-1;;;3164:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3204:9:0;3216:5;3220:1;3216;:5;:::i;:::-;3204:17;3058:192;-1:-1:-1;;;;;3058:192:0:o;21189:1418::-;21277:4;21307:5;;-1:-1:-1;;;;;21298:14:0;;;21307:5;;21298:14;;;;:35;;-1:-1:-1;21328:5:0;;-1:-1:-1;;;;;21316:17:0;;;21328:5;;21316:17;;21298:35;21294:88;;;21343:11;;-1:-1:-1;;;21343:11:0;;;;21335:47;;;;-1:-1:-1;;;21335:47:0;;9435:2:1;21335:47:0;;;9417:21:1;9474:2;9454:18;;;9447:30;9513:25;9493:18;;;9486:53;9556:18;;21335:47:0;9233:347:1;21335:47:0;-1:-1:-1;;;;;21444:12:0;;;;;;:4;:12;;;;;;;;21443:13;:33;;;;-1:-1:-1;;;;;;21461:15:0;;;;;;:4;:15;;;;;;;;21460:16;21443:33;21435:42;;;;;;21493:16;;-1:-1:-1;;;21493:16:0;;;;21490:73;;;21519:41;21534:6;21542:9;21553:6;21519:14;:41::i;:::-;21512:48;;;;21490:73;21593:5;;21583:6;:15;;:42;;;-1:-1:-1;;;;;;21602:23:0;;;;;;:15;:23;;;;;;;;21583:42;21575:57;;;;-1:-1:-1;;;21575:57:0;;9787:2:1;21575:57:0;;;9769:21:1;9826:1;9806:18;;;9799:29;-1:-1:-1;;;9844:18:1;;;9837:32;9886:18;;21575:57:0;9585:325:1;21575:57:0;-1:-1:-1;;;;;21649:26:0;;;;;;:15;:26;;;;;;;;21648:27;:38;;;;-1:-1:-1;21679:7:0;;-1:-1:-1;;;21679:7:0;;;;21648:38;21645:143;;;21756:9;;-1:-1:-1;;;;;21720:20:0;;;;;;:9;:20;;;;;;:32;;21745:6;21720:24;:32::i;:::-;:45;;21712:64;;;;-1:-1:-1;;;21712:64:0;;10117:2:1;21712:64:0;;;10099:21:1;10156:1;10136:18;;;10129:29;-1:-1:-1;;;10174:18:1;;;10167:36;10220:18;;21712:64:0;9915:329:1;21712:64:0;21817:4;;-1:-1:-1;;;;;21817:4:0;21803:10;:18;;;;:39;;-1:-1:-1;21826:16:0;;-1:-1:-1;;;21826:16:0;;;;21825:17;21803:39;:64;;;;-1:-1:-1;21846:21:0;;-1:-1:-1;;;21846:21:0;;;;21803:64;:109;;;;-1:-1:-1;21899:13:0;;21889:4;21871:24;;;;:9;:24;;;;;;:41;;21803:109;21800:128;;;21915:10;:8;:10::i;:::-;21960:53;;;;;;;;;;;-1:-1:-1;;;21960:53:0;;;;;;;;-1:-1:-1;;;;;21960:17:0;;-1:-1:-1;21960:17:0;;;:9;:17;;;;;;;;:53;;21982:6;;21960:21;:53::i;:::-;-1:-1:-1;;;;;21940:17:0;;;;;;:9;:17;;;;;;;;:73;;;;22057:11;:19;;;;;;;;22056:20;:47;;;;-1:-1:-1;;;;;;22081:22:0;;;;;;:11;:22;;;;;;;;22080:23;22056:47;:93;;22143:6;22056:93;;;22106:34;22114:6;22122:9;22133:6;22106:7;:34::i;:::-;-1:-1:-1;;;;;22183:20:0;;;;;;:9;:20;;;;;;22034:115;;-1:-1:-1;22183:37:0;;22034:115;22183:24;:37::i;:::-;-1:-1:-1;;;;;22160:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;22266:24;;;;;:16;:24;;;;;;;22262:118;;22311:10;;-1:-1:-1;;;;;22339:17:0;;;22311:10;22339:17;;;:9;:17;;;;;;;;22311:46;;-1:-1:-1;;;22311:46:0;;;;;10423:51:1;;;;10490:18;;;10483:34;22311:10:0;;;:19;;10396:18:1;;22311:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22307:62;;-1:-1:-1;;;;;22396:27:0;;;;;;:16;:27;;;;;;;;22392:128;;22444:10;;-1:-1:-1;;;;;22475:20:0;;;22444:10;22475:20;;;:9;:20;;;;;;;;22444:52;;-1:-1:-1;;;22444:52:0;;;;;10423:51:1;;;;10490:18;;;10483:34;22444:10:0;;;:19;;10396:18:1;;22444:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22440:68;;22554:9;-1:-1:-1;;;;;22537:40:0;22546:6;-1:-1:-1;;;;;22537:40:0;;22565:11;22537:40;;;;160:25:1;;148:2;133:18;;14:177;22537:40:0;;;;;;;;-1:-1:-1;22595:4:0;;21189:1418;-1:-1:-1;;;;21189:1418:0:o;2916:136::-;2974:7;3001:43;3005:1;3008;3001:43;;;;;;;;;;;;;;;;;:3;:43::i;24157:932::-;14892:16;:23;;-1:-1:-1;;;;14892:23:0;-1:-1:-1;;;14892:23:0;;;24256:4:::1;14892:23:::0;24238:24;;;:9:::1;:24;::::0;;;;;24320:11:::1;::::0;24238:24;;14892:23;24303:45:::1;::::0;24346:1:::1;::::0;24303:38:::1;::::0;24337:3:::1;::::0;24303:38;;24238:24;;24303:16:::1;:29::i;:::-;:33:::0;::::1;:38::i;:45::-;24274:74:::0;-1:-1:-1;24364:20:0::1;24387:36;:12:::0;24274:74;24387:16:::1;:36::i;:::-;24364:59;;24436:30;24453:12;24436:16;:30::i;:::-;24479:23;24505:21;24479:47;;24537:21;24561:43;24600:3;24561:34;24581:13;;24561:15;:19;;:34;;;;:::i;:43::-;24537:67;;24615:23;24641:41;24678:3;24641:32;24661:11;;24641:15;:19;;:32;;;;:::i;:41::-;24615:67;;24693:23;24719:48;24765:1;24719:41;24756:3;24719:32;24739:11;;24719:15;:19;;:32;;;;:::i;:48::-;24693:74:::0;-1:-1:-1;24790:19:0;;24786:95:::1;;24833:9;::::0;24825:44:::1;::::0;-1:-1:-1;;;;;24833:9:0;;::::1;::::0;24825:44;::::1;;;::::0;24853:15;;24833:9:::1;24825:44:::0;24833:9;24825:44;24853:15;24833:9;24825:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24786:95;24905:10;;;;;;;;;-1:-1:-1::0;;;;;24905:10:0::1;-1:-1:-1::0;;;;;24905:18:0::1;;24931:13;24905:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;24901:58:::0;24983:22;;24979:103:::1;;25021:49;25034:18;25054:15;25021:12;:49::i;:::-;-1:-1:-1::0;;14938:16:0;:24;;-1:-1:-1;;;;14938:24:0;;;-1:-1:-1;;;;;24157:932:0:o;18848:335::-;-1:-1:-1;;;;;18935:23:0;;18953:4;18935:23;;;;:41;;-1:-1:-1;18972:4:0;;-1:-1:-1;;;;;18962:14:0;;;18972:4;;18962:14;;18935:41;18927:50;;;;;;-1:-1:-1;;;;;18988:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;18988:33:0;;;;;;;;;;;;19032:144;;19057:10;;:30;;-1:-1:-1;;;19057:30:0;;-1:-1:-1;;;;;10441:32:1;;;19057:30:0;;;10423:51:1;19057:10:0;10490:18:1;;;10483:34;19057:10:0;;;;:19;;10396:18:1;;19057:30:0;10249:274:1;19032:144:0;19118:10;;-1:-1:-1;;;;;19146:17:0;;;19118:10;19146:17;;;:9;:17;;;;;;;;19118:46;;-1:-1:-1;;;19118:46:0;;;;;10423:51:1;;;;10490:18;;;10483:34;19118:10:0;;;:19;;10396:18:1;;19118:46:0;10249:274:1;16093:102:0;16154:10;;:33;;-1:-1:-1;;;16154:33:0;;-1:-1:-1;;;;;2288:32:1;;;16154:33:0;;;2270:51:1;16154:10:0;;;;:21;;2243:18:1;;16154:33:0;2097:230:1;3650:345:0;3736:7;3838:12;3831:5;3823:28;;;;-1:-1:-1;;;3823:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3862:9:0;3874:5;3878:1;3874;:5;:::i;22619:330::-;22749:53;;;;;;;;;;;-1:-1:-1;;;22749:53:0;;;;;;;;-1:-1:-1;;;;;22749:17:0;;22712:4;22749:17;;;:9;:17;;;;;;;:53;;22771:6;;22749:21;:53::i;:::-;-1:-1:-1;;;;;22729:17:0;;;;;;;:9;:17;;;;;;:73;;;;22836:20;;;;;;;:32;;22861:6;22836:24;:32::i;:::-;-1:-1:-1;;;;;22813:20:0;;;;;;;:9;:20;;;;;;;:55;;;;22884:35;;;;;;;;;;22912:6;160:25:1;;148:2;133:18;;14:177;22884:35:0;;;;;;;;-1:-1:-1;22937:4:0;22619:330;;;;;:::o;2729:181::-;2787:7;;2819:5;2823:1;2819;:5;:::i;:::-;2807:17;;2848:1;2843;:6;;2835:46;;;;-1:-1:-1;;;2835:46:0;;11150:2:1;2835:46:0;;;11132:21:1;11189:2;11169:18;;;11162:30;11228:29;11208:18;;;11201:57;11275:18;;2835:46:0;10948:351:1;22963:427:0;23103:4;;23049:7;;;;-1:-1:-1;;;;;23103:17:0;;;:4;;:17;:36;;23133:6;;23103:36;;;23123:7;;23103:36;23079:60;-1:-1:-1;23150:17:0;23170:34;23200:3;23170:25;:6;23079:60;23170:10;:25::i;:34::-;23262:4;23244:24;;;;:9;:24;;;;;;23150:54;;-1:-1:-1;23244:39:0;;23150:54;23244:28;:39::i;:::-;23235:4;23217:24;;;;:9;:24;;;;;;;:66;;;;23299:42;;-1:-1:-1;;;;;23299:42:0;;;;;;;23331:9;160:25:1;;148:2;133:18;;14:177;23299:42:0;;;;;;;;23361:21;:6;23372:9;23361:10;:21::i;:::-;23354:28;22963:427;-1:-1:-1;;;;;;22963:427:0:o;23402:460::-;23494:16;;;23508:1;23494:16;;;;;;;;23470:21;;23494:16;;;;;;;;;;-1:-1:-1;23494:16:0;23470:40;;23539:4;23521;23526:1;23521:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23521:23:0;;;:7;;;;;;;;;;:23;;;;23565:6;;:13;;;-1:-1:-1;;;23565:13:0;;;;:6;;;;;:11;;:13;;;;;23521:7;;23565:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23555:4;23560:1;23555:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23555:23:0;;;-1:-1:-1;;;;;23555:23:0;;;;;23591:35;23607:4;23614:11;23591:7;:35::i;:::-;-1:-1:-1;23639:6:0;;:215;;-1:-1:-1;;;23639:215:0;;-1:-1:-1;;;;;23639:6:0;;;;:57;;:215;;23711:11;;23639:6;;23781:4;;23808;;23828:15;;23639:215;;;:::i;23870:279::-;23951:6;;24092:8;;23951:190;;-1:-1:-1;;;23951:190:0;;24014:4;23951:190;;;12886:34:1;12936:18;;;12929:34;;;23951:6:0;12979:18:1;;;12972:34;;;13022:18;;;13015:34;-1:-1:-1;;;;;24092:8:0;;;13065:19:1;;;13058:44;24115:15:0;13118:19:1;;;13111:35;23951:6:0;;;:22;;23981:9;;12820:19:1;;23951: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:247::-;1644:6;1697:2;1685:9;1676:7;1672:23;1668:32;1665:52;;;1713:1;1710;1703:12;1665:52;1752:9;1739:23;1771:31;1796:5;1771:31;:::i;2332:456::-;2409:6;2417;2425;2478:2;2466:9;2457:7;2453:23;2449:32;2446:52;;;2494:1;2491;2484:12;2446:52;2533:9;2520:23;2552:31;2577:5;2552:31;:::i;:::-;2602:5;-1:-1:-1;2659:2:1;2644:18;;2631:32;2672:33;2631:32;2672:33;:::i;:::-;2332:456;;2724:7;;-1:-1:-1;;;2778:2:1;2763:18;;;;2750:32;;2332:456::o;3001:248::-;3069:6;3077;3130:2;3118:9;3109:7;3105:23;3101:32;3098:52;;;3146:1;3143;3136:12;3098:52;-1:-1:-1;;3169:23:1;;;3239:2;3224:18;;;3211:32;;-1:-1:-1;3001:248:1:o;3254:316::-;3331:6;3339;3347;3400:2;3388:9;3379:7;3375:23;3371:32;3368:52;;;3416:1;3413;3406:12;3368:52;-1:-1:-1;;3439:23:1;;;3509:2;3494:18;;3481:32;;-1:-1:-1;3560:2:1;3545:18;;;3532:32;;3254:316;-1:-1:-1;3254:316:1:o;3764:180::-;3823:6;3876:2;3864:9;3855:7;3851:23;3847:32;3844:52;;;3892:1;3889;3882:12;3844:52;-1:-1:-1;3915:23:1;;3764:180;-1:-1:-1;3764:180:1:o;3949:160::-;4014:20;;4070:13;;4063:21;4053:32;;4043:60;;4099:1;4096;4089:12;4114:248;4179:6;4187;4240:2;4228:9;4219:7;4215:23;4211:32;4208:52;;;4256:1;4253;4246:12;4208:52;4279:26;4295:9;4279:26;:::i;4367:315::-;4432:6;4440;4493:2;4481:9;4472:7;4468:23;4464:32;4461:52;;;4509:1;4506;4499:12;4461:52;4548:9;4535:23;4567:31;4592:5;4567:31;:::i;:::-;4617:5;-1:-1:-1;4641:35:1;4672:2;4657:18;;4641:35;:::i;:::-;4631:45;;4367:315;;;;;:::o;4687:127::-;4748:10;4743:3;4739:20;4736:1;4729:31;4779:4;4776:1;4769:15;4803:4;4800:1;4793:15;4819:1121;4903:6;4934:2;4977;4965:9;4956:7;4952:23;4948:32;4945:52;;;4993:1;4990;4983:12;4945:52;5033:9;5020:23;5062:18;5103:2;5095:6;5092:14;5089:34;;;5119:1;5116;5109:12;5089:34;5157:6;5146:9;5142:22;5132:32;;5202:7;5195:4;5191:2;5187:13;5183:27;5173:55;;5224:1;5221;5214:12;5173:55;5260:2;5247:16;5282:2;5278;5275:10;5272:36;;;5288:18;;:::i;:::-;5334:2;5331:1;5327:10;5366:2;5360:9;5429:2;5425:7;5420:2;5416;5412:11;5408:25;5400:6;5396:38;5484:6;5472:10;5469:22;5464:2;5452:10;5449:18;5446:46;5443:72;;;5495:18;;:::i;:::-;5531:2;5524:22;5581:18;;;5615:15;;;;-1:-1:-1;5657:11:1;;;5653:20;;;5685:19;;;5682:39;;;5717:1;5714;5707:12;5682:39;5741:11;;;;5761:148;5777:6;5772:3;5769:15;5761:148;;;5843:23;5862:3;5843:23;:::i;:::-;5831:36;;5794:12;;;;5887;;;;5761:148;;;5928:6;4819:1121;-1:-1:-1;;;;;;;;4819:1121:1:o;5945:388::-;6013:6;6021;6074:2;6062:9;6053:7;6049:23;6045:32;6042:52;;;6090:1;6087;6080:12;6042:52;6129:9;6116:23;6148:31;6173:5;6148:31;:::i;:::-;6198:5;-1:-1:-1;6255:2:1;6240:18;;6227:32;6268:33;6227:32;6268:33;:::i;:::-;6320:7;6310:17;;;5945:388;;;;;:::o;6564:184::-;6634:6;6687:2;6675:9;6666:7;6662:23;6658:32;6655:52;;;6703:1;6700;6693:12;6655:52;-1:-1:-1;6726:16:1;;6564:184;-1:-1:-1;6564:184:1:o;6753:329::-;6955:2;6937:21;;;6994:1;6974:18;;;6967:29;-1:-1:-1;;;7027:2:1;7012:18;;7005:36;7073:2;7058:18;;6753:329::o;7686:127::-;7747:10;7742:3;7738:20;7735:1;7728:31;7778:4;7775:1;7768:15;7802:4;7799:1;7792:15;7818:168;7858:7;7924:1;7920;7916:6;7912:14;7909:1;7906:21;7901:1;7894:9;7887:17;7883:45;7880:71;;;7931:18;;:::i;:::-;-1:-1:-1;7971:9:1;;7818:168::o;7991:217::-;8031:1;8057;8047:132;;8101:10;8096:3;8092:20;8089:1;8082:31;8136:4;8133:1;8126:15;8164:4;8161:1;8154:15;8047:132;-1:-1:-1;8193:9:1;;7991:217::o;8213:127::-;8274:10;8269:3;8265:20;8262:1;8255:31;8305:4;8302:1;8295:15;8329:4;8326:1;8319:15;8345:135;8384:3;8405:17;;;8402:43;;8425:18;;:::i;:::-;-1:-1:-1;8472:1:1;8461:13;;8345:135::o;9103:125::-;9143:4;9171:1;9168;9165:8;9162:34;;;9176:18;;:::i;:::-;-1:-1:-1;9213:9:1;;9103:125::o;10815:128::-;10855:3;10886:1;10882:6;10879:1;10876:13;10873:39;;;10892:18;;:::i;:::-;-1:-1:-1;10928:9:1;;10815:128::o;11304:251::-;11374:6;11427:2;11415:9;11406:7;11402:23;11398:32;11395:52;;;11443:1;11440;11433:12;11395:52;11475:9;11469:16;11494:31;11519:5;11494:31;:::i;11560:980::-;11822:4;11870:3;11859:9;11855:19;11901:6;11890:9;11883:25;11927:2;11965:6;11960:2;11949:9;11945:18;11938:34;12008:3;12003:2;11992:9;11988:18;11981:31;12032:6;12067;12061:13;12098:6;12090;12083:22;12136:3;12125:9;12121:19;12114:26;;12175:2;12167:6;12163:15;12149:29;;12196:1;12206:195;12220:6;12217:1;12214:13;12206:195;;;12285:13;;-1:-1:-1;;;;;12281:39:1;12269:52;;12376:15;;;;12341:12;;;;12317:1;12235:9;12206:195;;;-1:-1:-1;;;;;;;12457:32:1;;;;12452:2;12437:18;;12430:60;-1:-1:-1;;;12521:3:1;12506:19;12499:35;12418:3;11560:980;-1:-1:-1;;;11560:980:1:o;13157:306::-;13245:6;13253;13261;13314:2;13302:9;13293:7;13289:23;13285:32;13282:52;;;13330:1;13327;13320:12;13282:52;13359:9;13353:16;13343:26;;13409:2;13398:9;13394:18;13388:25;13378:35;;13453:2;13442:9;13438:18;13432:25;13422:35;;13157:306;;;;;:::o

Swarm Source

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