ETH Price: $3,332.93 (-1.26%)
Gas: 8 Gwei

Token

BABY WHITE RABBIT (BWRBT)
 

Overview

Max Total Supply

10,000,000,000,000 BWRBT

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,586,959,659.393502641301586428 BWRBT

Value
$0.00
0xd38182442b0Dfb93278e8c74c62F3f11bbdEEb33
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:
BWRBT

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-12
*/

/*
THE WHITE RABBIT IS ANAWESOME TOKEN
$WRBT INFO:
https://www.dextools.io/app/ether/pair-explorer/0xD71B0f74790Fe3Bc15ACC1125c075C59990c376e
https://thewhiterabbit.tech/
https://t.me/thewhiterabbit_official
JOIN THERE JOURNEY TO THE MOON!!!!!!!!!!!!!!
BABY WHITE RABBIT will bring an extra push the $WRBT MC
JUST BUY AND HOLD $BWRBT and get 4% $WRBT EVERY 60 MINUTES
BUY & SELL 7% tax
4% $WRBT Rewards
3% Marketing & BUYBACKS
LOCK & RENOUNCE PLAY
*/

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.11;

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

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

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

    function isAuthorized(address adr) internal view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        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 IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}


contract DividendDistributor is IDividendDistributor {

    using SafeMath for uint256;
    address _token;

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

    IDEXRouter router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    ERC20 RewardToken = ERC20(0x2217E7dB352D8Be54df8c9541B04b6812278f369); //WRBT

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

    uint256 currentIndex;

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

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

    constructor (address _router) {
        router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(routerAddress);
        _token = msg.sender;
    }

    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() external payable override onlyToken {

        uint256 balanceBefore = RewardToken.balanceOf(address(this));

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

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

        uint256 amount = RewardToken.balanceOf(address(this)).sub(balanceBefore);
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        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) internal 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);
            RewardToken.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {

        require(shouldDistribute(msg.sender), "Too soon. Need to wait!");
        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 BWRBT is ERC20, Auth {
    
    using SafeMath for uint256;

    string constant _name = "BABY WHITE RABBIT";
    string constant _symbol = "BWRBT";
    uint8 constant _decimals = 18;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address RewardToken = 0x2217E7dB352D8Be54df8c9541B04b6812278f369; //WRBT

    uint256 _totalSupply = 1 * 10**13 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 7 / 1000;
    uint256 public _walletMax = _totalSupply * 21 / 1000; 
    
    bool public restrictWhales = true;

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

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

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 3;
    uint256 public rewardsFee = 4;
    uint256 public extraFeeOnSell = 0;

    uint256 public totalFee = 7;
    uint256 public totalFeeIfSelling = 7;

    address public autoLiquidityReceiver;
    address public marketingWallet;
    address public devWallet;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;

    DividendDistributor public dividendDistributor;
    uint256 distributorGas = 500000;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 5 / 4000;
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

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

        dividendDistributor = new DividendDistributor(address(router));

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

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[msg.sender] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;
        isDividendExempt[ZERO] = true;

        // NAIS!
        autoLiquidityReceiver = 0x2b2BCD1D2bEBc1e9E83EfEa0f8ac22c22176952E;
        marketingWallet = 0x2b2BCD1D2bEBc1e9E83EfEa0f8ac22c22176952E;
        devWallet = 0x2b2BCD1D2bEBc1e9E83EfEa0f8ac22c22176952E;
        
        totalFee = liquidityFee.add(marketingFee).add(rewardsFee);
        totalFeeIfSelling = totalFee.add(extraFeeOnSell);

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

    receive() external payable { }

    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function getOwner() external view override returns (address) { return owner; }

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

    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 launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function clearStuckToken(address _token) external authorized {
    uint256 _contractBalance = ERC20(_token).balanceOf(address(dividendDistributor));
    payable(devWallet).transfer(_contractBalance);
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function changeTxLimit(uint256 amountPercent) external authorized {
        require(amountPercent>0);
        _maxTxAmount = (_totalSupply * amountPercent ) / 100;
    }

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _totalSupply;
        _walletMax = _totalSupply;
    }

    function changeRestrictWhales(bool newValue) external authorized {
       restrictWhales = newValue;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

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

    function changeIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        
        if(exempt){
            dividendDistributor.setShare(holder, 0);
        }else{
            dividendDistributor.setShare(holder, _balances[holder]);
        }
    }

    function changeFees(uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee, uint256 newExtraSellFee) external authorized {
        require(liquidityFee >= 0 && liquidityFee <= 5, "Buy rewards must be between 0% and 5%");
        require(rewardsFee >= 0 && rewardsFee <= 10, "Buy tax must be between 0% and 10%");
        require(marketingFee >= 0 && marketingFee <= 10, "Buy tax must be between 0% and 10%");
        require(extraFeeOnSell >= 0 && extraFeeOnSell <= 10, "Buy tax must be between 0% and 10%");
        liquidityFee = newLiqFee;
        rewardsFee = newRewardFee;
        marketingFee = newMarketingFee;
        extraFeeOnSell = newExtraSellFee;
        
        totalFee = liquidityFee.add(marketingFee).add(rewardsFee);
        totalFeeIfSelling = totalFee.add(extraFeeOnSell);
    }

    function changeFeeReceivers(address newLiquidityReceiver, address newMarketingWallet, address newDevWallet) external authorized {
        autoLiquidityReceiver = newLiquidityReceiver;
        marketingWallet = newMarketingWallet;
        devWallet = newDevWallet;
    }

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

    function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized {
        dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution);
    }

    function changeDistributorSettings(uint256 gas) external authorized {
        require(gas < 500000);
        distributorGas = gas;
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(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 _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        
        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "Trading not open yet");
           }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");

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

        if(!launched() && recipient == pair) {
            require(_balances[sender] > 0);
            launch();
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
        if(!isTxLimitExempt[recipient] && restrictWhales)
        {
            require(_balances[recipient].add(amount) <= _walletMax);
        }

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

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

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

        try dividendDistributor.process(distributorGas) {} 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 ? totalFeeIfSelling : totalFee;
        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 tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

    function swapBack() internal lockTheSwap {
        
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHReflection = amountETH.mul(rewardsFee).div(totalETHFee);
        uint256 amountETHMarketing = amountETH.sub(amountETHLiquidity).sub(amountETHReflection);

        try dividendDistributor.deposit{value: amountETHReflection}() {} catch {}
        
        uint256 marketingShare = amountETHMarketing.mul(1).div(2);
        uint256 devShare = amountETHMarketing.sub(marketingShare);
        
        (bool tmpSuccess,) = payable(marketingWallet).call{value: marketingShare, gas: 30000}("");
        (bool tmpSuccess1, ) = payable(devWallet).call { value: devShare, gas: 30000 }("");

        
        // only to supress warning msg
        tmpSuccess = false;
        tmpSuccess1 = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newExtraSellFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","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":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","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":[{"internalType":"address","name":"_token","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"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":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","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":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead179091556003805482169055600480548216737a250d5630b4cf539739df2c5dacb4c659f2488d17905560058054909116732217e7db352d8be54df8c9541b04b6812278f3691790556200006e6012600a620006b9565b62000080906509184e72a000620006d1565b6006556103e86006546007620000979190620006d1565b620000a39190620006f3565b6007556103e86006546015620000ba9190620006d1565b620000c69190620006f3565b6008556009805460ff199081166001179091556000600f8190556003601055600460115560125560076013819055601455601b805490911690556207a120601c55601d805462ffff001916610100179055600654610fa0906200012b906005620006d1565b620001379190620006f3565b601e553480156200014757600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560048054601880546001600160a01b03909216919094168117909355835163c45a015560e01b81529351929363c45a015593818301939290918290030181865afa158015620001cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f1919062000716565b6001600160a01b031663c9c65396601860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000253573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000279919062000716565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ec919062000716565b601980546001600160a01b0319166001600160a01b03928316179055306000908152600b60209081526040808320601880548616855292529182902060001990555490519116906200033e9062000598565b6001600160a01b039091168152602001604051809103906000f0801580156200036b573d6000803e3d6000fd5b50601b8054610100600160a81b0319166101006001600160a01b0393841602179055336000818152600c60209081526040808320805460ff199081166001908117909255308086528386208054831684179055868652600d85528386208054831684179055601980548916875284872080548416851790555488168652600e855283862080548316841790559585528285208054821683179055948452818420805486168217905560025486168452818420805486168217905560035490951683529091208054909216909217905560158054732b2bcd1d2bebc1e9e83efea0f8ac22c22176952e6001600160a01b0319918216811790925560168054821683179055601780549091169091179055601154601054600f54620004b1936200049d929062000529811b6200138d17901c565b6200052960201b6200138d1790919060201c565b601381905550620004d56012546013546200052960201b6200138d1790919060201c565b601455600654336000818152600a6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000757565b60008062000538838562000741565b9050838110156200058f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b6110da8062002c6583390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005fd578160001904821115620005e157620005e1620005a6565b80851615620005ef57918102915b93841c9390800290620005c1565b509250929050565b600082620006165750600162000592565b81620006255750600062000592565b81600181146200063e5760028114620006495762000669565b600191505062000592565b60ff8411156200065d576200065d620005a6565b50506001821b62000592565b5060208310610133831016604e8410600b84101617156200068e575081810a62000592565b6200069a8383620005bc565b8060001904821115620006b157620006b1620005a6565b029392505050565b6000620006ca60ff84168362000605565b9392505050565b6000816000190483118215151615620006ee57620006ee620005a6565b500290565b6000826200071157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200072957600080fd5b81516001600160a01b03811681146200058f57600080fd5b80820180821115620005925762000592620005a6565b6124fe80620007676000396000f3fe60806040526004361061031e5760003560e01c80637d1db4a5116101ab578063b6a5d7de116100f7578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b146109a6578063f887ea40146109c6578063fabe6283146109e6578063ffb54a9914610a0657600080fd5b8063dd62ed3e14610920578063e66b1d1e14610966578063f0b37c041461098657600080fd5b8063ca33e64c116100d1578063ca33e64c146108aa578063ca987b0e146108ca578063d920334e146108e0578063da00097d1461090057600080fd5b8063b6a5d7de1461084f578063bad3ea6a1461086f578063bf56b3711461089457600080fd5b806395d89b4111610164578063a3a2e89e1161013e578063a3a2e89e146107cf578063a8aa1b31146107ef578063a9059cbb1461080f578063a9f7864b1461082f57600080fd5b806395d89b411461076b57806398118cb4146107995780639be953b3146107af57600080fd5b80637d1db4a5146106b15780637db1342c146106c7578063807c2d9c146106e7578063893d20e8146106fd5780638b42507f1461071b5780638ea5220f1461074b57600080fd5b80633f4218e01161026a578063650c42261161022357806370a08231116101fd57806370a082311461060e578063751039fc1461064457806375f0a87414610659578063773fcb5c1461069157600080fd5b8063650c4226146105c257806369cf17d4146105e25780636b67c4df146105f857600080fd5b80633f4218e0146104e95780634355855a1461051957806344de2e4c14610549578063479f66d8146105635780634a74bb0214610583578063571ac8b0146105a257600080fd5b806323b872dd116102d75780632f54bf6e116102b15780632f54bf6e1461045e578063313ce5671461048d578063315dca29146104a957806334c70889146104c957600080fd5b806323b872dd146104135780632b112e49146104335780632bb14e1d1461044857600080fd5b80630445b6671461032a57806306fdde0314610353578063095ea7b3146103965780630d295980146103c657806318160ddd146103e85780631df4ccfc146103fd57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b50610340601e5481565b6040519081526020015b60405180910390f35b34801561035f57600080fd5b50604080518082019091526011815270109050964815d212551148149050909255607a1b60208201525b60405161034a9190612057565b3480156103a257600080fd5b506103b66103b13660046120bd565b610a20565b604051901515815260200161034a565b3480156103d257600080fd5b506103e66103e13660046120fe565b610a8d565b005b3480156103f457600080fd5b50600654610340565b34801561040957600080fd5b5061034060135481565b34801561041f57600080fd5b506103b661042e366004612119565b610ad3565b34801561043f57600080fd5b50610340610b95565b34801561045457600080fd5b5061034060115481565b34801561046a57600080fd5b506103b661047936600461215a565b6000546001600160a01b0391821691161490565b34801561049957600080fd5b506040516012815260200161034a565b3480156104b557600080fd5b506103e66104c4366004612177565b610be7565b3480156104d557600080fd5b506103e66104e43660046121c2565b610c4b565b3480156104f557600080fd5b506103b661050436600461215a565b600c6020526000908152604090205460ff1681565b34801561052557600080fd5b506103b661053436600461215a565b600e6020526000908152604090205460ff1681565b34801561055557600080fd5b506009546103b69060ff1681565b34801561056f57600080fd5b506103e661057e3660046121fe565b610ca6565b34801561058f57600080fd5b50601d546103b690610100900460ff1681565b3480156105ae57600080fd5b506103b66105bd36600461215a565b610cdf565b3480156105ce57600080fd5b506103e66105dd366004612217565b610ced565b3480156105ee57600080fd5b5061034060125481565b34801561060457600080fd5b5061034060105481565b34801561061a57600080fd5b5061034061062936600461215a565b6001600160a01b03166000908152600a602052604090205490565b34801561065057600080fd5b506103e6610e1f565b34801561066557600080fd5b50601654610679906001600160a01b031681565b6040516001600160a01b03909116815260200161034a565b34801561069d57600080fd5b506103e66106ac366004612249565b610e56565b3480156106bd57600080fd5b5061034060075481565b3480156106d357600080fd5b506103e66106e23660046121fe565b610f97565b3480156106f357600080fd5b5061034060085481565b34801561070957600080fd5b506000546001600160a01b0316610679565b34801561072757600080fd5b506103b661073636600461215a565b600d6020526000908152604090205460ff1681565b34801561075757600080fd5b50601754610679906001600160a01b031681565b34801561077757600080fd5b506040805180820190915260058152641095d4909560da1b6020820152610389565b3480156107a557600080fd5b50610340600f5481565b3480156107bb57600080fd5b506103e66107ca36600461215a565b610fe9565b3480156107db57600080fd5b506103e66107ea366004612249565b6110c3565b3480156107fb57600080fd5b50601954610679906001600160a01b031681565b34801561081b57600080fd5b506103b661082a3660046120bd565b611113565b34801561083b57600080fd5b506103e661084a36600461227e565b611120565b34801561085b57600080fd5b506103e661086a36600461215a565b611181565b34801561087b57600080fd5b50601b546106799061010090046001600160a01b031681565b3480156108a057600080fd5b50610340601a5481565b3480156108b657600080fd5b50601554610679906001600160a01b031681565b3480156108d657600080fd5b5061034060145481565b3480156108ec57600080fd5b506103e66108fb3660046121fe565b6111d2565b34801561090c57600080fd5b50601d546103b69062010000900460ff1681565b34801561092c57600080fd5b5061034061093b3660046122a0565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561097257600080fd5b506103e66109813660046120fe565b611224565b34801561099257600080fd5b506103e66109a136600461215a565b61125c565b3480156109b257600080fd5b506103e66109c136600461215a565b6112a7565b3480156109d257600080fd5b50601854610679906001600160a01b031681565b3480156109f257600080fd5b506103e6610a01366004612249565b61133d565b348015610a1257600080fd5b50601b546103b69060ff1681565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a7b9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610ac05760405162461bcd60e51b8152600401610ab7906122d9565b60405180910390fd5b601b805460ff1916911515919091179055565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205460001914610b80576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610b5b9184906113ec565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610b8b848484611426565b90505b9392505050565b6003546001600160a01b03166000908152600a6020526040812054610be2906002546001600160a01b03166000908152600a6020526040902054610bdc9060065490611924565b90611924565b905090565b610bf033611966565b610c0c5760405162461bcd60e51b8152600401610ab7906122f9565b601580546001600160a01b039485166001600160a01b031991821617909155601680549385169382169390931790925560178054919093169116179055565b610c5433611966565b610c705760405162461bcd60e51b8152600401610ab7906122f9565b601d8054601e93909355901515620100000262ff000019931515610100029390931662ffff001990921691909117919091179055565b610caf33611966565b610ccb5760405162461bcd60e51b8152600401610ab7906122f9565b6207a1208110610cda57600080fd5b601c55565b6000610a8782600019610a20565b610cf633611966565b610d125760405162461bcd60e51b8152600401610ab7906122f9565b6005600f541115610d735760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420352560d81b6064820152608401610ab7565b600a6011541115610d965760405162461bcd60e51b8152600401610ab79061231e565b600a6010541115610db95760405162461bcd60e51b8152600401610ab79061231e565b600a6012541115610ddc5760405162461bcd60e51b8152600401610ab79061231e565b600f849055601183905560108290556012819055610e0483610dfe868561138d565b9061138d565b6013819055601254610e16919061138d565b60145550505050565b6000546001600160a01b03163314610e495760405162461bcd60e51b8152600401610ab7906122d9565b6006546007819055600855565b610e5f33611966565b610e7b5760405162461bcd60e51b8152600401610ab7906122f9565b6001600160a01b0382163014801590610ea257506019546001600160a01b03838116911614155b610eab57600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff19168215801591909117909155610f4957601b54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152610100909204909116906314b6ca96906044015b600060405180830381600087803b158015610f2d57600080fd5b505af1158015610f41573d6000803e3d6000fd5b505050505050565b601b546001600160a01b038381166000818152600a602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401610f13565b610fa033611966565b610fbc5760405162461bcd60e51b8152600401610ab7906122f9565b60018111610fc957600080fd5b606481600654610fd99190612376565b610fe39190612395565b60085550565b610ff233611966565b61100e5760405162461bcd60e51b8152600401610ab7906122f9565b601b546040516370a0823160e01b81526001600160a01b03610100909204821660048201526000918316906370a0823190602401602060405180830381865afa15801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906123b7565b6017546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156110be573d6000803e3d6000fd5b505050565b6110cc33611966565b6110e85760405162461bcd60e51b8152600401610ab7906122f9565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000610b8e338484611426565b61112933611966565b6111455760405162461bcd60e51b8152600401610ab7906122f9565b601b546040516316a4744b60e11b815260048101849052602481018390526101009091046001600160a01b031690632d48e89690604401610f13565b6000546001600160a01b031633146111ab5760405162461bcd60e51b8152600401610ab7906122d9565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6111db33611966565b6111f75760405162461bcd60e51b8152600401610ab7906122f9565b6000811161120457600080fd5b6064816006546112149190612376565b61121e9190612395565b60075550565b61122d33611966565b6112495760405162461bcd60e51b8152600401610ab7906122f9565b6009805460ff1916911515919091179055565b6000546001600160a01b031633146112865760405162461bcd60e51b8152600401610ab7906122d9565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146112d15760405162461bcd60e51b8152600401610ab7906122d9565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61134633611966565b6113625760405162461bcd60e51b8152600401610ab7906122f9565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b60008061139a83856123d0565b905083811015610b8e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ab7565b600081848411156114105760405162461bcd60e51b8152600401610ab79190612057565b50600061141d84866123e3565b95945050505050565b601d5460009060ff16156114465761143f848484611984565b9050610b8e565b6001600160a01b03841660009081526001602052604090205460ff1615801561148857506001600160a01b03831660009081526001602052604090205460ff16155b156114d657601b5460ff166114d65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610ab7565b600754821115806114ff57506001600160a01b0384166000908152600d602052604090205460ff165b61153f5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610ab7565b6019546001600160a01b0316331480159061155d5750601d5460ff16155b80156115705750601d54610100900460ff165b801561158d5750601e54306000908152600a602052604090205410155b1561159a5761159a611a6a565b601a541580156115b757506019546001600160a01b038481169116145b156115e7576001600160a01b0384166000908152600a60205260409020546115de57600080fd5b6115e743601a55565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a90915291909120546116399184906113ec565b6001600160a01b038086166000908152600a60209081526040808320949094559186168152600d909152205460ff16158015611677575060095460ff165b156116ad576008546001600160a01b0384166000908152600a60205260409020546116a2908461138d565b11156116ad57600080fd5b6001600160a01b0384166000908152600c602052604081205460ff161580156116ef57506001600160a01b0384166000908152600c602052604090205460ff16155b6116f95782611704565b611704858585611ea7565b6001600160a01b0385166000908152600a602052604090205490915061172a908261138d565b6001600160a01b038086166000908152600a60209081526040808320949094559188168152600e909152205460ff166117d357601b546001600160a01b038681166000818152600a602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401600060405180830381600087803b1580156117c057600080fd5b505af19250505080156117d1575060015b505b6001600160a01b0384166000908152600e602052604090205460ff1661186957601b546001600160a01b038581166000818152600a602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401600060405180830381600087803b15801561185657600080fd5b505af1925050508015611867575060015b505b601b54601c546040516001624d3b8760e01b0319815260048101919091526101009091046001600160a01b03169063ffb2c47990602401600060405180830381600087803b1580156118ba57600080fd5b505af19250505080156118cb575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161191191815260200190565b60405180910390a3506001949350505050565b6000610b8e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ec565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546119d59184906113ec565b6001600160a01b038086166000908152600a60205260408082209390935590851681522054611a04908361138d565b6001600160a01b038085166000818152600a602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a589086815260200190565b60405180910390a35060019392505050565b601d805460ff19166001179055306000908152600a6020526040812054601354600f54919291611aab91600291611aa5919082908790611f6a565b90611fec565b90506000611ab98383611924565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611af357611af36123f6565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b70919061240c565b81600181518110611b8357611b836123f6565b6001600160a01b03928316602091820292909201015260185460405163791ac94760e01b815291169063791ac94790611bc9908590600090869030904290600401612429565b600060405180830381600087803b158015611be357600080fd5b505af1158015611bf7573d6000803e3d6000fd5b5050600f5447925060009150611c1b90611c12906002611fec565b60135490611924565b90506000611c3d6002611aa584611aa5600f5488611f6a90919063ffffffff16565b90506000611c5a83611aa560115487611f6a90919063ffffffff16565b90506000611c6c82610bdc8786611924565b9050601b60019054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611cbe57600080fd5b505af193505050508015611cd0575060015b506000611ce36002611aa5846001611f6a565b90506000611cf18383611924565b6016546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611d48576040519150601f19603f3d011682016040523d82523d6000602084013e611d4d565b606091505b50506017546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611da6576040519150601f19603f3d011682016040523d82523d6000602084013e611dab565b606091505b5060009350839250508c159050611e8e5760185460155460405163f305d71960e01b8152306004820152602481018f905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990899060c40160606040518083038185885af1158015611e2c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e51919061249a565b505060408051898152602081018f90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601d805460ff191690555050505050505050505050565b60195460009081906001600160a01b03858116911614611ec957601354611ecd565b6014545b90506000611ee06064611aa58685611f6a565b306000908152600a6020526040902054909150611efd908261138d565b306000818152600a6020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f4e9085815260200190565b60405180910390a3611f608482611924565b9695505050505050565b600082600003611f7c57506000610a87565b6000611f888385612376565b905082611f958583612395565b14610b8e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ab7565b6000610b8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361204a5760405162461bcd60e51b8152600401610ab79190612057565b50600061141d8486612395565b600060208083528351808285015260005b8181101561208457858101830151858201604001528201612068565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146120ba57600080fd5b50565b600080604083850312156120d057600080fd5b82356120db816120a5565b946020939093013593505050565b803580151581146120f957600080fd5b919050565b60006020828403121561211057600080fd5b610b8e826120e9565b60008060006060848603121561212e57600080fd5b8335612139816120a5565b92506020840135612149816120a5565b929592945050506040919091013590565b60006020828403121561216c57600080fd5b8135610b8e816120a5565b60008060006060848603121561218c57600080fd5b8335612197816120a5565b925060208401356121a7816120a5565b915060408401356121b7816120a5565b809150509250925092565b6000806000606084860312156121d757600080fd5b6121e0846120e9565b9250602084013591506121f5604085016120e9565b90509250925092565b60006020828403121561221057600080fd5b5035919050565b6000806000806080858703121561222d57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561225c57600080fd5b8235612267816120a5565b9150612275602084016120e9565b90509250929050565b6000806040838503121561229157600080fd5b50508035926020909101359150565b600080604083850312156122b357600080fd5b82356122be816120a5565b915060208301356122ce816120a5565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526022908201527f42757920746178206d757374206265206265747765656e20302520616e642031604082015261302560f01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561239057612390612360565b500290565b6000826123b257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156123c957600080fd5b5051919050565b80820180821115610a8757610a87612360565b81810381811115610a8757610a87612360565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561241e57600080fd5b8151610b8e816120a5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124795784516001600160a01b031683529383019391830191600101612454565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124af57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bb811709294b9ea49eeedad1840b7361be6574eb37ca20ea8d21496b9dbe038464736f6c634300081000336080604052600280546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d1790915560038054909116732217e7db352d8be54df8c9541b04b6812278f3691790556ec097ce7bc90715b34b9f1000000000600c55610e10600d556509184e72a000600e5534801561007b57600080fd5b506040516110da3803806110da83398101604081905261009a916100eb565b6001600160a01b0381166100b9576002546001600160a01b03166100bb565b805b600180546001600160a01b03929092166001600160a01b031992831617905560008054909116331790555061011b565b6000602082840312156100fd57600080fd5b81516001600160a01b038116811461011457600080fd5b9392505050565b610fb08061012a6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610224578063f0fc6bca1461023a578063ffb2c4791461024f578063ffd49c841461026f57600080fd5b8063ce7c2ac2146101af578063d0e30db014610206578063e2d2e2191461020e57600080fd5b80632d48e896116100bb5780632d48e8961461014d5780633a98ef391461016d5780634fab0ae814610183578063997664d71461019957600080fd5b806311ce023d146100e257806314b6ca961461010b57806328fd31981461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610d24565b610285565b005b34801561013957600080fd5b506100f8610148366004610d50565b6103fd565b34801561015957600080fd5b5061012b610168366004610d6d565b610488565b34801561017957600080fd5b506100f860085481565b34801561018f57600080fd5b506100f8600e5481565b3480156101a557600080fd5b506100f860095481565b3480156101bb57600080fd5b506101eb6101ca366004610d50565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104aa565b34801561021a57600080fd5b506100f8600b5481565b34801561023057600080fd5b506100f8600a5481565b34801561024657600080fd5b5061012b61073a565b34801561025b57600080fd5b5061012b61026a366004610d8f565b61079f565b34801561027b57600080fd5b506100f8600d5481565b6000546001600160a01b0316331461029c57600080fd5b6001600160a01b038216600090815260076020526040902054156102c3576102c3826108a4565b6000811180156102e957506001600160a01b038216600090815260076020526040902054155b1561034f57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610382565b8015801561037457506001600160a01b03821660009081526007602052604090205415155b1561038257610382826109c2565b6001600160a01b0382166000908152600760205260409020546008546103b39183916103ad91610ad7565b90610b22565b6008556001600160a01b03821660009081526007602052604090208190556103da81610b81565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b038116600090815260076020526040812054810361042457506000919050565b6001600160a01b03821660009081526007602052604081205461044690610b81565b6001600160a01b038416600090815260076020526040902060010154909150808211610476575060009392505050565b6104808282610ad7565b949350505050565b6000546001600160a01b0316331461049f57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104c157600080fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561050a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052e9190610da8565b60408051600280825260608201835292935060009290916020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561059d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c19190610dc1565b816000815181106105d4576105d4610dde565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061060557610605610dde565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de9590349061064b90600090869030904290600401610df4565b6000604051808303818588803b15801561066457600080fd5b505af1158015610678573d6000803e3d6000fd5b50506003546040516370a0823160e01b8152306004820152600094506106f893508692506001600160a01b03909116906370a0823190602401602060405180830381865afa1580156106ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f29190610da8565b90610ad7565b6009549091506107089082610b22565b600955600854600c5461073291610729916107239085610b9e565b90610c20565b600b5490610b22565b600b55505050565b61074333610c62565b6107945760405162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f20776169742100000000000000000060448201526064015b60405180910390fd5b61079d336108a4565b565b6000546001600160a01b031633146107b657600080fd5b60045460008190036107c6575050565b60008060005a90505b84821080156107dd57508383105b1561089c5783600f54106107f1576000600f555b6108236004600f548154811061080957610809610dde565b6000918252602090912001546001600160a01b0316610c62565b1561085a5761085a6004600f548154811061084057610840610dde565b6000918252602090912001546001600160a01b03166108a4565b61086f6108685a8390610ad7565b8390610b22565b91505a600f8054919250600061088483610e74565b9190505550828061089490610e74565b9350506107cf565b505050505b50565b6001600160a01b03811660009081526007602052604081205490036108c65750565b60006108d1826103fd565b905080156109be57600a546108e69082610b22565b600a5560035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af115801561093c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109609190610e8d565b506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109949082610b22565b6001600160a01b03831660009081526007602052604090206002810191909155546103da90610b81565b5050565b600480546109d290600190610eaf565b815481106109e2576109e2610dde565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2057610a20610dde565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610a6c90600190610eaf565b81548110610a7c57610a7c610dde565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610ab257610ab2610ec2565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ca7565b90505b92915050565b600080610b2f8385610ed8565b905083811015610b195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161078b565b6000610b1c600c54610723600b5485610b9e90919063ffffffff16565b600082600003610bb057506000610b1c565b6000610bbc8385610eeb565b905082610bc98583610f0a565b14610b195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161078b565b6000610b1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ce1565b600d546001600160a01b03821660009081526006602052604081205490914291610c8c9190610ed8565b108015610b1c5750600e54610ca0836103fd565b1192915050565b60008184841115610ccb5760405162461bcd60e51b815260040161078b9190610f2c565b506000610cd88486610eaf565b95945050505050565b60008183610d025760405162461bcd60e51b815260040161078b9190610f2c565b506000610cd88486610f0a565b6001600160a01b03811681146108a157600080fd5b60008060408385031215610d3757600080fd5b8235610d4281610d0f565b946020939093013593505050565b600060208284031215610d6257600080fd5b8135610b1981610d0f565b60008060408385031215610d8057600080fd5b50508035926020909101359150565b600060208284031215610da157600080fd5b5035919050565b600060208284031215610dba57600080fd5b5051919050565b600060208284031215610dd357600080fd5b8151610b1981610d0f565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610e3e5784516001600160a01b031683529383019391830191600101610e19565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b600060018201610e8657610e86610e5e565b5060010190565b600060208284031215610e9f57600080fd5b81518015158114610b1957600080fd5b81810381811115610b1c57610b1c610e5e565b634e487b7160e01b600052603160045260246000fd5b80820180821115610b1c57610b1c610e5e565b6000816000190483118215151615610f0557610f05610e5e565b500290565b600082610f2757634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610f5957858101830151858201604001528201610f3d565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212207f2d3b339695508ce3019d3249f5b6b67659a5959188decaf5e16791923cbcf064736f6c63430008100033

Deployed Bytecode

0x60806040526004361061031e5760003560e01c80637d1db4a5116101ab578063b6a5d7de116100f7578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b146109a6578063f887ea40146109c6578063fabe6283146109e6578063ffb54a9914610a0657600080fd5b8063dd62ed3e14610920578063e66b1d1e14610966578063f0b37c041461098657600080fd5b8063ca33e64c116100d1578063ca33e64c146108aa578063ca987b0e146108ca578063d920334e146108e0578063da00097d1461090057600080fd5b8063b6a5d7de1461084f578063bad3ea6a1461086f578063bf56b3711461089457600080fd5b806395d89b4111610164578063a3a2e89e1161013e578063a3a2e89e146107cf578063a8aa1b31146107ef578063a9059cbb1461080f578063a9f7864b1461082f57600080fd5b806395d89b411461076b57806398118cb4146107995780639be953b3146107af57600080fd5b80637d1db4a5146106b15780637db1342c146106c7578063807c2d9c146106e7578063893d20e8146106fd5780638b42507f1461071b5780638ea5220f1461074b57600080fd5b80633f4218e01161026a578063650c42261161022357806370a08231116101fd57806370a082311461060e578063751039fc1461064457806375f0a87414610659578063773fcb5c1461069157600080fd5b8063650c4226146105c257806369cf17d4146105e25780636b67c4df146105f857600080fd5b80633f4218e0146104e95780634355855a1461051957806344de2e4c14610549578063479f66d8146105635780634a74bb0214610583578063571ac8b0146105a257600080fd5b806323b872dd116102d75780632f54bf6e116102b15780632f54bf6e1461045e578063313ce5671461048d578063315dca29146104a957806334c70889146104c957600080fd5b806323b872dd146104135780632b112e49146104335780632bb14e1d1461044857600080fd5b80630445b6671461032a57806306fdde0314610353578063095ea7b3146103965780630d295980146103c657806318160ddd146103e85780631df4ccfc146103fd57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b50610340601e5481565b6040519081526020015b60405180910390f35b34801561035f57600080fd5b50604080518082019091526011815270109050964815d212551148149050909255607a1b60208201525b60405161034a9190612057565b3480156103a257600080fd5b506103b66103b13660046120bd565b610a20565b604051901515815260200161034a565b3480156103d257600080fd5b506103e66103e13660046120fe565b610a8d565b005b3480156103f457600080fd5b50600654610340565b34801561040957600080fd5b5061034060135481565b34801561041f57600080fd5b506103b661042e366004612119565b610ad3565b34801561043f57600080fd5b50610340610b95565b34801561045457600080fd5b5061034060115481565b34801561046a57600080fd5b506103b661047936600461215a565b6000546001600160a01b0391821691161490565b34801561049957600080fd5b506040516012815260200161034a565b3480156104b557600080fd5b506103e66104c4366004612177565b610be7565b3480156104d557600080fd5b506103e66104e43660046121c2565b610c4b565b3480156104f557600080fd5b506103b661050436600461215a565b600c6020526000908152604090205460ff1681565b34801561052557600080fd5b506103b661053436600461215a565b600e6020526000908152604090205460ff1681565b34801561055557600080fd5b506009546103b69060ff1681565b34801561056f57600080fd5b506103e661057e3660046121fe565b610ca6565b34801561058f57600080fd5b50601d546103b690610100900460ff1681565b3480156105ae57600080fd5b506103b66105bd36600461215a565b610cdf565b3480156105ce57600080fd5b506103e66105dd366004612217565b610ced565b3480156105ee57600080fd5b5061034060125481565b34801561060457600080fd5b5061034060105481565b34801561061a57600080fd5b5061034061062936600461215a565b6001600160a01b03166000908152600a602052604090205490565b34801561065057600080fd5b506103e6610e1f565b34801561066557600080fd5b50601654610679906001600160a01b031681565b6040516001600160a01b03909116815260200161034a565b34801561069d57600080fd5b506103e66106ac366004612249565b610e56565b3480156106bd57600080fd5b5061034060075481565b3480156106d357600080fd5b506103e66106e23660046121fe565b610f97565b3480156106f357600080fd5b5061034060085481565b34801561070957600080fd5b506000546001600160a01b0316610679565b34801561072757600080fd5b506103b661073636600461215a565b600d6020526000908152604090205460ff1681565b34801561075757600080fd5b50601754610679906001600160a01b031681565b34801561077757600080fd5b506040805180820190915260058152641095d4909560da1b6020820152610389565b3480156107a557600080fd5b50610340600f5481565b3480156107bb57600080fd5b506103e66107ca36600461215a565b610fe9565b3480156107db57600080fd5b506103e66107ea366004612249565b6110c3565b3480156107fb57600080fd5b50601954610679906001600160a01b031681565b34801561081b57600080fd5b506103b661082a3660046120bd565b611113565b34801561083b57600080fd5b506103e661084a36600461227e565b611120565b34801561085b57600080fd5b506103e661086a36600461215a565b611181565b34801561087b57600080fd5b50601b546106799061010090046001600160a01b031681565b3480156108a057600080fd5b50610340601a5481565b3480156108b657600080fd5b50601554610679906001600160a01b031681565b3480156108d657600080fd5b5061034060145481565b3480156108ec57600080fd5b506103e66108fb3660046121fe565b6111d2565b34801561090c57600080fd5b50601d546103b69062010000900460ff1681565b34801561092c57600080fd5b5061034061093b3660046122a0565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561097257600080fd5b506103e66109813660046120fe565b611224565b34801561099257600080fd5b506103e66109a136600461215a565b61125c565b3480156109b257600080fd5b506103e66109c136600461215a565b6112a7565b3480156109d257600080fd5b50601854610679906001600160a01b031681565b3480156109f257600080fd5b506103e6610a01366004612249565b61133d565b348015610a1257600080fd5b50601b546103b69060ff1681565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a7b9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610ac05760405162461bcd60e51b8152600401610ab7906122d9565b60405180910390fd5b601b805460ff1916911515919091179055565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205460001914610b80576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610b5b9184906113ec565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610b8b848484611426565b90505b9392505050565b6003546001600160a01b03166000908152600a6020526040812054610be2906002546001600160a01b03166000908152600a6020526040902054610bdc9060065490611924565b90611924565b905090565b610bf033611966565b610c0c5760405162461bcd60e51b8152600401610ab7906122f9565b601580546001600160a01b039485166001600160a01b031991821617909155601680549385169382169390931790925560178054919093169116179055565b610c5433611966565b610c705760405162461bcd60e51b8152600401610ab7906122f9565b601d8054601e93909355901515620100000262ff000019931515610100029390931662ffff001990921691909117919091179055565b610caf33611966565b610ccb5760405162461bcd60e51b8152600401610ab7906122f9565b6207a1208110610cda57600080fd5b601c55565b6000610a8782600019610a20565b610cf633611966565b610d125760405162461bcd60e51b8152600401610ab7906122f9565b6005600f541115610d735760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420352560d81b6064820152608401610ab7565b600a6011541115610d965760405162461bcd60e51b8152600401610ab79061231e565b600a6010541115610db95760405162461bcd60e51b8152600401610ab79061231e565b600a6012541115610ddc5760405162461bcd60e51b8152600401610ab79061231e565b600f849055601183905560108290556012819055610e0483610dfe868561138d565b9061138d565b6013819055601254610e16919061138d565b60145550505050565b6000546001600160a01b03163314610e495760405162461bcd60e51b8152600401610ab7906122d9565b6006546007819055600855565b610e5f33611966565b610e7b5760405162461bcd60e51b8152600401610ab7906122f9565b6001600160a01b0382163014801590610ea257506019546001600160a01b03838116911614155b610eab57600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff19168215801591909117909155610f4957601b54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152610100909204909116906314b6ca96906044015b600060405180830381600087803b158015610f2d57600080fd5b505af1158015610f41573d6000803e3d6000fd5b505050505050565b601b546001600160a01b038381166000818152600a602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401610f13565b610fa033611966565b610fbc5760405162461bcd60e51b8152600401610ab7906122f9565b60018111610fc957600080fd5b606481600654610fd99190612376565b610fe39190612395565b60085550565b610ff233611966565b61100e5760405162461bcd60e51b8152600401610ab7906122f9565b601b546040516370a0823160e01b81526001600160a01b03610100909204821660048201526000918316906370a0823190602401602060405180830381865afa15801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906123b7565b6017546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156110be573d6000803e3d6000fd5b505050565b6110cc33611966565b6110e85760405162461bcd60e51b8152600401610ab7906122f9565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000610b8e338484611426565b61112933611966565b6111455760405162461bcd60e51b8152600401610ab7906122f9565b601b546040516316a4744b60e11b815260048101849052602481018390526101009091046001600160a01b031690632d48e89690604401610f13565b6000546001600160a01b031633146111ab5760405162461bcd60e51b8152600401610ab7906122d9565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6111db33611966565b6111f75760405162461bcd60e51b8152600401610ab7906122f9565b6000811161120457600080fd5b6064816006546112149190612376565b61121e9190612395565b60075550565b61122d33611966565b6112495760405162461bcd60e51b8152600401610ab7906122f9565b6009805460ff1916911515919091179055565b6000546001600160a01b031633146112865760405162461bcd60e51b8152600401610ab7906122d9565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146112d15760405162461bcd60e51b8152600401610ab7906122d9565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61134633611966565b6113625760405162461bcd60e51b8152600401610ab7906122f9565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b60008061139a83856123d0565b905083811015610b8e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ab7565b600081848411156114105760405162461bcd60e51b8152600401610ab79190612057565b50600061141d84866123e3565b95945050505050565b601d5460009060ff16156114465761143f848484611984565b9050610b8e565b6001600160a01b03841660009081526001602052604090205460ff1615801561148857506001600160a01b03831660009081526001602052604090205460ff16155b156114d657601b5460ff166114d65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610ab7565b600754821115806114ff57506001600160a01b0384166000908152600d602052604090205460ff165b61153f5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610ab7565b6019546001600160a01b0316331480159061155d5750601d5460ff16155b80156115705750601d54610100900460ff165b801561158d5750601e54306000908152600a602052604090205410155b1561159a5761159a611a6a565b601a541580156115b757506019546001600160a01b038481169116145b156115e7576001600160a01b0384166000908152600a60205260409020546115de57600080fd5b6115e743601a55565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a90915291909120546116399184906113ec565b6001600160a01b038086166000908152600a60209081526040808320949094559186168152600d909152205460ff16158015611677575060095460ff165b156116ad576008546001600160a01b0384166000908152600a60205260409020546116a2908461138d565b11156116ad57600080fd5b6001600160a01b0384166000908152600c602052604081205460ff161580156116ef57506001600160a01b0384166000908152600c602052604090205460ff16155b6116f95782611704565b611704858585611ea7565b6001600160a01b0385166000908152600a602052604090205490915061172a908261138d565b6001600160a01b038086166000908152600a60209081526040808320949094559188168152600e909152205460ff166117d357601b546001600160a01b038681166000818152600a602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401600060405180830381600087803b1580156117c057600080fd5b505af19250505080156117d1575060015b505b6001600160a01b0384166000908152600e602052604090205460ff1661186957601b546001600160a01b038581166000818152600a602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401600060405180830381600087803b15801561185657600080fd5b505af1925050508015611867575060015b505b601b54601c546040516001624d3b8760e01b0319815260048101919091526101009091046001600160a01b03169063ffb2c47990602401600060405180830381600087803b1580156118ba57600080fd5b505af19250505080156118cb575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161191191815260200190565b60405180910390a3506001949350505050565b6000610b8e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ec565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546119d59184906113ec565b6001600160a01b038086166000908152600a60205260408082209390935590851681522054611a04908361138d565b6001600160a01b038085166000818152600a602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a589086815260200190565b60405180910390a35060019392505050565b601d805460ff19166001179055306000908152600a6020526040812054601354600f54919291611aab91600291611aa5919082908790611f6a565b90611fec565b90506000611ab98383611924565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611af357611af36123f6565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b70919061240c565b81600181518110611b8357611b836123f6565b6001600160a01b03928316602091820292909201015260185460405163791ac94760e01b815291169063791ac94790611bc9908590600090869030904290600401612429565b600060405180830381600087803b158015611be357600080fd5b505af1158015611bf7573d6000803e3d6000fd5b5050600f5447925060009150611c1b90611c12906002611fec565b60135490611924565b90506000611c3d6002611aa584611aa5600f5488611f6a90919063ffffffff16565b90506000611c5a83611aa560115487611f6a90919063ffffffff16565b90506000611c6c82610bdc8786611924565b9050601b60019054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611cbe57600080fd5b505af193505050508015611cd0575060015b506000611ce36002611aa5846001611f6a565b90506000611cf18383611924565b6016546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611d48576040519150601f19603f3d011682016040523d82523d6000602084013e611d4d565b606091505b50506017546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611da6576040519150601f19603f3d011682016040523d82523d6000602084013e611dab565b606091505b5060009350839250508c159050611e8e5760185460155460405163f305d71960e01b8152306004820152602481018f905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990899060c40160606040518083038185885af1158015611e2c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e51919061249a565b505060408051898152602081018f90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601d805460ff191690555050505050505050505050565b60195460009081906001600160a01b03858116911614611ec957601354611ecd565b6014545b90506000611ee06064611aa58685611f6a565b306000908152600a6020526040902054909150611efd908261138d565b306000818152600a6020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f4e9085815260200190565b60405180910390a3611f608482611924565b9695505050505050565b600082600003611f7c57506000610a87565b6000611f888385612376565b905082611f958583612395565b14610b8e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ab7565b6000610b8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361204a5760405162461bcd60e51b8152600401610ab79190612057565b50600061141d8486612395565b600060208083528351808285015260005b8181101561208457858101830151858201604001528201612068565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146120ba57600080fd5b50565b600080604083850312156120d057600080fd5b82356120db816120a5565b946020939093013593505050565b803580151581146120f957600080fd5b919050565b60006020828403121561211057600080fd5b610b8e826120e9565b60008060006060848603121561212e57600080fd5b8335612139816120a5565b92506020840135612149816120a5565b929592945050506040919091013590565b60006020828403121561216c57600080fd5b8135610b8e816120a5565b60008060006060848603121561218c57600080fd5b8335612197816120a5565b925060208401356121a7816120a5565b915060408401356121b7816120a5565b809150509250925092565b6000806000606084860312156121d757600080fd5b6121e0846120e9565b9250602084013591506121f5604085016120e9565b90509250925092565b60006020828403121561221057600080fd5b5035919050565b6000806000806080858703121561222d57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561225c57600080fd5b8235612267816120a5565b9150612275602084016120e9565b90509250929050565b6000806040838503121561229157600080fd5b50508035926020909101359150565b600080604083850312156122b357600080fd5b82356122be816120a5565b915060208301356122ce816120a5565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526022908201527f42757920746178206d757374206265206265747765656e20302520616e642031604082015261302560f01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561239057612390612360565b500290565b6000826123b257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156123c957600080fd5b5051919050565b80820180821115610a8757610a87612360565b81810381811115610a8757610a87612360565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561241e57600080fd5b8151610b8e816120a5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124795784516001600160a01b031683529383019391830191600101612454565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124af57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bb811709294b9ea49eeedad1840b7361be6574eb37ca20ea8d21496b9dbe038464736f6c63430008100033

Deployed Bytecode Sourcemap

11389:12838:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13082:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13082:54:0;;;;;;;;14522:80;;;;;;;;;;-1:-1:-1;14594:5:0;;;;;;;;;;;;-1:-1:-1;;;14594:5:0;;;;14522:80;;;;;;;:::i;15366:216::-;;;;;;;;;;-1:-1:-1;15366:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;15366:216:0;1205:187:1;22126:98:0;;;;;;;;;;-1:-1:-1;22126:98:0;;;;;:::i;:::-;;:::i;:::-;;14784:88;;;;;;;;;;-1:-1:-1;14857:12:0;;14784:88;;12537:27;;;;;;;;;;;;;;;;19299:378;;;;;;;;;;-1:-1:-1;19299:378:0;;;;;:::i;:::-;;:::i;14964:142::-;;;;;;;;;;;;;:::i;12459:29::-;;;;;;;;;;;;;;;;3361:103;;;;;;;;;;-1:-1:-1;3361:103:0;;;;;:::i;:::-;3416:4;3451:5;-1:-1:-1;;;;;3440:16:0;;;3451:5;;3440:16;;3361:103;14698:80;;;;;;;;;;-1:-1:-1;14698:80:0;;11584:2;2602:36:1;;2590:2;2575:18;14698:80:0;2460:184:1;18211:273:0;;;;;;;;;;-1:-1:-1;18211:273:0;;;;;:::i;:::-;;:::i;18492:276::-;;;;;;;;;;-1:-1:-1;18492:276:0;;;;;:::i;:::-;;:::i;12219:44::-;;;;;;;;;;-1:-1:-1;12219:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12325:49;;;;;;;;;;-1:-1:-1;12325:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12062:33;;;;;;;;;;-1:-1:-1;12062:33:0;;;;;;;;18984:139;;;;;;;;;;-1:-1:-1;18984:139:0;;;;;:::i;:::-;;:::i;12981:40::-;;;;;;;;;;-1:-1:-1;12981:40:0;;;;;;;;;;;15590:122;;;;;;;;;;-1:-1:-1;15590:122:0;;;;;:::i;:::-;;:::i;17382:821::-;;;;;;;;;;-1:-1:-1;17382:821:0;;;;;:::i;:::-;;:::i;12495:33::-;;;;;;;;;;;;;;;;12421:31;;;;;;;;;;;;;;;;15114:105;;;;;;;;;;-1:-1:-1;15114:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;15198:18:0;15180:7;15198:18;;;:9;:18;;;;;;;15114:105;16476:124;;;;;;;;;;;;;:::i;12659:30::-;;;;;;;;;;-1:-1:-1;12659:30:0;;;;-1:-1:-1;;;;;12659:30:0;;;;;;-1:-1:-1;;;;;4243:32:1;;;4225:51;;4213:2;4198:18;12659:30:0;4079:203:1;16998:376:0;;;;;;;;;;-1:-1:-1;16998:376:0;;;;;:::i;:::-;;:::i;11936:53::-;;;;;;;;;;;;;;;;16293:175;;;;;;;;;;-1:-1:-1;16293:175:0;;;;;:::i;:::-;;:::i;11996:52::-;;;;;;;;;;;;;;;;14878:78;;;;;;;;;;-1:-1:-1;14930:7:0;14948:5;-1:-1:-1;;;;;14948:5:0;14878:78;;12270:48;;;;;;;;;;-1:-1:-1;12270:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12696:24;;;;;;;;;;-1:-1:-1;12696:24:0;;;;-1:-1:-1;;;;;12696:24:0;;;14608:84;;;;;;;;;;-1:-1:-1;14682:7:0;;;;;;;;;;;;-1:-1:-1;;;14682:7:0;;;;14608:84;;12383:31;;;;;;;;;;;;;;;;15818:208;;;;;;;;;;-1:-1:-1;15818:208:0;;;;;:::i;:::-;;:::i;16728:123::-;;;;;;;;;;-1:-1:-1;16728:123:0;;;;;:::i;:::-;;:::i;12760:19::-;;;;;;;;;;-1:-1:-1;12760:19:0;;;;-1:-1:-1;;;;;12760:19:0;;;19135:156;;;;;;;;;;-1:-1:-1;19135:156:0;;;;;:::i;:::-;;:::i;18776:200::-;;;;;;;;;;-1:-1:-1;18776:200:0;;;;;:::i;:::-;;:::i;3154:94::-;;;;;;;;;;-1:-1:-1;3154:94:0;;;;;:::i;:::-;;:::i;12860:46::-;;;;;;;;;;-1:-1:-1;12860:46:0;;;;;;;-1:-1:-1;;;;;12860:46:0;;;12788:25;;;;;;;;;;;;;;;;12616:36;;;;;;;;;;-1:-1:-1;12616:36:0;;;;-1:-1:-1;;;;;12616:36:0;;;12571;;;;;;;;;;;;;;;;16113:172;;;;;;;;;;-1:-1:-1;16113:172:0;;;;;:::i;:::-;;:::i;13028:45::-;;;;;;;;;;-1:-1:-1;13028:45:0;;;;;;;;;;;15225:133;;;;;;;;;;-1:-1:-1;15225:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;15327:19:0;;;15309:7;15327:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15225:133;16608:108;;;;;;;;;;-1:-1:-1;16608:108:0;;;;;:::i;:::-;;:::i;3256:97::-;;;;;;;;;;-1:-1:-1;3256:97:0;;;;;:::i;:::-;;:::i;3589:173::-;;;;;;;;;;-1:-1:-1;3589:173:0;;;;;:::i;:::-;;:::i;12729:24::-;;;;;;;;;;-1:-1:-1;12729:24:0;;;;-1:-1:-1;;;;;12729:24:0;;;16859:131;;;;;;;;;;-1:-1:-1;16859:131:0;;;;;:::i;:::-;;:::i;12820:31::-;;;;;;;;;;-1:-1:-1;12820:31:0;;;;;;;;15366:216;15470:10;15441:4;15458:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;15458:32:0;;;;;;;;;;:41;;;15515:37;15441:4;;15458:32;;15515:37;;;;15493:6;160:25:1;;148:2;133:18;;14:177;15515:37:0;;;;;;;;-1:-1:-1;15570:4:0;15366:216;;;;;:::o;22126:98::-;3416:4;3451:5;-1:-1:-1;;;;;3451:5:0;3013:10;3440:16;2997:38;;;;-1:-1:-1;;;2997:38:0;;;;;;;:::i;:::-;;;;;;;;;22193:11:::1;:23:::0;;-1:-1:-1;;22193:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22126:98::o;19299:378::-;-1:-1:-1;;;;;19429:19:0;;19399:4;19429:19;;;:11;:19;;;;;;;;19449:10;19429:31;;;;;;;;-1:-1:-1;;19429:52:0;19426:186;;19531:69;;;;;;;;;;;-1:-1:-1;;;19531:69:0;;;;;;;;-1:-1:-1;;;;;19531:19:0;;-1:-1:-1;19531:19:0;;;:11;:19;;;;;19551:10;19531:31;;;;;;;;;;:69;;19567:6;;19531:35;:69::i;:::-;-1:-1:-1;;;;;19497:19:0;;;;;;:11;:19;;;;;;;;19517:10;19497:31;;;;;;;:103;19426:186;19629:40;19643:6;19651:9;19662:6;19629:13;:40::i;:::-;19622:47;;19299:378;;;;;;:::o;14964:142::-;15092:4;;-1:-1:-1;;;;;15092:4:0;15017:7;15198:18;;;:9;:18;;;;;;15044:54;;15071:4;;-1:-1:-1;;;;;15071:4:0;15180:7;15198:18;;;:9;:18;;;;;;15044:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;15037:61;;14964:142;:::o;18211:273::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;18350:21:::1;:44:::0;;-1:-1:-1;;;;;18350:44:0;;::::1;-1:-1:-1::0;;;;;;18350:44:0;;::::1;;::::0;;;18405:15:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18452:9:::1;:24:::0;;;;;::::1;::::0;::::1;;::::0;;18211:273::o;18492:276::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;18624:21:::1;:39:::0;;18674:13:::1;:32:::0;;;;18717:43;::::1;;::::0;::::1;-1:-1:-1::0;;18624:39:0;::::1;;;;18717:43:::0;;;;-1:-1:-1;;18717:43:0;;;;;;;;;;::::1;::::0;;18492:276::o;18984:139::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;19077:6:::1;19071:3;:12;19063:21;;;::::0;::::1;;19095:14;:20:::0;18984:139::o;15590:122::-;15645:4;15669:35;15677:7;-1:-1:-1;;15669:7:0;:35::i;17382:821::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;17569:1:::1;17553:12;;:17;;17524:88;;;::::0;-1:-1:-1;;;17524:88:0;;6851:2:1;17524:88:0::1;::::0;::::1;6833:21:1::0;6890:2;6870:18;;;6863:30;6929:34;6909:18;;;6902:62;-1:-1:-1;;;6980:18:1;;;6973:35;7025:19;;17524:88:0::1;6649:401:1::0;17524:88:0::1;17664:2;17650:10;;:16;;17623:82;;;;-1:-1:-1::0;;;17623:82:0::1;;;;;;;:::i;:::-;17761:2;17745:12;;:18;;17716:86;;;;-1:-1:-1::0;;;17716:86:0::1;;;;;;;:::i;:::-;17862:2;17844:14;;:20;;17813:90;;;;-1:-1:-1::0;;;17813:90:0::1;;;;;;;:::i;:::-;17914:12;:24:::0;;;17949:10:::1;:25:::0;;;17985:12:::1;:30:::0;;;18026:14:::1;:32:::0;;;18090:46:::1;17962:12:::0;18090:30:::1;17929:9:::0;18000:15;18090:16:::1;:30::i;:::-;:34:::0;::::1;:46::i;:::-;18079:8;:57:::0;;;18180:14:::1;::::0;18167:28:::1;::::0;18079:57;18167:12:::1;:28::i;:::-;18147:17;:48:::0;-1:-1:-1;;;;17382:821:0:o;16476:124::-;3416:4;3451:5;-1:-1:-1;;;;;3451:5:0;3013:10;3440:16;2997:38;;;;-1:-1:-1;;;2997:38:0;;;;;;;:::i;:::-;16544:12:::1;::::0;16529::::1;:27:::0;;;16567:10:::1;:25:::0;16476:124::o;16998:376::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17098:23:0;::::1;17116:4;17098:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;17135:4:0::1;::::0;-1:-1:-1;;;;;17125:14:0;;::::1;17135:4:::0;::::1;17125:14;;17098:41;17090:50;;;::::0;::::1;;-1:-1:-1::0;;;;;17151:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;17151:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;17205:162:::1;;17230:19;::::0;:39:::1;::::0;-1:-1:-1;;;17230:39:0;;-1:-1:-1;;;;;7658:32:1;;;17230:39:0::1;::::0;::::1;7640:51:1::0;17267:1:0::1;7707:18:1::0;;;7700:34;17230:19:0::1;::::0;;::::1;::::0;;::::1;::::0;:28:::1;::::0;7613:18:1;;17230:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16998:376:::0;;:::o;17205:162::-:1;17300:19;::::0;-1:-1:-1;;;;;17337:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;17300:55;;-1:-1:-1;;;17300:55:0;;::::1;::::0;::::1;7640:51:1::0;;;;7707:18;;;7700:34;17300:19:0::1;::::0;;::::1;;::::0;:28:::1;::::0;7613:18:1;;17300:55:0::1;7458:282:1::0;16293:175:0;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;16396:1:::1;16382:13;:15;16374:24;;;::::0;::::1;;16457:3;16439:13;16424:12;;:28;;;;:::i;:::-;16423:37;;;;:::i;:::-;16409:10;:51:::0;-1:-1:-1;16293:175:0:o;15818:208::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;15945:19:::1;::::0;15913:53:::1;::::0;-1:-1:-1;;;15913:53:0;;-1:-1:-1;;;;;15945:19:0::1;::::0;;::::1;::::0;::::1;15913:53;::::0;::::1;4225:51:1::0;-1:-1:-1;;15913:23:0;::::1;::::0;::::1;::::0;4198:18:1;;15913:53:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15981:9;::::0;15973:45:::1;::::0;15886:80;;-1:-1:-1;;;;;;15981:9:0::1;::::0;15973:45;::::1;;;::::0;15886:80;;15981:9:::1;15973:45:::0;15981:9;15973:45;15886:80;15981:9;15973:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15879:147;15818:208:::0;:::o;16728:123::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16815:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16815:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16728:123::o;19135:156::-;19215:4;19239:44;19253:10;19265:9;19276:6;19239:13;:44::i;18776:200::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;18892:19:::1;::::0;:76:::1;::::0;-1:-1:-1;;;18892:76:0;;::::1;::::0;::::1;8914:25:1::0;;;8955:18;;;8948:34;;;18892:19:0::1;::::0;;::::1;-1:-1:-1::0;;;;;18892:19:0::1;::::0;:43:::1;::::0;8887:18:1;;18892:76:0::1;8740:248:1::0;3154:94:0;3416:4;3451:5;-1:-1:-1;;;;;3451:5:0;3013:10;3440:16;2997:38;;;;-1:-1:-1;;;2997:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3214:19:0::1;;::::0;;;3236:4:::1;3214:19;::::0;;;;;;;:26;;-1:-1:-1;;3214:26:0::1;::::0;;::::1;::::0;;3154:94::o;16113:172::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;16212:1:::1;16198:13;:15;16190:24;;;::::0;::::1;;16274:3;16256:13;16241:12;;:28;;;;:::i;:::-;16240:37;;;;:::i;:::-;16225:12;:52:::0;-1:-1:-1;16113:172:0:o;16608:108::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;16683:14:::1;:25:::0;;-1:-1:-1;;16683:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16608:108::o;3256:97::-;3416:4;3451:5;-1:-1:-1;;;;;3451:5:0;3013:10;3440:16;2997:38;;;;-1:-1:-1;;;2997:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3318:19:0::1;3340:5;3318:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3318:27:0::1;::::0;;3256:97::o;3589:173::-;3416:4;3451:5;-1:-1:-1;;;;;3451:5:0;3013:10;3440:16;2997:38;;;;-1:-1:-1;;;2997:38:0;;;;;;;:::i;:::-;3665:5:::1;:11:::0;;-1:-1:-1;;;;;;3665:11:0::1;-1:-1:-1::0;;;;;3665:11:0;::::1;::::0;;::::1;::::0;;3687:19;;;-1:-1:-1;3687:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3687:26:0::1;::::0;;::::1;::::0;;;3729:25;;4225:51:1;;;3729:25:0::1;::::0;4198:18:1;3729:25:0::1;;;;;;;3589:173:::0;:::o;16859:131::-;3095:24;3108:10;3095:12;:24::i;:::-;3087:48;;;;-1:-1:-1;;;3087:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16950:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16950:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16859:131::o;553:181::-;611:7;;643:5;647:1;643;:5;:::i;:::-;631:17;;672:1;667;:6;;659:46;;;;-1:-1:-1;;;659:46:0;;9541:2:1;659:46:0;;;9523:21:1;9580:2;9560:18;;;9553:30;9619:29;9599:18;;;9592:57;9666:18;;659:46:0;9339:351:1;882:192:0;968:7;1004:12;996:6;;;;988:29;;;;-1:-1:-1;;;988:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1028:9:0;1040:5;1044:1;1040;:5;:::i;:::-;1028:17;882:192;-1:-1:-1;;;;;882:192:0:o;19685:1644::-;19807:16;;19777:4;;19807:16;;19804:73;;;19833:41;19848:6;19856:9;19867:6;19833:14;:41::i;:::-;19826:48;;;;19804:73;-1:-1:-1;;;;;19893:22:0;;;;;;:14;:22;;;;;;;;19892:23;:53;;;;-1:-1:-1;;;;;;19920:25:0;;;;;;:14;:25;;;;;;;;19919:26;19892:53;19889:131;;;19969:11;;;;19961:44;;;;-1:-1:-1;;;19961:44:0;;10030:2:1;19961:44:0;;;10012:21:1;10069:2;10049:18;;;10042:30;-1:-1:-1;;;10088:18:1;;;10081:50;10148:18;;19961:44:0;9828:344:1;19961:44:0;20050:12;;20040:6;:22;;:49;;;-1:-1:-1;;;;;;20066:23:0;;;;;;:15;:23;;;;;;;;20040:49;20032:79;;;;-1:-1:-1;;;20032:79:0;;10379:2:1;20032:79:0;;;10361:21:1;10418:2;10398:18;;;10391:30;-1:-1:-1;;;10437:18:1;;;10430:47;10494:18;;20032:79:0;10177:341:1;20032:79:0;20141:4;;-1:-1:-1;;;;;20141:4:0;20127:10;:18;;;;:39;;-1:-1:-1;20150:16:0;;;;20149:17;20127:39;:64;;;;-1:-1:-1;20170:21:0;;;;;;;20127:64;:109;;;;-1:-1:-1;20223:13:0;;20213:4;20195:24;;;;:9;:24;;;;;;:41;;20127:109;20124:128;;;20239:10;:8;:10::i;:::-;15787;;:15;;;20267:32;;-1:-1:-1;20295:4:0;;-1:-1:-1;;;;;20282:17:0;;;20295:4;;20282:17;20267:32;20264:117;;;-1:-1:-1;;;;;20324:17:0;;20344:1;20324:17;;;:9;:17;;;;;;20316:30;;;;;;20361:8;16085:12;16072:10;:25;16034:71;20361:8;20440:53;;;;;;;;;;;-1:-1:-1;;;20440:53:0;;;;;;;;-1:-1:-1;;;;;20440:17:0;;-1:-1:-1;20440:17:0;;;:9;:17;;;;;;;;:53;;20462:6;;20440:21;:53::i;:::-;-1:-1:-1;;;;;20420:17:0;;;;;;;:9;:17;;;;;;;;:73;;;;20518:26;;;;;:15;:26;;;;;;;20517:27;:45;;;;-1:-1:-1;20548:14:0;;;;20517:45;20514:141;;;20632:10;;-1:-1:-1;;;;;20596:20:0;;;;;;:9;:20;;;;;;:32;;20621:6;20596:24;:32::i;:::-;:46;;20588:55;;;;;;-1:-1:-1;;;;;20690:19:0;;20667;20690;;;:11;:19;;;;;;;;20689:20;:47;;;;-1:-1:-1;;;;;;20714:22:0;;;;;;:11;:22;;;;;;;;20713:23;20689:47;:93;;20776:6;20689:93;;;20739:34;20747:6;20755:9;20766:6;20739:7;:34::i;:::-;-1:-1:-1;;;;;20816:20:0;;;;;;:9;:20;;;;;;20667:115;;-1:-1:-1;20816:37:0;;20667:115;20816:24;:37::i;:::-;-1:-1:-1;;;;;20793:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;20899:24;;;;;:16;:24;;;;;;;20895:127;;20944:19;;-1:-1:-1;;;;;20981:17:0;;;;;;;:9;:17;;;;;;;;20944:55;;-1:-1:-1;;;20944:55:0;;;;;7640:51:1;;;;7707:18;;;7700:34;20944:19:0;;;;;;:28;;7613:18:1;;20944:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20940:71;;-1:-1:-1;;;;;21038:27:0;;;;;;:16;:27;;;;;;;;21034:137;;21086:19;;-1:-1:-1;;;;;21126:20:0;;;;;;;:9;:20;;;;;;;;21086:61;;-1:-1:-1;;;21086:61:0;;;;;7640:51:1;;;;7707:18;;;7700:34;21086:19:0;;;;;;:28;;7613:18:1;;21086:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21082:77;;21187:19;;21215:14;;21187:43;;-1:-1:-1;;;;;;21187:43:0;;;;;160:25:1;;;;21187:19:0;;;;-1:-1:-1;;;;;21187:19:0;;:27;;133:18:1;;21187:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21183:59;21276:9;-1:-1:-1;;;;;21259:40:0;21268:6;-1:-1:-1;;;;;21259:40:0;;21287:11;21259:40;;;;160:25:1;;148:2;133:18;;14:177;21259:40:0;;;;;;;;-1:-1:-1;21317:4:0;;19685:1644;-1:-1:-1;;;;19685:1644:0:o;740:136::-;798:7;825:43;829:1;832;825:43;;;;;;;;;;;;;;;;;:3;:43::i;3472:109::-;-1:-1:-1;;;;;3554:19:0;3530:4;3554:19;;;:14;:19;;;;;;;;;3472:109::o;21341:330::-;21471:53;;;;;;;;;;;-1:-1:-1;;;21471:53:0;;;;;;;;-1:-1:-1;;;;;21471:17:0;;21434:4;21471:17;;;:9;:17;;;;;;;:53;;21493:6;;21471:21;:53::i;:::-;-1:-1:-1;;;;;21451:17:0;;;;;;;:9;:17;;;;;;:73;;;;21558:20;;;;;;;:32;;21583:6;21558:24;:32::i;:::-;-1:-1:-1;;;;;21535:20:0;;;;;;;:9;:20;;;;;;;:55;;;;21606:35;;;;;;;;;;21634:6;160:25:1;;148:2;133:18;;14:177;21606:35:0;;;;;;;;-1:-1:-1;21659:4:0;21341:330;;;;;:::o;22232:1926::-;13181:16;:23;;-1:-1:-1;;13181:23:0;13200:4;13181:23;;;22338:4:::1;13181:16:::0;22320:24;;;:9:::1;:24;::::0;;;;;22419:8:::1;::::0;22401:12:::1;::::0;22320:24;;13181:16;22381:54:::1;::::0;22433:1:::1;::::0;22381:47:::1;::::0;22419:8;22381:47;;22320:24;;22381:19:::1;:33::i;:::-;:37:::0;::::1;:47::i;:54::-;22355:80:::0;-1:-1:-1;22446:20:0::1;22469:36;:15:::0;22355:80;22469:19:::1;:36::i;:::-;22542:16;::::0;;22556:1:::1;22542:16:::0;;;;;::::1;::::0;;22446:59;;-1:-1:-1;22518:21:0::1;::::0;22542:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;22542:16:0::1;22518:40;;22587:4;22569;22574:1;22569:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22569:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;22613:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;22613:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;22569:7;;22613:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22603:4;22608:1;22603:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22603:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;22639:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;22639:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;22711:12;;22639:6:::1;::::0;22754:4;;22781::::1;::::0;22801:15:::1;::::0;22639:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;22929:12:0::1;::::0;22860:21:::1;::::0;-1:-1:-1;22840:17:0::1;::::0;-1:-1:-1;22916:33:0::1;::::0;22929:19:::1;::::0;22946:1:::1;22929:16;:19::i;:::-;22916:8;::::0;;:12:::1;:33::i;:::-;22894:55;;22970:26;22999:51;23048:1;22999:44;23031:11;22999:27;23013:12;;22999:9;:13;;:27;;;;:::i;:51::-;22970:80;;23061:27;23091:42;23121:11;23091:25;23105:10;;23091:9;:13;;:25;;;;:::i;:42::-;23061:72:::0;-1:-1:-1;23144:26:0::1;23173:58;23061:72:::0;23173:33:::1;:9:::0;23187:18;23173:13:::1;:33::i;:58::-;23144:87;;23248:19;;;;;;;;;-1:-1:-1::0;;;;;23248:19:0::1;-1:-1:-1::0;;;;;23248:27:0::1;;23283:19;23248:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;23244:73:::0;23337:22:::1;23362:32;23392:1;23362:25;:18:::0;23385:1:::1;23362:22;:25::i;:32::-;23337:57:::0;-1:-1:-1;23405:16:0::1;23424:38;:18:::0;23337:57;23424:22:::1;:38::i;:::-;23512:15;::::0;23504:68:::1;::::0;23405:57;;-1:-1:-1;23484:15:0::1;::::0;-1:-1:-1;;;;;23512:15:0;;::::1;::::0;23562:5:::1;::::0;23541:14;;23484:15;23504:68;23484:15;23504:68;23541:14;23512:15;23562:5;23504:68:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;23614:9:0::1;::::0;23606:59:::1;::::0;23483:89;;-1:-1:-1;23584:16:0::1;::::0;-1:-1:-1;;;;;23614:9:0;;::::1;::::0;23654:5:::1;::::0;23639:8;;23584:16;23606:59;23584:16;23606:59;23639:8;23614:9;23654:5;23606:59:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;23741:5:0::1;::::0;-1:-1:-1;23741:5:0;;-1:-1:-1;;23792:19:0;;;-1:-1:-1;23789:362:0::1;;23827:6;::::0;24001:21:::1;::::0;23827:244:::1;::::0;-1:-1:-1;;;23827:244:0;;23903:4:::1;23827:244;::::0;::::1;12579:34:1::0;12629:18;;;12622:34;;;23827:6:0::1;12672:18:1::0;;;12665:34;;;12715:18;;;12708:34;-1:-1:-1;;;;;24001:21:0;;::::1;12758:19:1::0;;;12751:44;24041:15:0::1;12811:19:1::0;;;12804:35;23827:6:0;::::1;::::0;:22:::1;::::0;23857:18;;12513:19:1;;23827:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;24091:48:0::1;::::0;;8914:25:1;;;8970:2;8955:18;;8948:34;;;24091:48:0::1;::::0;-1:-1:-1;8887:18:1;24091:48:0::1;;;;;;;23789:362;-1:-1:-1::0;;13227:16:0;:24;;-1:-1:-1;;13227:24:0;;;-1:-1:-1;;;;;;;;;;;22232:1926:0:o;21679:439::-;21819:4;;21765:7;;;;-1:-1:-1;;;;;21819:17:0;;;:4;;:17;:48;;21859:8;;21819:48;;;21839:17;;21819:48;21795:72;-1:-1:-1;21878:17:0;21898:34;21928:3;21898:25;:6;21795:72;21898:10;:25::i;:34::-;21990:4;21972:24;;;;:9;:24;;;;;;21878:54;;-1:-1:-1;21972:39:0;;21878:54;21972:28;:39::i;:::-;21963:4;21945:24;;;;:9;:24;;;;;;;:66;;;;22027:42;;-1:-1:-1;;;;;22027:42:0;;;;;;;22059:9;160:25:1;;148:2;133:18;;14:177;22027:42:0;;;;;;;;22089:21;:6;22100:9;22089:10;:21::i;:::-;22082:28;21679:439;-1:-1:-1;;;;;;21679:439:0:o;1080:250::-;1138:7;1162:1;1167;1162:6;1158:47;;-1:-1:-1;1192:1:0;1185:8;;1158:47;1217:9;1229:5;1233:1;1229;:5;:::i;:::-;1217:17;-1:-1:-1;1262:1:0;1253:5;1257:1;1217:17;1253:5;:::i;:::-;:10;1245:56;;;;-1:-1:-1;;;1245:56:0;;13363:2:1;1245:56:0;;;13345:21:1;13402:2;13382:18;;;13375:30;13441:34;13421:18;;;13414:62;-1:-1:-1;;;13492:18:1;;;13485:31;13533:19;;1245:56:0;13161:397:1;1336:132:0;1394:7;1421:39;1425:1;1428;1421:39;;;;;;;;;;;;;;;;;1560:7;1662:12;1655:5;1647:28;;;;-1:-1:-1;;;1647:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1686:9:0;1698:5;1702:1;1698;:5;:::i;196:548: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;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:160::-;1462:20;;1518:13;;1511:21;1501:32;;1491:60;;1547:1;1544;1537:12;1491:60;1397:160;;;:::o;1562:180::-;1618:6;1671:2;1659:9;1650:7;1646:23;1642:32;1639:52;;;1687:1;1684;1677:12;1639:52;1710:26;1726:9;1710:26;:::i;1747:456::-;1824:6;1832;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1948:9;1935:23;1967:31;1992:5;1967:31;:::i;:::-;2017:5;-1:-1:-1;2074:2:1;2059:18;;2046:32;2087:33;2046:32;2087:33;:::i;:::-;1747:456;;2139:7;;-1:-1:-1;;;2193:2:1;2178:18;;;;2165:32;;1747:456::o;2208:247::-;2267:6;2320:2;2308:9;2299:7;2295:23;2291:32;2288:52;;;2336:1;2333;2326:12;2288:52;2375:9;2362:23;2394:31;2419:5;2394:31;:::i;2649:529::-;2726:6;2734;2742;2795:2;2783:9;2774:7;2770:23;2766:32;2763:52;;;2811:1;2808;2801:12;2763:52;2850:9;2837:23;2869:31;2894:5;2869:31;:::i;:::-;2919:5;-1:-1:-1;2976:2:1;2961:18;;2948:32;2989:33;2948:32;2989:33;:::i;:::-;3041:7;-1:-1:-1;3100:2:1;3085:18;;3072:32;3113:33;3072:32;3113:33;:::i;:::-;3165:7;3155:17;;;2649:529;;;;;:::o;3183:316::-;3254:6;3262;3270;3323:2;3311:9;3302:7;3298:23;3294:32;3291:52;;;3339:1;3336;3329:12;3291:52;3362:26;3378:9;3362:26;:::i;:::-;3352:36;;3435:2;3424:9;3420:18;3407:32;3397:42;;3458:35;3489:2;3478:9;3474:18;3458:35;:::i;:::-;3448:45;;3183:316;;;;;:::o;3504:180::-;3563:6;3616:2;3604:9;3595:7;3591:23;3587:32;3584:52;;;3632:1;3629;3622:12;3584:52;-1:-1:-1;3655:23:1;;3504:180;-1:-1:-1;3504:180:1:o;3689:385::-;3775:6;3783;3791;3799;3852:3;3840:9;3831:7;3827:23;3823:33;3820:53;;;3869:1;3866;3859:12;3820:53;-1:-1:-1;;3892:23:1;;;3962:2;3947:18;;3934:32;;-1:-1:-1;4013:2:1;3998:18;;3985:32;;4064:2;4049:18;4036:32;;-1:-1:-1;3689:385:1;-1:-1:-1;3689:385:1:o;4287:315::-;4352:6;4360;4413:2;4401:9;4392:7;4388:23;4384:32;4381:52;;;4429:1;4426;4419:12;4381:52;4468:9;4455:23;4487:31;4512:5;4487:31;:::i;:::-;4537:5;-1:-1:-1;4561:35:1;4592:2;4577:18;;4561:35;:::i;:::-;4551:45;;4287:315;;;;;:::o;4607:248::-;4675:6;4683;4736:2;4724:9;4715:7;4711:23;4707:32;4704:52;;;4752:1;4749;4742:12;4704:52;-1:-1:-1;;4775:23:1;;;4845:2;4830:18;;;4817:32;;-1:-1:-1;4607:248:1:o;5096:388::-;5164:6;5172;5225:2;5213:9;5204:7;5200:23;5196:32;5193:52;;;5241:1;5238;5231:12;5193:52;5280:9;5267:23;5299:31;5324:5;5299:31;:::i;:::-;5349:5;-1:-1:-1;5406:2:1;5391:18;;5378:32;5419:33;5378:32;5419:33;:::i;:::-;5471:7;5461:17;;;5096:388;;;;;:::o;5975:329::-;6177:2;6159:21;;;6216:1;6196:18;;;6189:29;-1:-1:-1;;;6249:2:1;6234:18;;6227:36;6295:2;6280:18;;5975:329::o;6309:335::-;6511:2;6493:21;;;6550:2;6530:18;;;6523:30;-1:-1:-1;;;6584:2:1;6569:18;;6562:41;6635:2;6620:18;;6309:335::o;7055:398::-;7257:2;7239:21;;;7296:2;7276:18;;;7269:30;7335:34;7330:2;7315:18;;7308:62;-1:-1:-1;;;7401:2:1;7386:18;;7379:32;7443:3;7428:19;;7055:398::o;8024:127::-;8085:10;8080:3;8076:20;8073:1;8066:31;8116:4;8113:1;8106:15;8140:4;8137:1;8130:15;8156:168;8196:7;8262:1;8258;8254:6;8250:14;8247:1;8244:21;8239:1;8232:9;8225:17;8221:45;8218:71;;;8269:18;;:::i;:::-;-1:-1:-1;8309:9:1;;8156:168::o;8329:217::-;8369:1;8395;8385:132;;8439:10;8434:3;8430:20;8427:1;8420:31;8474:4;8471:1;8464:15;8502:4;8499:1;8492:15;8385:132;-1:-1:-1;8531:9:1;;8329:217::o;8551:184::-;8621:6;8674:2;8662:9;8653:7;8649:23;8645:32;8642:52;;;8690:1;8687;8680:12;8642:52;-1:-1:-1;8713:16:1;;8551:184;-1:-1:-1;8551:184:1:o;9209:125::-;9274:9;;;9295:10;;;9292:36;;;9308:18;;:::i;9695:128::-;9762:9;;;9783:11;;;9780:37;;;9797:18;;:::i;10655:127::-;10716:10;10711:3;10707:20;10704:1;10697:31;10747:4;10744:1;10737:15;10771:4;10768:1;10761:15;10787:251;10857:6;10910:2;10898:9;10889:7;10885:23;10881:32;10878:52;;;10926:1;10923;10916:12;10878:52;10958:9;10952:16;10977:31;11002:5;10977:31;:::i;11043:980::-;11305:4;11353:3;11342:9;11338:19;11384:6;11373:9;11366:25;11410:2;11448:6;11443:2;11432:9;11428:18;11421:34;11491:3;11486:2;11475:9;11471:18;11464:31;11515:6;11550;11544:13;11581:6;11573;11566:22;11619:3;11608:9;11604:19;11597:26;;11658:2;11650:6;11646:15;11632:29;;11679:1;11689:195;11703:6;11700:1;11697:13;11689:195;;;11768:13;;-1:-1:-1;;;;;11764:39:1;11752:52;;11859:15;;;;11824:12;;;;11800:1;11718:9;11689:195;;;-1:-1:-1;;;;;;;11940:32:1;;;;11935:2;11920:18;;11913:60;-1:-1:-1;;;12004:3:1;11989:19;11982:35;11901:3;11043:980;-1:-1:-1;;;11043:980:1:o;12850:306::-;12938:6;12946;12954;13007:2;12995:9;12986:7;12982:23;12978:32;12975:52;;;13023:1;13020;13013:12;12975:52;13052:9;13046:16;13036:26;;13102:2;13091:9;13087:18;13081:25;13071:35;;13146:2;13135:9;13131:18;13125:25;13115:35;;12850:306;;;;;:::o

Swarm Source

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