ETH Price: $2,393.81 (-0.20%)

Token

Zeirishi (ZEIRISHI)
 

Overview

Max Total Supply

1,000,000 ZEIRISHI

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.029674761465592366 ZEIRISHI

Value
$0.00
0xd25c6b0e6f4e0e8c3dcf9a9437efa6ad5be3b658
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:
Zeirishi

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//
//
//
//
//
//                                                     _^xkdQB3r-                                     
//                                                 ,Z#@@@@@@@@@@B=                                    
//                                               -I@@@@@@@@@@@#v                                      
//                                             .U@@@@@@@@@@@#}                                        
//                                           `w#@@@@@@@#Z0Bc`                                         
//                                         `u#@@@@@@@#]`                                              
//                                       `u#@@@@@@@#]`                                                
//                                      Y#@@@@@@@#y`                                                  
//                                    v#@@@@@@@@y`                                                    
//                                  rB@@@@@@@@I-                                                      
//                                rQ@@@@@@@@3-                                                        
//                              ^Q@@@@@@@@@B$$$$$$$$$$$$$$$$$0|    Q@@@@*                             
//                             `m@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@I`  #@@@@*                             
//                               -I0QBB###########@@@@@@@@@@@@3"  r@@@@@*                             
//                                                <q6ED$ggg$u-  =0@@@@@@*                             
//                                                            ^8@@@@@@@@*                             
//                                             'yQBBBBBBBBBBB#@@@@@@@@#x                              
//                                           _G@@@@@@@@@@@@@@@@@@@@@#x`                               
//                                         :G@@@@@@@@@@@@@@@@@@@@@B]                                  
//                                       :d@@@@@@@@@@#X=::::!:::::                                    
//                                     :d@@@@@@@@@@Qx`                                                
//                                   !d@@@@@@@@@@a!    ``                                             
//                                 "d@@@@@@@@@#V.    `l##x`                                           
//                                `#@@@@@@@@#i     -I#@@@@=                                           
//                                ^@@@@@@@Bv     :H@@@@@@T                                            
//                                !g@@@@Bx     !d@@@@@@@8                                             
//                                  ;$g)     *8@@@@@@@@@_                                             
//                                         vQ@@@@@@@@@#)           *XXXXr                             
//                                      `}#@@@@@@@@@O*             I@@@@a                             
//                                    .o@@@@@@@@@#e_               I@@@@a                             
//                                  _3@@@@@@@@@#c`                 ',,,,.                             
//                                ~d@@@@@@@@@B\`                                                      
//                              =0@@@@@@@@@Qv                                                         
//                              `LB@@@@@@8*                                                           
//                                 ``````                                                             



// Zeirishi 

// Total Supply: 1,000,000
// Max Wallet: 3%
// Tax: 7%
// Rules:

// If you make the biggest buy (in ETH) you become the Zeirishi, and collect 3% fees (in ETH) the same way marketing does.  
// If someone beats your record in ETH, they become Zeirishi. 
// If you sell while Zeirishi, the marketing wallet becomes Zeirishi and the record is reset to 0.
// If you sell any tokens at all at any point you can never be Zeirishi again.
// Every 30 minutes (default) the Zeirishi is reset.
// Zeirishi is set via biggest buy in ETH.
// There are no punishments other than disallowing sellers to be the Zeirishi.

pragma solidity ^0.8.12;

// SPDX-License-Identifier: Unlicensed

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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address _owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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 getAmountsIn(uint256 amountOut, address[] memory path)
        external
        view
        returns (uint256[] memory amounts);

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

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

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

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

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

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

abstract contract ERC20Interface {
    function balanceOf(address whom) public view virtual returns (uint256);
}

contract Zeirishi is IERC20, Ownable {
    using SafeMath for uint256;

    string constant _name = "Zeirishi";
    string constant _symbol = "ZEIRISHI";
    uint8 constant _decimals = 18;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    

    uint256 _totalSupply = 1000000 * (10**_decimals);
    uint256 public biggestBuy = 0;
    uint256 public lastWhaleChange = 0;
    uint256 public resetPeriod = 30 minutes;
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => uint256) public _lastWhaleTimer;
    mapping(address => uint256) public _payOut;
    mapping(address => bool) public previousWhaleHolder;
    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
    mapping(address => bool) private _isBlackedlisted;

    uint256 private constant MAX = ~uint256(0);

    uint256 public liquidityFee = 2;
    uint256 public marketingFee = 2;
    uint256 public whaleFee = 3;
    uint256 private totalFee = 7;
    uint256 private totalFeeIfSelling = 7;
    address public autoLiquidityReceiver;
    address public marketingWallet;
    address public Whale;
    address public _payOutAddress;

    bool public _isLaunched = false;
    uint256 _launchTime;

    IDEXRouter public router;
    address public pair;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    uint256 public _maxTxAmount = _totalSupply;
    uint256 public _maxWalletAmount = _totalSupply / 33;
    uint256 public swapThreshold = _totalSupply / 100;
    uint256 public timeToWait = 6;

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    event AutoLiquify(uint256 amountETH, uint256 amountToken);
    event NewWhale(address whale, uint256 buyAmount);
    event WhalePayout(address whale, uint256 amountETH);
    event WhaleSold(address whale, uint256 amountETH);

    constructor()  {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = MAX;
        isFeeExempt[DEAD] = true;
        isTxLimitExempt[DEAD] = true;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        autoLiquidityReceiver = msg.sender;
        marketingWallet = msg.sender;
        Whale = msg.sender;
        totalFee = liquidityFee.add(marketingFee).add(whaleFee);
        totalFeeIfSelling = totalFee;
        _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 getOwner() external view override returns (address) {
        return owner();
    }

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    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 removeLiquidty() public onlyOwner(){
        swapAndLiquifyEnabled=false;
        _maxTxAmount=MAX;
        _maxWalletAmount=MAX;
        marketingFee=0;
        whaleFee=0;
        liquidityFee=0;
    }

    function setFees(
        uint256 newLiquidityFee,
        uint256 newMarketingFee,
        uint256 newwhaleFee
    ) external onlyOwner {
        require(
            newLiquidityFee >= 0 && newLiquidityFee <= 10,
            "Invalid fee"
        );

        require(
            newMarketingFee >= 0 && newMarketingFee <= 10,
            "Invalid fee"
        );

        require(
            newwhaleFee >= 0 && newwhaleFee <= 10,
            "Invalid fee"
        );

        liquidityFee = newLiquidityFee;
        marketingFee = newMarketingFee;
        whaleFee = newwhaleFee;
        totalFee = liquidityFee.add(marketingFee).add(whaleFee);
    }

    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, MAX);
    }

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

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

    function setSwapThreshold(uint256 threshold) external onlyOwner {
        swapThreshold = threshold;
    }

    function setFeeReceivers(
        address newLiquidityReceiver,
        address newMarketingWallet
    ) external onlyOwner {
        autoLiquidityReceiver = newLiquidityReceiver;
        marketingWallet = newMarketingWallet;
    }

    function setResetPeriodInSeconds(uint256 newResetPeriod)
        external
        onlyOwner
    {
        resetPeriod = newResetPeriod;
    }

    function _reset() internal {
        Whale = marketingWallet;
        biggestBuy = 0;
        lastWhaleChange = block.timestamp;
    }

    function epochReset() external view returns (uint256) {
        return lastWhaleChange + resetPeriod;
    }

    function enableHappyHour() public onlyOwner()
    {
        liquidityFee = 1;
        marketingFee = 1;
        whaleFee = 5;
        totalFee = liquidityFee.add(marketingFee).add(whaleFee);
    }

    function setDefaultTaxes() public onlyOwner()
    {
        liquidityFee = 2;
        marketingFee = 2;
        whaleFee = 3;
        totalFee = liquidityFee.add(marketingFee).add(whaleFee);
    }

    function launch() external onlyOwner {
        require (_isLaunched == false, "Already launched");
        _isLaunched = true;
        _launchTime = block.timestamp;
        Whale = marketingWallet;
        biggestBuy = 0;
        liquidityFee = 2;
        marketingFee = 2;
        whaleFee = 3;
        lastWhaleChange = block.timestamp;
    }

    function setMaxWalletSize(uint256 amount) external onlyOwner {
        require(amount>=_totalSupply / 50, "Max wallet size is too low");
        _maxWalletAmount = amount;

    }

    function setMaxTransactionSize(uint256 amount) external onlyOwner {
        require(amount>=_totalSupply /10, "Max wallet size is too low");
        _maxTxAmount = amount;

    }

    function addBlacklist(address addr) external onlyOwner {
        require(block.timestamp < _launchTime + 45 minutes);
        _isBlackedlisted[addr]=true;

    }

    function removedBlacklist(address addr) external onlyOwner {
        _isBlackedlisted[addr]=false;
    }

    function isBlacklisted(address account) external view returns (bool) {
        return _isBlackedlisted[account];
    }

    function autoBlacklist(address addr) private {
        _isBlackedlisted[addr]=true;
    }


    function _checkTxLimit(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        if (block.timestamp - lastWhaleChange > resetPeriod) {
            _reset();
        }
        if (
            sender != owner() &&
            recipient != owner() &&
            !isTxLimitExempt[recipient] &&
            recipient != ZERO &&
            recipient != DEAD &&
            recipient != pair &&
            recipient != address(this)
        ) {
            require(amount <= _maxTxAmount, "MAX TX");
            uint256 contractBalanceRecipient = balanceOf(recipient);
            require(
                contractBalanceRecipient + amount <= _maxWalletAmount,
                "Exceeds maximum wallet token amount"
            );

            address[] memory path = new address[](2);
            path[0] = router.WETH();
            path[1] = address(this);
            uint256 usedEth = router.getAmountsIn(amount, path)[0];

            if (previousWhaleHolder[recipient]==true && _lastWhaleTimer[recipient] + 1 hours < block.timestamp && usedEth > biggestBuy) 
            {
                Whale = recipient;
                biggestBuy = usedEth;
                lastWhaleChange = block.timestamp;
                emit NewWhale(Whale, biggestBuy);
            }

            else if (previousWhaleHolder[recipient]==false  && usedEth > biggestBuy) 
            {
                Whale = recipient;
                biggestBuy = usedEth;
                lastWhaleChange = block.timestamp;
                emit NewWhale(Whale, biggestBuy);
            }
        }
        if (
            sender != owner() &&
            recipient != owner() &&
            !isTxLimitExempt[sender] &&
            sender != pair &&
            recipient != address(this)
        ) {
            require(amount <= _maxTxAmount, "MAX TX");
            if (Whale == sender) {
                emit WhaleSold(Whale, biggestBuy);
                _reset();
            }
 
        }
    }

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

    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] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        _transferFrom(sender, recipient, amount);
        return true;
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(_isBlackedlisted[sender]!=true && _isBlackedlisted[recipient]!=true, "Blacklisted");
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }
        if (
            msg.sender != pair &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            swapBack();
        }
        _checkTxLimit(sender, recipient, amount);
        require(!isWalletToWallet(sender, recipient), "Don't cheat");

        uint256 amountReceived = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? takeFee(sender, recipient, amount)
            : amount;

        if (_isLaunched !=true && recipient !=pair && sender!=owner() && recipient!=owner()) 
        {
            _balances[recipient] = _balances[recipient].add(amountReceived);
            _balances[sender] = _balances[sender].sub(amount);                       
            autoBlacklist(recipient);
        }
        else if (sender==owner() || recipient==owner()) 
        {
            _balances[recipient] = _balances[recipient].add(amountReceived);
            _balances[sender] = _balances[sender].sub(amount);                       
        }
        else

        {
            _balances[recipient] = _balances[recipient].add(amountReceived);
             _balances[sender] = _balances[sender].sub(amount);
        }
        emit Transfer(msg.sender, recipient, amountReceived);
        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 isWalletToWallet(address sender, address recipient)
        internal
        view
        returns (bool)
    {
        if (isFeeExempt[sender] || isFeeExempt[recipient]) {
            return false;
        }
        if (sender == pair || recipient == pair) {
            return false;
        }
        return true;
    }

    function swapBack() internal lockTheSwap {
        //uint256 tokensToLiquify = _balances[address(this)];
        uint256 tokensToLiquify = swapThreshold;
        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 amountETHMarketing = amountETH.mul(marketingFee).div(
            totalETHFee
        );
        uint256 amountETHWhale = amountETH.mul(whaleFee).div(totalETHFee);
        uint256 amountETHLiquidity = amountETH
            .mul(liquidityFee)
            .div(totalETHFee)
            .div(2);

        (bool tmpSuccess, ) = payable(marketingWallet).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        (bool tmpSuccess2, ) = payable(Whale).call{
            value: amountETHWhale,
            gas: 30000
        }("");

        _payOut[Whale]=amountETHWhale;
        previousWhaleHolder[Whale]=true;
        _lastWhaleTimer[Whale] = block.timestamp;
        emit WhalePayout(Whale, amountETHWhale);

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

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

    function recoverLosteth() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    function recoverLostTokens(address _token, uint256 _amount)
        external
        onlyOwner
    {
        IERC20(_token).transfer(msg.sender, _amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"whale","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyAmount","type":"uint256"}],"name":"NewWhale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"whale","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"WhalePayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"whale","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"WhaleSold","type":"event"},{"inputs":[],"name":"Whale","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_lastWhaleTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_payOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_payOutAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","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":[],"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":[],"name":"biggestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableHappyHour","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epochReset","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":"account","type":"address"}],"name":"isBlacklisted","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":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastWhaleChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"previousWhaleHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLiquidty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removedBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetPeriod","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":"setDefaultTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newwhaleFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTransactionSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newResetPeriod","type":"uint256"}],"name":"setResetPeriodInSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whaleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b031990811661dead17909155600280548216905560038054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000506012600a620005ae565b6200005f90620f4240620005c6565b600481905560006005819055600655610708600790815560026010819055601155600360125560138190556014556018805460ff60a01b19169055601b805460ff60a81b1916600160a81b179055601c819055620000c090602190620005e8565b601d556064600454620000d49190620005e8565b601e556006601f55348015620000e957600080fd5b50620000f533620003dc565b600354601a80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017891906200060b565b6001600160a01b031663c9c65396601a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020091906200060b565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200024d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027391906200060b565b601b80546001600160a01b039283166001600160a01b0319918216178255306000818152600960209081526040808320601a5488168452825280832060001990556001805488168452600d808452828520805460ff19908116841790915582548a168652600e8086528487208054831685179055338088529286528487208054831685179055968652838620805482168417905581865295845282852080548716831790559654909716835290912080549092169094179055601580548216831790556016805482168317905560178054909116909117905560125460115460105462000383936200036f92906200142d6200042c821b17901c565b6200042c60201b6200142d1790919060201c565b601381905560145560045433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200064c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806200043b838562000636565b905083811015620004925760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004f2578160001904821115620004d657620004d66200049b565b80851615620004e457918102915b93841c9390800290620004b6565b509250929050565b6000826200050b5750600162000495565b816200051a5750600062000495565b81600181146200053357600281146200053e576200055e565b600191505062000495565b60ff8411156200055257620005526200049b565b50506001821b62000495565b5060208310610133831016604e8410600b841016171562000583575081810a62000495565b6200058f8383620004b1565b8060001904821115620005a657620005a66200049b565b029392505050565b6000620005bf60ff841683620004fa565b9392505050565b6000816000190483118215151615620005e357620005e36200049b565b500290565b6000826200060657634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200061e57600080fd5b81516001600160a01b03811681146200049257600080fd5b808201808211156200049557620004956200049b565b612b32806200065c6000396000f3fe60806040526004361061037a5760003560e01c8063893d20e8116101d1578063a9e59da311610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a1c578063f887ea4014610a3c578063fb02195914610a5c578063fe575a8714610a8957600080fd5b8063df20fd49146109a7578063ea1644d5146109c7578063eb45e709146109e7578063f2fde38b146109fc57600080fd5b8063cec10c11116100dc578063cec10c111461090b578063dbe1c4d51461092b578063dd62ed3e14610941578063dec2ba0f1461098757600080fd5b8063a9e59da3146108b5578063b898a715146108d5578063ca33e64c146108eb57600080fd5b80639cfe42da1161016f578063a4b45c0011610149578063a4b45c0014610835578063a617792814610855578063a8aa1b3114610875578063a9059cbb1461089557600080fd5b80639cfe42da146107d45780639d0014b1146107f45780639e0a78101461081457600080fd5b80638eb6889f116101ab5780638eb6889f14610761578063944c1d971461077757806395d89b411461078d57806398118cb4146107be57600080fd5b8063893d20e8146107135780638b42507f146107315780638da5cb5b1461071357600080fd5b80634fef3a82116102ab57806370a082311161024957806375f0a8741161022357806375f0a874146106805780637d1db4a5146106a05780637de4c778146106b657806383de570a146106e357600080fd5b806370a0823114610615578063712a890a1461064b578063715018a61461066b57600080fd5b806366e930b31161028557806366e930b3146105b35780636b67c4df146105d35780636c0a24eb146105e95780636c0cd64e146105ff57600080fd5b80634fef3a821461055e578063571ac8b014610573578063658d4b7f1461059357600080fd5b80632b112e49116103185780633b01a157116102f25780633b01a157146104c05780633e02a988146104f85780633f4218e01461050d5780634a74bb021461053d57600080fd5b80632b112e491461047a578063313ce5671461048f57806333596f50146104ab57600080fd5b8063095ea7b311610354578063095ea7b314610400578063125b94e51461043057806318160ddd1461044557806323b872dd1461045a57600080fd5b806301339c21146103865780630445b6671461039d57806306fdde03146103c657600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039b610ac2565b005b3480156103a957600080fd5b506103b3601e5481565b6040519081526020015b60405180910390f35b3480156103d257600080fd5b506040805180820190915260088152675a6569726973686960c01b60208201525b6040516103bd919061266d565b34801561040c57600080fd5b5061042061041b3660046126d0565b610b96565b60405190151581526020016103bd565b34801561043c57600080fd5b5061039b610c03565b34801561045157600080fd5b506004546103b3565b34801561046657600080fd5b506104206104753660046126fc565b610c59565b34801561048657600080fd5b506103b3610d1e565b34801561049b57600080fd5b50604051601281526020016103bd565b3480156104b757600080fd5b5061039b610d70565b3480156104cc57600080fd5b506017546104e0906001600160a01b031681565b6040516001600160a01b0390911681526020016103bd565b34801561050457600080fd5b506103b3610dc9565b34801561051957600080fd5b5061042061052836600461273d565b600d6020526000908152604090205460ff1681565b34801561054957600080fd5b50601b5461042090600160a81b900460ff1681565b34801561056a57600080fd5b5061039b610ddb565b34801561057f57600080fd5b5061042061058e36600461273d565b610e26565b34801561059f57600080fd5b5061039b6105ae366004612768565b610e34565b3480156105bf57600080fd5b5061039b6105ce36600461273d565b610e89565b3480156105df57600080fd5b506103b360115481565b3480156105f557600080fd5b506103b3601d5481565b34801561060b57600080fd5b506103b360125481565b34801561062157600080fd5b506103b361063036600461273d565b6001600160a01b031660009081526008602052604090205490565b34801561065757600080fd5b5061039b6106663660046127a1565b610ed4565b34801561067757600080fd5b5061039b610f03565b34801561068c57600080fd5b506016546104e0906001600160a01b031681565b3480156106ac57600080fd5b506103b3601c5481565b3480156106c257600080fd5b506103b36106d136600461273d565b600b6020526000908152604090205481565b3480156106ef57600080fd5b506104206106fe36600461273d565b600c6020526000908152604090205460ff1681565b34801561071f57600080fd5b506000546001600160a01b03166104e0565b34801561073d57600080fd5b5061042061074c36600461273d565b600e6020526000908152604090205460ff1681565b34801561076d57600080fd5b506103b360055481565b34801561078357600080fd5b506103b360075481565b34801561079957600080fd5b506040805180820190915260088152675a4549524953484960c01b60208201526103f3565b3480156107ca57600080fd5b506103b360105481565b3480156107e057600080fd5b5061039b6107ef36600461273d565b610f39565b34801561080057600080fd5b5061039b61080f3660046127a1565b610fa1565b34801561082057600080fd5b5060185461042090600160a01b900460ff1681565b34801561084157600080fd5b5061039b6108503660046127ba565b610fd0565b34801561086157600080fd5b506018546104e0906001600160a01b031681565b34801561088157600080fd5b50601b546104e0906001600160a01b031681565b3480156108a157600080fd5b506104206108b03660046126d0565b611028565b3480156108c157600080fd5b5061039b6108d03660046127a1565b611035565b3480156108e157600080fd5b506103b360065481565b3480156108f757600080fd5b506015546104e0906001600160a01b031681565b34801561091757600080fd5b5061039b6109263660046127e8565b6110c2565b34801561093757600080fd5b506103b3601f5481565b34801561094d57600080fd5b506103b361095c3660046127ba565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561099357600080fd5b5061039b6109a23660046126d0565b611174565b3480156109b357600080fd5b5061039b6109c2366004612814565b611214565b3480156109d357600080fd5b5061039b6109e23660046127a1565b611260565b3480156109f357600080fd5b5061039b6112ed565b348015610a0857600080fd5b5061039b610a1736600461273d565b611340565b348015610a2857600080fd5b5061039b610a37366004612768565b6113d8565b348015610a4857600080fd5b50601a546104e0906001600160a01b031681565b348015610a6857600080fd5b506103b3610a7736600461273d565b600a6020526000908152604090205481565b348015610a9557600080fd5b50610420610aa436600461273d565b6001600160a01b03166000908152600f602052604090205460ff1690565b6000546001600160a01b03163314610af55760405162461bcd60e51b8152600401610aec90612832565b60405180910390fd5b601854600160a01b900460ff1615610b425760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610aec565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b039092169190911790556000600555600260108190556011556003601255600655565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bf19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610c2d5760405162461bcd60e51b8152600401610aec90612832565b60026010819055601181905560036012819055610c5491610c4e908061142d565b9061142d565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610d06576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ce191849061148c565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610d118484846114c6565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610d6b906001546001600160a01b0316600090815260086020526040902054610d6590600454906118b2565b906118b2565b905090565b6000546001600160a01b03163314610d9a5760405162461bcd60e51b8152600401610aec90612832565b60405133904780156108fc02916000818181858888f19350505050158015610dc6573d6000803e3d6000fd5b50565b6000600754600654610d6b919061287d565b6000546001600160a01b03163314610e055760405162461bcd60e51b8152600401610aec90612832565b60016010819055601181905560056012819055610c5491610c4e908061142d565b6000610bfd82600019610b96565b6000546001600160a01b03163314610e5e5760405162461bcd60e51b8152600401610aec90612832565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610eb35760405162461bcd60e51b8152600401610aec90612832565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610efe5760405162461bcd60e51b8152600401610aec90612832565b600755565b6000546001600160a01b03163314610f2d5760405162461bcd60e51b8152600401610aec90612832565b610f3760006118f4565b565b6000546001600160a01b03163314610f635760405162461bcd60e51b8152600401610aec90612832565b601954610f7290610a8c61287d565b4210610f7d57600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b8152600401610aec90612832565b601e55565b6000546001600160a01b03163314610ffa5760405162461bcd60e51b8152600401610aec90612832565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610d173384846114c6565b6000546001600160a01b0316331461105f5760405162461bcd60e51b8152600401610aec90612832565b600a60045461106e9190612890565b8110156110bd5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610aec565b601c55565b6000546001600160a01b031633146110ec5760405162461bcd60e51b8152600401610aec90612832565b600a83111561110d5760405162461bcd60e51b8152600401610aec906128b2565b600a82111561112e5760405162461bcd60e51b8152600401610aec906128b2565b600a81111561114f5760405162461bcd60e51b8152600401610aec906128b2565b60108390556011829055601281905561116c81610c4e858561142d565b601355505050565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610aec90612832565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156111eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f91906128d7565b505050565b6000546001600160a01b0316331461123e5760405162461bcd60e51b8152600401610aec90612832565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b0316331461128a5760405162461bcd60e51b8152600401610aec90612832565b60326004546112999190612890565b8110156112e85760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610aec565b601d55565b6000546001600160a01b031633146113175760405162461bcd60e51b8152600401610aec90612832565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b0316331461136a5760405162461bcd60e51b8152600401610aec90612832565b6001600160a01b0381166113cf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aec565b610dc6816118f4565b6000546001600160a01b031633146114025760405162461bcd60e51b8152600401610aec90612832565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b60008061143a838561287d565b905083811015610d175760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610aec565b600081848411156114b05760405162461bcd60e51b8152600401610aec919061266d565b5060006114bd84866128f4565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff16151560011480159061151257506001600160a01b0383166000908152600f602052604090205460ff161515600114155b61154c5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610aec565b601b54600160a01b900460ff161561157057611569848484611944565b9050610d17565b601b546001600160a01b031633148015906115955750601b54600160a01b900460ff16155b80156115aa5750601b54600160a81b900460ff165b80156115c75750601e543060009081526008602052604090205410155b156115d4576115d4611a2a565b6115df848484611e6b565b6115e98484612400565b156116245760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610aec565b6001600160a01b0384166000908152600d602052604081205460ff1615801561166657506001600160a01b0384166000908152600d602052604090205460ff16155b611670578261167b565b61167b85858561248b565b601854909150600160a01b900460ff1615156001148015906116ab5750601b546001600160a01b03858116911614155b80156116c557506000546001600160a01b03868116911614155b80156116df57506000546001600160a01b03858116911614155b1561175d576001600160a01b038416600090815260086020526040902054611707908261142d565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461173690846118b2565b6001600160a01b03861660009081526008602052604090205561175884610f7d565b611867565b6000546001600160a01b038681169116148061178657506000546001600160a01b038581169116145b156117fb576001600160a01b0384166000908152600860205260409020546117ae908261142d565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117dd90846118b2565b6001600160a01b038616600090815260086020526040902055611867565b6001600160a01b03841660009081526008602052604090205461181e908261142d565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461184d90846118b2565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610d1783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461199591849061148c565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119c4908361142d565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a189086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a6391600291611a5d918290879061254e565b906125d0565b90506000611a7183836118b2565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aab57611aab61291d565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b289190612933565b81600181518110611b3b57611b3b61291d565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b81908590600090869030904290600401612994565b600060405180830381600087803b158015611b9b57600080fd5b505af1158015611baf573d6000803e3d6000fd5b505060105447925060009150611bd390611bca9060026125d0565b601354906118b2565b90506000611bf082611a5d6011548661254e90919063ffffffff16565b90506000611c0d83611a5d6012548761254e90919063ffffffff16565b90506000611c2f6002611a5d86611a5d6010548a61254e90919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c86576040519150601f19603f3d011682016040523d82523d6000602084013e611c8b565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611ce4576040519150601f19603f3d011682016040523d82523d6000602084013e611ce9565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f7e1b91090974f99ff863df0f31147c10b81b1693e8c646cfdc1b97a5d6283b11910160405180910390a15060009050808915611e5157601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611def573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e1491906129d0565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e7b90426128f4565b1115611e8957611e89612612565b6000546001600160a01b03848116911614801590611eb557506000546001600160a01b03838116911614155b8015611eda57506001600160a01b0382166000908152600e602052604090205460ff16155b8015611ef457506002546001600160a01b03838116911614155b8015611f0e57506001546001600160a01b03838116911614155b8015611f285750601b546001600160a01b03838116911614155b8015611f3d57506001600160a01b0382163014155b156122d957601c54811115611f7d5760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610aec565b6001600160a01b038216600090815260086020526040902054601d54611fa3838361287d565b1115611ffd5760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610aec565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190612933565b8160008151811061209e5761209e61291d565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106120d2576120d261291d565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca749061211690879086906004016129fe565b600060405180830381865afa158015612133573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215b9190810190612a1f565b60008151811061216d5761216d61291d565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff16151560011480156121ce57506001600160a01b0385166000908152600a602052604090205442906121cc90610e1061287d565b105b80156121db575060055481115b1561224557601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f7a3876294c003693c09b1f201358b7363caa12e3e033ed587899fd1d9f044737910160405180910390a16122d5565b6001600160a01b0385166000908152600c602052604090205460ff1615801561226f575060055481115b156122d557601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f7a3876294c003693c09b1f201358b7363caa12e3e033ed587899fd1d9f044737910160405180910390a15b5050505b6000546001600160a01b0384811691161480159061230557506000546001600160a01b03838116911614155b801561232a57506001600160a01b0383166000908152600e602052604090205460ff16155b80156123445750601b546001600160a01b03848116911614155b801561235957506001600160a01b0382163014155b1561120f57601c548111156123995760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610aec565b6017546001600160a01b0380851691160361120f57601754600554604080516001600160a01b03909316835260208301919091527f83a0fa64f7ae8557922f3732336a8b1e5885999f44e7422b63cd0a5aae62cf29910160405180910390a161120f612612565b6001600160a01b0382166000908152600d602052604081205460ff168061243f57506001600160a01b0382166000908152600d602052604090205460ff165b1561244c57506000610bfd565b601b546001600160a01b03848116911614806124755750601b546001600160a01b038381169116145b1561248257506000610bfd565b50600192915050565b601b5460009081906001600160a01b038581169116146124ad576013546124b1565b6014545b905060006124c46064611a5d868561254e565b306000908152600860205260409020549091506124e1908261142d565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125329085815260200190565b60405180910390a361254484826118b2565b9695505050505050565b60008260000361256057506000610bfd565b600061256c8385612add565b9050826125798583612890565b14610d175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610aec565b6000610d1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061263f565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126605760405162461bcd60e51b8152600401610aec919061266d565b5060006114bd8486612890565b600060208083528351808285015260005b8181101561269a5785810183015185820160400152820161267e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dc657600080fd5b600080604083850312156126e357600080fd5b82356126ee816126bb565b946020939093013593505050565b60008060006060848603121561271157600080fd5b833561271c816126bb565b9250602084013561272c816126bb565b929592945050506040919091013590565b60006020828403121561274f57600080fd5b8135610d17816126bb565b8015158114610dc657600080fd5b6000806040838503121561277b57600080fd5b8235612786816126bb565b915060208301356127968161275a565b809150509250929050565b6000602082840312156127b357600080fd5b5035919050565b600080604083850312156127cd57600080fd5b82356127d8816126bb565b91506020830135612796816126bb565b6000806000606084860312156127fd57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561282757600080fd5b82356126ee8161275a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bfd57610bfd612867565b6000826128ad57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b6000602082840312156128e957600080fd5b8151610d178161275a565b81810381811115610bfd57610bfd612867565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561294557600080fd5b8151610d17816126bb565b600081518084526020808501945080840160005b838110156129895781516001600160a01b031687529582019590820190600101612964565b509495945050505050565b85815284602082015260a0604082015260006129b360a0830186612950565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156129e557600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612a176040830184612950565b949350505050565b60006020808385031215612a3257600080fd5b825167ffffffffffffffff80821115612a4a57600080fd5b818501915085601f830112612a5e57600080fd5b815181811115612a7057612a70612907565b8060051b604051601f19603f83011681018181108582111715612a9557612a95612907565b604052918252848201925083810185019188831115612ab357600080fd5b938501935b82851015612ad157845184529385019392850192612ab8565b98975050505050505050565b6000816000190483118215151615612af757612af7612867565b50029056fea26469706673582212208f714ac413467115455cd00ae8f0d70e188642651a24a2872cebdbeea679c3f664736f6c63430008100033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c8063893d20e8116101d1578063a9e59da311610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a1c578063f887ea4014610a3c578063fb02195914610a5c578063fe575a8714610a8957600080fd5b8063df20fd49146109a7578063ea1644d5146109c7578063eb45e709146109e7578063f2fde38b146109fc57600080fd5b8063cec10c11116100dc578063cec10c111461090b578063dbe1c4d51461092b578063dd62ed3e14610941578063dec2ba0f1461098757600080fd5b8063a9e59da3146108b5578063b898a715146108d5578063ca33e64c146108eb57600080fd5b80639cfe42da1161016f578063a4b45c0011610149578063a4b45c0014610835578063a617792814610855578063a8aa1b3114610875578063a9059cbb1461089557600080fd5b80639cfe42da146107d45780639d0014b1146107f45780639e0a78101461081457600080fd5b80638eb6889f116101ab5780638eb6889f14610761578063944c1d971461077757806395d89b411461078d57806398118cb4146107be57600080fd5b8063893d20e8146107135780638b42507f146107315780638da5cb5b1461071357600080fd5b80634fef3a82116102ab57806370a082311161024957806375f0a8741161022357806375f0a874146106805780637d1db4a5146106a05780637de4c778146106b657806383de570a146106e357600080fd5b806370a0823114610615578063712a890a1461064b578063715018a61461066b57600080fd5b806366e930b31161028557806366e930b3146105b35780636b67c4df146105d35780636c0a24eb146105e95780636c0cd64e146105ff57600080fd5b80634fef3a821461055e578063571ac8b014610573578063658d4b7f1461059357600080fd5b80632b112e49116103185780633b01a157116102f25780633b01a157146104c05780633e02a988146104f85780633f4218e01461050d5780634a74bb021461053d57600080fd5b80632b112e491461047a578063313ce5671461048f57806333596f50146104ab57600080fd5b8063095ea7b311610354578063095ea7b314610400578063125b94e51461043057806318160ddd1461044557806323b872dd1461045a57600080fd5b806301339c21146103865780630445b6671461039d57806306fdde03146103c657600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039b610ac2565b005b3480156103a957600080fd5b506103b3601e5481565b6040519081526020015b60405180910390f35b3480156103d257600080fd5b506040805180820190915260088152675a6569726973686960c01b60208201525b6040516103bd919061266d565b34801561040c57600080fd5b5061042061041b3660046126d0565b610b96565b60405190151581526020016103bd565b34801561043c57600080fd5b5061039b610c03565b34801561045157600080fd5b506004546103b3565b34801561046657600080fd5b506104206104753660046126fc565b610c59565b34801561048657600080fd5b506103b3610d1e565b34801561049b57600080fd5b50604051601281526020016103bd565b3480156104b757600080fd5b5061039b610d70565b3480156104cc57600080fd5b506017546104e0906001600160a01b031681565b6040516001600160a01b0390911681526020016103bd565b34801561050457600080fd5b506103b3610dc9565b34801561051957600080fd5b5061042061052836600461273d565b600d6020526000908152604090205460ff1681565b34801561054957600080fd5b50601b5461042090600160a81b900460ff1681565b34801561056a57600080fd5b5061039b610ddb565b34801561057f57600080fd5b5061042061058e36600461273d565b610e26565b34801561059f57600080fd5b5061039b6105ae366004612768565b610e34565b3480156105bf57600080fd5b5061039b6105ce36600461273d565b610e89565b3480156105df57600080fd5b506103b360115481565b3480156105f557600080fd5b506103b3601d5481565b34801561060b57600080fd5b506103b360125481565b34801561062157600080fd5b506103b361063036600461273d565b6001600160a01b031660009081526008602052604090205490565b34801561065757600080fd5b5061039b6106663660046127a1565b610ed4565b34801561067757600080fd5b5061039b610f03565b34801561068c57600080fd5b506016546104e0906001600160a01b031681565b3480156106ac57600080fd5b506103b3601c5481565b3480156106c257600080fd5b506103b36106d136600461273d565b600b6020526000908152604090205481565b3480156106ef57600080fd5b506104206106fe36600461273d565b600c6020526000908152604090205460ff1681565b34801561071f57600080fd5b506000546001600160a01b03166104e0565b34801561073d57600080fd5b5061042061074c36600461273d565b600e6020526000908152604090205460ff1681565b34801561076d57600080fd5b506103b360055481565b34801561078357600080fd5b506103b360075481565b34801561079957600080fd5b506040805180820190915260088152675a4549524953484960c01b60208201526103f3565b3480156107ca57600080fd5b506103b360105481565b3480156107e057600080fd5b5061039b6107ef36600461273d565b610f39565b34801561080057600080fd5b5061039b61080f3660046127a1565b610fa1565b34801561082057600080fd5b5060185461042090600160a01b900460ff1681565b34801561084157600080fd5b5061039b6108503660046127ba565b610fd0565b34801561086157600080fd5b506018546104e0906001600160a01b031681565b34801561088157600080fd5b50601b546104e0906001600160a01b031681565b3480156108a157600080fd5b506104206108b03660046126d0565b611028565b3480156108c157600080fd5b5061039b6108d03660046127a1565b611035565b3480156108e157600080fd5b506103b360065481565b3480156108f757600080fd5b506015546104e0906001600160a01b031681565b34801561091757600080fd5b5061039b6109263660046127e8565b6110c2565b34801561093757600080fd5b506103b3601f5481565b34801561094d57600080fd5b506103b361095c3660046127ba565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561099357600080fd5b5061039b6109a23660046126d0565b611174565b3480156109b357600080fd5b5061039b6109c2366004612814565b611214565b3480156109d357600080fd5b5061039b6109e23660046127a1565b611260565b3480156109f357600080fd5b5061039b6112ed565b348015610a0857600080fd5b5061039b610a1736600461273d565b611340565b348015610a2857600080fd5b5061039b610a37366004612768565b6113d8565b348015610a4857600080fd5b50601a546104e0906001600160a01b031681565b348015610a6857600080fd5b506103b3610a7736600461273d565b600a6020526000908152604090205481565b348015610a9557600080fd5b50610420610aa436600461273d565b6001600160a01b03166000908152600f602052604090205460ff1690565b6000546001600160a01b03163314610af55760405162461bcd60e51b8152600401610aec90612832565b60405180910390fd5b601854600160a01b900460ff1615610b425760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610aec565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b039092169190911790556000600555600260108190556011556003601255600655565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bf19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610c2d5760405162461bcd60e51b8152600401610aec90612832565b60026010819055601181905560036012819055610c5491610c4e908061142d565b9061142d565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610d06576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ce191849061148c565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610d118484846114c6565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610d6b906001546001600160a01b0316600090815260086020526040902054610d6590600454906118b2565b906118b2565b905090565b6000546001600160a01b03163314610d9a5760405162461bcd60e51b8152600401610aec90612832565b60405133904780156108fc02916000818181858888f19350505050158015610dc6573d6000803e3d6000fd5b50565b6000600754600654610d6b919061287d565b6000546001600160a01b03163314610e055760405162461bcd60e51b8152600401610aec90612832565b60016010819055601181905560056012819055610c5491610c4e908061142d565b6000610bfd82600019610b96565b6000546001600160a01b03163314610e5e5760405162461bcd60e51b8152600401610aec90612832565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610eb35760405162461bcd60e51b8152600401610aec90612832565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610efe5760405162461bcd60e51b8152600401610aec90612832565b600755565b6000546001600160a01b03163314610f2d5760405162461bcd60e51b8152600401610aec90612832565b610f3760006118f4565b565b6000546001600160a01b03163314610f635760405162461bcd60e51b8152600401610aec90612832565b601954610f7290610a8c61287d565b4210610f7d57600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b8152600401610aec90612832565b601e55565b6000546001600160a01b03163314610ffa5760405162461bcd60e51b8152600401610aec90612832565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610d173384846114c6565b6000546001600160a01b0316331461105f5760405162461bcd60e51b8152600401610aec90612832565b600a60045461106e9190612890565b8110156110bd5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610aec565b601c55565b6000546001600160a01b031633146110ec5760405162461bcd60e51b8152600401610aec90612832565b600a83111561110d5760405162461bcd60e51b8152600401610aec906128b2565b600a82111561112e5760405162461bcd60e51b8152600401610aec906128b2565b600a81111561114f5760405162461bcd60e51b8152600401610aec906128b2565b60108390556011829055601281905561116c81610c4e858561142d565b601355505050565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610aec90612832565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156111eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f91906128d7565b505050565b6000546001600160a01b0316331461123e5760405162461bcd60e51b8152600401610aec90612832565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b0316331461128a5760405162461bcd60e51b8152600401610aec90612832565b60326004546112999190612890565b8110156112e85760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610aec565b601d55565b6000546001600160a01b031633146113175760405162461bcd60e51b8152600401610aec90612832565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b0316331461136a5760405162461bcd60e51b8152600401610aec90612832565b6001600160a01b0381166113cf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aec565b610dc6816118f4565b6000546001600160a01b031633146114025760405162461bcd60e51b8152600401610aec90612832565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b60008061143a838561287d565b905083811015610d175760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610aec565b600081848411156114b05760405162461bcd60e51b8152600401610aec919061266d565b5060006114bd84866128f4565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff16151560011480159061151257506001600160a01b0383166000908152600f602052604090205460ff161515600114155b61154c5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610aec565b601b54600160a01b900460ff161561157057611569848484611944565b9050610d17565b601b546001600160a01b031633148015906115955750601b54600160a01b900460ff16155b80156115aa5750601b54600160a81b900460ff165b80156115c75750601e543060009081526008602052604090205410155b156115d4576115d4611a2a565b6115df848484611e6b565b6115e98484612400565b156116245760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610aec565b6001600160a01b0384166000908152600d602052604081205460ff1615801561166657506001600160a01b0384166000908152600d602052604090205460ff16155b611670578261167b565b61167b85858561248b565b601854909150600160a01b900460ff1615156001148015906116ab5750601b546001600160a01b03858116911614155b80156116c557506000546001600160a01b03868116911614155b80156116df57506000546001600160a01b03858116911614155b1561175d576001600160a01b038416600090815260086020526040902054611707908261142d565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461173690846118b2565b6001600160a01b03861660009081526008602052604090205561175884610f7d565b611867565b6000546001600160a01b038681169116148061178657506000546001600160a01b038581169116145b156117fb576001600160a01b0384166000908152600860205260409020546117ae908261142d565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117dd90846118b2565b6001600160a01b038616600090815260086020526040902055611867565b6001600160a01b03841660009081526008602052604090205461181e908261142d565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461184d90846118b2565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610d1783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461199591849061148c565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119c4908361142d565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a189086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a6391600291611a5d918290879061254e565b906125d0565b90506000611a7183836118b2565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aab57611aab61291d565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b289190612933565b81600181518110611b3b57611b3b61291d565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b81908590600090869030904290600401612994565b600060405180830381600087803b158015611b9b57600080fd5b505af1158015611baf573d6000803e3d6000fd5b505060105447925060009150611bd390611bca9060026125d0565b601354906118b2565b90506000611bf082611a5d6011548661254e90919063ffffffff16565b90506000611c0d83611a5d6012548761254e90919063ffffffff16565b90506000611c2f6002611a5d86611a5d6010548a61254e90919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c86576040519150601f19603f3d011682016040523d82523d6000602084013e611c8b565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611ce4576040519150601f19603f3d011682016040523d82523d6000602084013e611ce9565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f7e1b91090974f99ff863df0f31147c10b81b1693e8c646cfdc1b97a5d6283b11910160405180910390a15060009050808915611e5157601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611def573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e1491906129d0565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e7b90426128f4565b1115611e8957611e89612612565b6000546001600160a01b03848116911614801590611eb557506000546001600160a01b03838116911614155b8015611eda57506001600160a01b0382166000908152600e602052604090205460ff16155b8015611ef457506002546001600160a01b03838116911614155b8015611f0e57506001546001600160a01b03838116911614155b8015611f285750601b546001600160a01b03838116911614155b8015611f3d57506001600160a01b0382163014155b156122d957601c54811115611f7d5760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610aec565b6001600160a01b038216600090815260086020526040902054601d54611fa3838361287d565b1115611ffd5760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610aec565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190612933565b8160008151811061209e5761209e61291d565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106120d2576120d261291d565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca749061211690879086906004016129fe565b600060405180830381865afa158015612133573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215b9190810190612a1f565b60008151811061216d5761216d61291d565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff16151560011480156121ce57506001600160a01b0385166000908152600a602052604090205442906121cc90610e1061287d565b105b80156121db575060055481115b1561224557601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f7a3876294c003693c09b1f201358b7363caa12e3e033ed587899fd1d9f044737910160405180910390a16122d5565b6001600160a01b0385166000908152600c602052604090205460ff1615801561226f575060055481115b156122d557601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f7a3876294c003693c09b1f201358b7363caa12e3e033ed587899fd1d9f044737910160405180910390a15b5050505b6000546001600160a01b0384811691161480159061230557506000546001600160a01b03838116911614155b801561232a57506001600160a01b0383166000908152600e602052604090205460ff16155b80156123445750601b546001600160a01b03848116911614155b801561235957506001600160a01b0382163014155b1561120f57601c548111156123995760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610aec565b6017546001600160a01b0380851691160361120f57601754600554604080516001600160a01b03909316835260208301919091527f83a0fa64f7ae8557922f3732336a8b1e5885999f44e7422b63cd0a5aae62cf29910160405180910390a161120f612612565b6001600160a01b0382166000908152600d602052604081205460ff168061243f57506001600160a01b0382166000908152600d602052604090205460ff165b1561244c57506000610bfd565b601b546001600160a01b03848116911614806124755750601b546001600160a01b038381169116145b1561248257506000610bfd565b50600192915050565b601b5460009081906001600160a01b038581169116146124ad576013546124b1565b6014545b905060006124c46064611a5d868561254e565b306000908152600860205260409020549091506124e1908261142d565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125329085815260200190565b60405180910390a361254484826118b2565b9695505050505050565b60008260000361256057506000610bfd565b600061256c8385612add565b9050826125798583612890565b14610d175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610aec565b6000610d1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061263f565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126605760405162461bcd60e51b8152600401610aec919061266d565b5060006114bd8486612890565b600060208083528351808285015260005b8181101561269a5785810183015185820160400152820161267e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dc657600080fd5b600080604083850312156126e357600080fd5b82356126ee816126bb565b946020939093013593505050565b60008060006060848603121561271157600080fd5b833561271c816126bb565b9250602084013561272c816126bb565b929592945050506040919091013590565b60006020828403121561274f57600080fd5b8135610d17816126bb565b8015158114610dc657600080fd5b6000806040838503121561277b57600080fd5b8235612786816126bb565b915060208301356127968161275a565b809150509250929050565b6000602082840312156127b357600080fd5b5035919050565b600080604083850312156127cd57600080fd5b82356127d8816126bb565b91506020830135612796816126bb565b6000806000606084860312156127fd57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561282757600080fd5b82356126ee8161275a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bfd57610bfd612867565b6000826128ad57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b6000602082840312156128e957600080fd5b8151610d178161275a565b81810381811115610bfd57610bfd612867565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561294557600080fd5b8151610d17816126bb565b600081518084526020808501945080840160005b838110156129895781516001600160a01b031687529582019590820190600101612964565b509495945050505050565b85815284602082015260a0604082015260006129b360a0830186612950565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156129e557600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612a176040830184612950565b949350505050565b60006020808385031215612a3257600080fd5b825167ffffffffffffffff80821115612a4a57600080fd5b818501915085601f830112612a5e57600080fd5b815181811115612a7057612a70612907565b8060051b604051601f19603f83011681018181108582111715612a9557612a95612907565b604052918252848201925083810185019188831115612ab357600080fd5b938501935b82851015612ad157845184529385019392850192612ab8565b98975050505050505050565b6000816000190483118215151615612af757612af7612867565b50029056fea26469706673582212208f714ac413467115455cd00ae8f0d70e188642651a24a2872cebdbeea679c3f664736f6c63430008100033

Deployed Bytecode Sourcemap

11044:16286:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17839:355;;;;;;;;;;;;;:::i;:::-;;12760:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;12760:49:0;;;;;;;;14075:94;;;;;;;;;;-1:-1:-1;14156:5:0;;;;;;;;;;;;-1:-1:-1;;;14156:5:0;;;;14075:94;;;;;;;:::i;15984:248::-;;;;;;;;;;-1:-1:-1;15984:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;15984:248:0;1205:187:1;17629:202:0;;;;;;;;;;;;;:::i;14487:102::-;;;;;;;;;;-1:-1:-1;14569:12:0;;14487:102;;21594:423;;;;;;;;;;-1:-1:-1;21594:423:0;;;;;:::i;:::-;;:::i;14597:142::-;;;;;;;;;;;;;:::i;14283:94::-;;;;;;;;;;-1:-1:-1;14283:94:0;;11234:2;2000:36:1;;1988:2;1973:18;14283:94:0;1858:184:1;27039:115:0;;;;;;;;;;;;;:::i;12388:20::-;;;;;;;;;;-1:-1:-1;12388:20:0;;;;-1:-1:-1;;;;;12388:20:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;12388:20:0;2047:203:1;17302:109:0;;;;;;;;;;;;;:::i;11906:43::-;;;;;;;;;;-1:-1:-1;11906:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12606:40;;;;;;;;;;-1:-1:-1;12606:40:0;;;;-1:-1:-1;;;12606:40:0;;;;;;17419:202;;;;;;;;;;;;;:::i;16240:108::-;;;;;;;;;;-1:-1:-1;16240:108:0;;;;;:::i;:::-;;:::i;16356:119::-;;;;;;;;;;-1:-1:-1;16356:119:0;;;;;:::i;:::-;;:::i;18755:106::-;;;;;;;;;;-1:-1:-1;18755:106:0;;;;;:::i;:::-;;:::i;12157:31::-;;;;;;;;;;;;;;;;12702:51;;;;;;;;;;;;;;;;12195:27;;;;;;;;;;;;;;;;14747:119;;;;;;;;;;-1:-1:-1;14747:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;14840:18:0;14813:7;14840:18;;;:9;:18;;;;;;;14747:119;17002:146;;;;;;;;;;-1:-1:-1;17002:146:0;;;;;:::i;:::-;;:::i;10297:94::-;;;;;;;;;;;;;:::i;12351:30::-;;;;;;;;;;-1:-1:-1;12351:30:0;;;;-1:-1:-1;;;;;12351:30:0;;;12653:42;;;;;;;;;;;;;;;;11799;;;;;;;;;;-1:-1:-1;11799:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;11848:51;;;;;;;;;;-1:-1:-1;11848:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14385:94;;;;;;;;;;-1:-1:-1;14437:7:0;9719:6;-1:-1:-1;;;;;9719:6:0;14385:94;14597:142;11956:47;;;;;;;;;;-1:-1:-1;11956:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11509:29;;;;;;;;;;;;;;;;11586:39;;;;;;;;;;;;;;;;14177:98;;;;;;;;;;-1:-1:-1;14260:7:0;;;;;;;;;;;;-1:-1:-1;;;14260:7:0;;;;14177:98;;12119:31;;;;;;;;;;;;;;;;18582:165;;;;;;;;;;-1:-1:-1;18582:165:0;;;;;:::i;:::-;;:::i;16641:108::-;;;;;;;;;;-1:-1:-1;16641:108:0;;;;;:::i;:::-;;:::i;12453:31::-;;;;;;;;;;-1:-1:-1;12453:31:0;;;;-1:-1:-1;;;12453:31:0;;;;;;16757:237;;;;;;;;;;-1:-1:-1;16757:237:0;;;;;:::i;:::-;;:::i;12415:29::-;;;;;;;;;;-1:-1:-1;12415:29:0;;;;-1:-1:-1;;;;;12415:29:0;;;12550:19;;;;;;;;;;-1:-1:-1;12550:19:0;;;;-1:-1:-1;;;;;12550:19:0;;;21398:188;;;;;;;;;;-1:-1:-1;21398:188:0;;;;;:::i;:::-;;:::i;18392:182::-;;;;;;;;;;-1:-1:-1;18392:182:0;;;;;:::i;:::-;;:::i;11545:34::-;;;;;;;;;;;;;;;;12308:36;;;;;;;;;;-1:-1:-1;12308:36:0;;;;-1:-1:-1;;;;;12308:36:0;;;15101:679;;;;;;;;;;-1:-1:-1;15101:679:0;;;;;:::i;:::-;;:::i;12816:29::-;;;;;;;;;;;;;;;;15788:188;;;;;;;;;;-1:-1:-1;15788:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;15940:19:0;;;15908:7;15940:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15788:188;27162:165;;;;;;;;;;-1:-1:-1;27162:165:0;;;;;:::i;:::-;;:::i;21172:218::-;;;;;;;;;;-1:-1:-1;21172:218:0;;;;;:::i;:::-;;:::i;18202:182::-;;;;;;;;;;-1:-1:-1;18202:182:0;;;;;:::i;:::-;;:::i;14874:219::-;;;;;;;;;;;;;:::i;10546:192::-;;;;;;;;;;-1:-1:-1;10546:192:0;;;;;:::i;:::-;;:::i;16483:150::-;;;;;;;;;;-1:-1:-1;16483:150:0;;;;;:::i;:::-;;:::i;12519:24::-;;;;;;;;;;-1:-1:-1;12519:24:0;;;;-1:-1:-1;;;;;12519:24:0;;;11742:50;;;;;;;;;;-1:-1:-1;11742:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;18869:120;;;;;;;;;;-1:-1:-1;18869:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;18956:25:0;18932:4;18956:25;;;:16;:25;;;;;;;;;18869:120;17839:355;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;;;;;;;;;17896:11:::1;::::0;-1:-1:-1;;;17896:11:0;::::1;;;:20;17887:50;;;::::0;-1:-1:-1;;;17887:50:0;;5019:2:1;17887:50:0::1;::::0;::::1;5001:21:1::0;5058:2;5038:18;;;5031:30;-1:-1:-1;;;5077:18:1;;;5070:46;5133:18;;17887:50:0::1;4817:340:1::0;17887:50:0::1;17948:11;:18:::0;;-1:-1:-1;;;;17948:18:0::1;-1:-1:-1::0;;;17948:18:0::1;::::0;;17991:15:::1;17977:11;:29:::0;;;18025:15:::1;::::0;18017:5:::1;:23:::0;;-1:-1:-1;;;;;;18017:23:0::1;-1:-1:-1::0;;;;;18025:15:0;;::::1;18017:23:::0;;;::::1;::::0;;17948:18;18051:10:::1;:14:::0;-1:-1:-1;18076:12:0::1;:16:::0;;;-1:-1:-1;18103:16:0;18141:1:::1;-1:-1:-1::0;18130:12:0;-1:-1:-1;18153:33:0;17839:355::o;15984:248::-;16120:10;16086:4;16108:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;16108:32:0;;;;;;;;;;:41;;;16165:37;16086:4;;16108:32;;16165:37;;;;16143:6;160:25:1;;148:2;133:18;;14:177;16165:37:0;;;;;;;;-1:-1:-1;16220:4:0;15984:248;;;;;:::o;17629:202::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;17706:1:::1;17691:12;:16:::0;;;17718:12:::1;:16:::0;;;17756:1:::1;17745:8;:12:::0;;;17779:44:::1;::::0;:30:::1;::::0;17706:1;17779:16:::1;:30::i;:::-;:34:::0;::::1;:44::i;:::-;17768:8;:55:::0;17629:202::o;21594:423::-;-1:-1:-1;;;;;21749:19:0;;21728:4;21749:19;;;:11;:19;;;;;;;;21769:10;21749:31;;;;;;;;-1:-1:-1;;21749:38:0;21745:192;;21838:87;;;;;;;;;;;-1:-1:-1;;;21838:87:0;;;;;;;;-1:-1:-1;;;;;21838:19:0;;-1:-1:-1;21838:19:0;;;:11;:19;;;;;21858:10;21838:31;;;;;;;;;;:87;;21892:6;;21838:53;:87::i;:::-;-1:-1:-1;;;;;21804:19:0;;;;;;:11;:19;;;;;;;;21824:10;21804:31;;;;;;;:121;21745:192;21947:40;21961:6;21969:9;21980:6;21947:13;:40::i;:::-;;22005:4;21998:11;;21594:423;;;;;;:::o;14597:142::-;14725:4;;-1:-1:-1;;;;;14725:4:0;14650:7;14840:18;;;:9;:18;;;;;;14677:54;;14704:4;;-1:-1:-1;;;;;14704:4:0;14813:7;14840:18;;;:9;:18;;;;;;14677:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;14670:61;;14597:142;:::o;27039:115::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;27095:51:::1;::::0;27103:10:::1;::::0;27124:21:::1;27095:51:::0;::::1;;;::::0;::::1;::::0;;;27124:21;27103:10;27095:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27039:115::o:0;17302:109::-;17347:7;17392:11;;17374:15;;:29;;;;:::i;17419:202::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;17496:1:::1;17481:12;:16:::0;;;17508:12:::1;:16:::0;;;17546:1:::1;17535:8;:12:::0;;;17569:44:::1;::::0;:30:::1;::::0;17496:1;17569:16:::1;:30::i;16240:108::-:0;16295:4;16319:21;16327:7;-1:-1:-1;;16319:7:0;:21::i;16356:119::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16439:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16439:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16356:119::o;18755:106::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18825:22:0::1;18848:5;18825:22:::0;;;:16:::1;:22;::::0;;;;:28;;-1:-1:-1;;18825:28:0::1;::::0;;18755:106::o;17002:146::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;17112:11:::1;:28:::0;17002:146::o;10297:94::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;10362:21:::1;10380:1;10362:9;:21::i;:::-;10297:94::o:0;18582:165::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;18674:11:::1;::::0;:24:::1;::::0;18688:10:::1;18674:24;:::i;:::-;18656:15;:42;18648:51;;;::::0;::::1;;-1:-1:-1::0;;;;;18710:22:0::1;;::::0;;;:16:::1;:22;::::0;;;;:27;;-1:-1:-1;;18710:27:0::1;18733:4;18710:27;::::0;;18582:165::o;16641:108::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;16716:13:::1;:25:::0;16641:108::o;16757:237::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;16895:21:::1;:44:::0;;-1:-1:-1;;;;;16895:44:0;;::::1;-1:-1:-1::0;;;;;;16895:44:0;;::::1;;::::0;;;16950:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;16757:237::o;21398:188::-;21505:4;21534:44;21548:10;21560:9;21571:6;21534:13;:44::i;18392:182::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;18499:2:::1;18485:12;;:16;;;;:::i;:::-;18477:6;:24;;18469:63;;;::::0;-1:-1:-1;;;18469:63:0;;5848:2:1;18469:63:0::1;::::0;::::1;5830:21:1::0;5887:2;5867:18;;;5860:30;5926:28;5906:18;;;5899:56;5972:18;;18469:63:0::1;5646:350:1::0;18469:63:0::1;18543:12;:21:::0;18392:182::o;15101:679::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;15318:2:::1;15299:15;:21;;15253:106;;;;-1:-1:-1::0;;;15253:106:0::1;;;;;;;:::i;:::-;15437:2;15418:15;:21;;15372:106;;;;-1:-1:-1::0;;;15372:106:0::1;;;;;;;:::i;:::-;15548:2;15533:11;:17;;15491:98;;;;-1:-1:-1::0;;;15491:98:0::1;;;;;;;:::i;:::-;15602:12;:30:::0;;;15643:12:::1;:30:::0;;;15684:8:::1;:22:::0;;;15728:44:::1;15695:11:::0;15728:30:::1;15617:15:::0;15658;15728:16:::1;:30::i;:44::-;15717:8;:55:::0;-1:-1:-1;;;15101:679:0:o;27162:165::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;27275:44:::1;::::0;-1:-1:-1;;;27275:44:0;;27299:10:::1;27275:44;::::0;::::1;6515:51:1::0;6582:18;;;6575:34;;;-1:-1:-1;;;;;27275:23:0;::::1;::::0;::::1;::::0;6488:18:1;;27275:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27162:165:::0;;:::o;21172:218::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;21301:21:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;21301:38:0::1;-1:-1:-1::0;;;;21301:38:0;;::::1;::::0;;;::::1;::::0;;;21350:13:::1;:32:::0;21172:218::o;18202:182::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;18305:2:::1;18290:12;;:17;;;;:::i;:::-;18282:6;:25;;18274:64;;;::::0;-1:-1:-1;;;18274:64:0;;5848:2:1;18274:64:0::1;::::0;::::1;5830:21:1::0;5887:2;5867:18;;;5860:30;5926:28;5906:18;;;5899:56;5972:18;;18274:64:0::1;5646:350:1::0;18274:64:0::1;18349:16;:25:::0;18202:182::o;14874:219::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;14929:21:::1;:27:::0;;-1:-1:-1;;;;14929:27:0::1;::::0;;-1:-1:-1;;14967:12:0::1;:16:::0;;;14994::::1;:20:::0;14951:5:::1;15025:12;:14:::0;;;15050:8:::1;:10:::0;;;15071:12:::1;:14:::0;14874:219::o;10546:192::-;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10635:22:0;::::1;10627:73;;;::::0;-1:-1:-1;;;10627:73:0;;7072:2:1;10627:73:0::1;::::0;::::1;7054:21:1::0;7111:2;7091:18;;;7084:30;7150:34;7130:18;;;7123:62;-1:-1:-1;;;7201:18:1;;;7194:36;7247:19;;10627:73:0::1;6870:402:1::0;10627:73:0::1;10711:19;10721:8;10711:9;:19::i;16483:150::-:0;9692:7;9719:6;-1:-1:-1;;;;;9719:6:0;8602:10;9866:23;9858:68;;;;-1:-1:-1;;;9858:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16593:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16593:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16483:150::o;4398:179::-;4456:7;;4488:5;4492:1;4488;:5;:::i;:::-;4476:17;;4517:1;4512;:6;;4504:46;;;;-1:-1:-1;;;4504:46:0;;7479:2:1;4504:46:0;;;7461:21:1;7518:2;7498:18;;;7491:30;7557:29;7537:18;;;7530:57;7604:18;;4504:46:0;7277:351:1;4729:224:0;4849:7;4885:12;4877:6;;;;4869:29;;;;-1:-1:-1;;;4869:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4909:9:0;4921:5;4925:1;4921;:5;:::i;:::-;4909:17;4729:224;-1:-1:-1;;;;;4729:224:0:o;22025:1687::-;-1:-1:-1;;;;;22176:24:0;;22151:4;22176:24;;;:16;:24;;;;;;;;:30;;:24;:30;;;;:67;;-1:-1:-1;;;;;;22210:27:0;;;;;;:16;:27;;;;;;;;:33;;:27;:33;;22176:67;22168:91;;;;-1:-1:-1;;;22168:91:0;;7968:2:1;22168:91:0;;;7950:21:1;8007:2;7987:18;;;7980:30;-1:-1:-1;;;8026:18:1;;;8019:41;8077:18;;22168:91:0;7766:335:1;22168:91:0;22274:16;;-1:-1:-1;;;22274:16:0;;;;22270:97;;;22314:41;22329:6;22337:9;22348:6;22314:14;:41::i;:::-;22307:48;;;;22270:97;22409:4;;-1:-1:-1;;;;;22409:4:0;22395:10;:18;;;;:52;;-1:-1:-1;22431:16:0;;-1:-1:-1;;;22431:16:0;;;;22430:17;22395:52;:90;;;;-1:-1:-1;22464:21:0;;-1:-1:-1;;;22464:21:0;;;;22395:90;:148;;;;-1:-1:-1;22530:13:0;;22520:4;22502:24;;;;:9;:24;;;;;;:41;;22395:148;22377:215;;;22570:10;:8;:10::i;:::-;22602:40;22616:6;22624:9;22635:6;22602:13;:40::i;:::-;22662:35;22679:6;22687:9;22662:16;:35::i;:::-;22661:36;22653:60;;;;-1:-1:-1;;;22653:60:0;;8308:2:1;22653:60:0;;;8290:21:1;8347:2;8327:18;;;8320:30;-1:-1:-1;;;8366:18:1;;;8359:41;8417:18;;22653:60:0;8106:335:1;22653:60:0;-1:-1:-1;;;;;22752:19:0;;22726:22;22752:19;;;:11;:19;;;;;;;;22751:20;:47;;;;-1:-1:-1;;;;;;22776:22:0;;;;;;:11;:22;;;;;;;;22775:23;22751:47;:119;;22864:6;22751:119;;;22814:34;22822:6;22830:9;22841:6;22814:7;:34::i;:::-;22887:11;;22726:144;;-1:-1:-1;;;;22887:11:0;;;;:18;;22901:4;22887:18;;;;:38;;-1:-1:-1;22921:4:0;;-1:-1:-1;;;;;22909:16:0;;;22921:4;;22909:16;;22887:38;:57;;;;-1:-1:-1;9692:7:0;9719:6;-1:-1:-1;;;;;22929:15:0;;;9719:6;;22929:15;;22887:57;:79;;;;-1:-1:-1;9692:7:0;9719:6;-1:-1:-1;;;;;22948:18:0;;;9719:6;;22948:18;;22887:79;22883:737;;;-1:-1:-1;;;;;23016:20:0;;;;;;:9;:20;;;;;;:40;;23041:14;23016:24;:40::i;:::-;-1:-1:-1;;;;;22993:20:0;;;;;;;:9;:20;;;;;;:63;;;;23091:17;;;;;;;:29;;23113:6;23091:21;:29::i;:::-;-1:-1:-1;;;;;23071:17:0;;;;;;:9;:17;;;;;:49;23158:24;23172:9;23158:13;:24::i;:::-;22883:737;;;9692:7;9719:6;-1:-1:-1;;;;;23213:15:0;;;9719:6;;23213:15;;:37;;-1:-1:-1;9692:7:0;9719:6;-1:-1:-1;;;;;23232:18:0;;;9719:6;;23232:18;23213:37;23209:411;;;-1:-1:-1;;;;;23300:20:0;;;;;;:9;:20;;;;;;:40;;23325:14;23300:24;:40::i;:::-;-1:-1:-1;;;;;23277:20:0;;;;;;;:9;:20;;;;;;:63;;;;23375:17;;;;;;;:29;;23397:6;23375:21;:29::i;:::-;-1:-1:-1;;;;;23355:17:0;;;;;;:9;:17;;;;;:49;23209:411;;;-1:-1:-1;;;;;23503:20:0;;;;;;:9;:20;;;;;;:40;;23528:14;23503:24;:40::i;:::-;-1:-1:-1;;;;;23480:20:0;;;;;;;:9;:20;;;;;;:63;;;;23579:17;;;;;;;:29;;23601:6;23579:21;:29::i;:::-;-1:-1:-1;;;;;23559:17:0;;;;;;:9;:17;;;;;:49;23209:411;23635:47;;160:25:1;;;-1:-1:-1;;;;;23635:47:0;;;23644:10;;23635:47;;148:2:1;133:18;23635:47:0;;;;;;;-1:-1:-1;23700:4:0;;22025:1687;-1:-1:-1;;;;22025:1687:0:o;4585:136::-;4643:7;4670:43;4674:1;4677;4670:43;;;;;;;;;;;;;;;;;:3;:43::i;10746:173::-;10802:16;10821:6;;-1:-1:-1;;;;;10838:17:0;;;-1:-1:-1;;;;;;10838:17:0;;;;;;10871:40;;10821:6;;;;;;;10871:40;;10802:16;10871:40;10791:128;10746:173;:::o;23720:401::-;23884:90;;;;;;;;;;;-1:-1:-1;;;23884:90:0;;;;;;;;-1:-1:-1;;;;;23884:17:0;;23847:4;23884:17;;;:9;:17;;;;;;;:90;;23920:6;;23884:21;:90::i;:::-;-1:-1:-1;;;;;23864:17:0;;;;;;;:9;:17;;;;;;:110;;;;24008:20;;;;;;;:32;;24033:6;24008:24;:32::i;:::-;-1:-1:-1;;;;;23985:20:0;;;;;;;:9;:20;;;;;;;:55;;;;24056:35;;;;;;;;;;24084:6;160:25:1;;148:2;133:18;;14:177;24056:35:0;;;;;;;;-1:-1:-1;24109:4:0;23720:401;;;;;:::o;24972:2059::-;12888:16;:23;;-1:-1:-1;;;;12888:23:0;-1:-1:-1;;;12888:23:0;;;25113:13:::1;::::0;25229:8:::1;::::0;25197:12:::1;::::0;12888:23;;25163:96:::1;::::0;25257:1:::1;::::0;25163:75:::1;::::0;;;25113:13;;25163:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;25137:122:::0;-1:-1:-1;25270:20:0::1;25293:36;:15:::0;25137:122;25293:19:::1;:36::i;:::-;25366:16;::::0;;25380:1:::1;25366:16:::0;;;;;::::1;::::0;;25270:59;;-1:-1:-1;25342:21:0::1;::::0;25366:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;25366:16:0::1;25342:40;;25411:4;25393;25398:1;25393:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25393:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;25437:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;25437:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;25393:7;;25437:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25427:4;25432:1;25427:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25427:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;25463:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;25463:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;25535:12;;25463:6:::1;::::0;25578:4;;25605::::1;::::0;25625:15:::1;::::0;25463:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;25751:12:0::1;::::0;25684:21:::1;::::0;-1:-1:-1;25664:17:0::1;::::0;-1:-1:-1;25738:33:0::1;::::0;25751:19:::1;::::0;25768:1:::1;25751:16;:19::i;:::-;25738:8;::::0;;:12:::1;:33::i;:::-;25716:55;;25782:26;25811:68;25857:11;25811:27;25825:12;;25811:9;:13;;:27;;;;:::i;:68::-;25782:97;;25890:22;25915:40;25943:11;25915:23;25929:8;;25915:9;:13;;:23;;;;:::i;:40::-;25890:65;;25966:26;25995:93;26086:1;25995:72;26055:11;25995:41;26023:12;;25995:9;:27;;:41;;;;:::i;:93::-;26131:15;::::0;26123:109:::1;::::0;25966:122;;-1:-1:-1;26102:15:0::1;::::0;-1:-1:-1;;;;;26131:15:0;;::::1;::::0;26212:5:::1;::::0;26174:18;;26102:15;26123:109;26102:15;26123:109;26174:18;26131:15;26212:5;26123:109:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;26274:5:0::1;::::0;26266:95:::1;::::0;26101:131;;-1:-1:-1;26244:16:0::1;::::0;-1:-1:-1;;;;;26274:5:0;;::::1;::::0;26341::::1;::::0;26307:14;;26244:16;26266:95;26244:16;26266:95;26307:14;26274:5;26341;26266:95:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;26382:5:0::1;::::0;;-1:-1:-1;;;;;26382:5:0;;::::1;26374:14;::::0;;;:7:::1;:14;::::0;;;;;;;:29;;;26434:5;;;::::1;26414:26:::0;;:19:::1;:26:::0;;;;;:31;;-1:-1:-1;;26414:31:0::1;26382:5:::0;26414:31:::1;::::0;;26472:5;;;::::1;26456:22:::0;;:15:::1;:22:::0;;;;;;26481:15:::1;26456:40:::0;;26524:5;;26512:34;;26524:5;::::1;6515:51:1::0;;6582:18;;;6575:34;;;26243:118:0;;-1:-1:-1;26512:34:0::1;::::0;6488:18:1;26512:34:0::1;;;;;;;-1:-1:-1::0;26612:5:0::1;::::0;-1:-1:-1;26612:5:0;26664:19;;26660:364:::1;;26700:6;::::0;26874:21:::1;::::0;26700:244:::1;::::0;-1:-1:-1;;;26700:244:0;;26776:4:::1;26700:244;::::0;::::1;10570:34:1::0;10620:18;;;10613:34;;;26700:6:0::1;10663:18:1::0;;;10656:34;;;10706:18;;;10699:34;-1:-1:-1;;;;;26874:21:0;;::::1;10749:19:1::0;;;10742:44;26914:15:0::1;10802:19:1::0;;;10795:35;26700:6:0;::::1;::::0;:22:::1;::::0;26730:18;;10504:19:1;;26700:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;26964:48:0::1;::::0;;11326:25:1;;;11382:2;11367:18;;11360:34;;;26964:48:0::1;::::0;-1:-1:-1;11299:18:1;26964:48:0::1;;;;;;;26660:364;-1:-1:-1::0;;12934:16:0;:24;;-1:-1:-1;;;;12934:24:0;;;-1:-1:-1;;;;;;;;;24972:2059:0:o;19098:2066::-;19266:11;;19248:15;;19230:33;;:15;:33;:::i;:::-;:47;19226:88;;;19294:8;:6;:8::i;:::-;9692:7;9719:6;-1:-1:-1;;;;;19342:17:0;;;9719:6;;19342:17;;;;:54;;-1:-1:-1;9692:7:0;9719:6;-1:-1:-1;;;;;19376:20:0;;;9719:6;;19376:20;;19342:54;:98;;;;-1:-1:-1;;;;;;19414:26:0;;;;;;:15;:26;;;;;;;;19413:27;19342:98;:132;;;;-1:-1:-1;19470:4:0;;-1:-1:-1;;;;;19457:17:0;;;19470:4;;19457:17;;19342:132;:166;;;;-1:-1:-1;19504:4:0;;-1:-1:-1;;;;;19491:17:0;;;19504:4;;19491:17;;19342:166;:200;;;;-1:-1:-1;19538:4:0;;-1:-1:-1;;;;;19525:17:0;;;19538:4;;19525:17;;19342:200;:243;;;;-1:-1:-1;;;;;;19559:26:0;;19580:4;19559:26;;19342:243;19324:1423;;;19630:12;;19620:6;:22;;19612:41;;;;-1:-1:-1;;;19612:41:0;;11607:2:1;19612:41:0;;;11589:21:1;11646:1;11626:18;;;11619:29;-1:-1:-1;;;11664:18:1;;;11657:36;11710:18;;19612:41:0;11405:329:1;19612:41:0;-1:-1:-1;;;;;14840:18:0;;19668:32;14840:18;;;:9;:18;;;;;;19801:16;;19764:33;19791:6;14840:18;19764:33;:::i;:::-;:53;;19738:150;;;;-1:-1:-1;;;19738:150:0;;11941:2:1;19738:150:0;;;11923:21:1;11980:2;11960:18;;;11953:30;12019:34;11999:18;;;11992:62;-1:-1:-1;;;12070:18:1;;;12063:33;12113:19;;19738:150:0;11739:399:1;19738:150:0;19929:16;;;19943:1;19929:16;;;;;;;;19905:21;;19929:16;;;;;;;;-1:-1:-1;;19970:6:0;;:13;;;-1:-1:-1;;;19970:13:0;;;;19905:40;;-1:-1:-1;;;;;;19970:6:0;;;;:11;;-1:-1:-1;19970:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19960:4;19965:1;19960:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19960:23:0;;;-1:-1:-1;;;;;19960:23:0;;;;;20016:4;19998;20003:1;19998:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19998:23:0;;;:7;;;;;;;;;:23;20054:6;;:33;;-1:-1:-1;;;20054:33:0;;20036:15;;20054:6;;;;;:19;;:33;;20074:6;;20082:4;;20054:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20054:33:0;;;;;;;;;;;;:::i;:::-;20088:1;20054:36;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;20111:30:0;;;;;;:19;:30;;;;;;;;20054:36;;-1:-1:-1;20111:30:0;;:36;;:30;:36;:94;;;;-1:-1:-1;;;;;;20151:26:0;;;;;;:15;:26;;;;;;20190:15;;20151:36;;20180:7;20151:36;:::i;:::-;:54;20111:94;:118;;;;;20219:10;;20209:7;:20;20111:118;20107:629;;;20264:5;:17;;-1:-1:-1;;;;;;20264:17:0;-1:-1:-1;;;;;20264:17:0;;;;;;;;20300:10;:20;;;20357:15;20339;:33;20396:27;;;6515:51:1;;;6597:2;6582:18;;6575:34;;;20396:27:0;;6488:18:1;20396:27:0;;;;;;;20107:629;;;-1:-1:-1;;;;;20464:30:0;;;;;;:19;:30;;;;;;;;:37;;;:62;;;20516:10;;20506:7;:20;20464:62;20460:276;;;20561:5;:17;;-1:-1:-1;;;;;;20561:17:0;-1:-1:-1;;;;;20561:17:0;;;;;;;;20597:10;:20;;;20654:15;20636;:33;20693:27;;;6515:51:1;;;6597:2;6582:18;;6575:34;;;20693:27:0;;6488:18:1;20693:27:0;;;;;;;20460:276;19597:1150;;;19324:1423;9692:7;9719:6;-1:-1:-1;;;;;20775:17:0;;;9719:6;;20775:17;;;;:54;;-1:-1:-1;9692:7:0;9719:6;-1:-1:-1;;;;;20809:20:0;;;9719:6;;20809:20;;20775:54;:95;;;;-1:-1:-1;;;;;;20847:23:0;;;;;;:15;:23;;;;;;;;20846:24;20775:95;:126;;;;-1:-1:-1;20897:4:0;;-1:-1:-1;;;;;20887:14:0;;;20897:4;;20887:14;;20775:126;:169;;;;-1:-1:-1;;;;;;20918:26:0;;20939:4;20918:26;;20775:169;20757:400;;;20989:12;;20979:6;:22;;20971:41;;;;-1:-1:-1;;;20971:41:0;;11607:2:1;20971:41:0;;;11589:21:1;11646:1;11626:18;;;11619:29;-1:-1:-1;;;11664:18:1;;;11657:36;11710:18;;20971:41:0;11405:329:1;20971:41:0;21031:5;;-1:-1:-1;;;;;21031:15:0;;;:5;;:15;21027:116;;21082:5;;21089:10;;21072:28;;;-1:-1:-1;;;;;21082:5:0;;;6515:51:1;;6597:2;6582:18;;6575:34;;;;21072:28:0;;6488:18:1;21072:28:0;;;;;;;21119:8;:6;:8::i;24622:342::-;-1:-1:-1;;;;;24759:19:0;;24733:4;24759:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;24782:22:0;;;;;;:11;:22;;;;;;;;24759:45;24755:90;;;-1:-1:-1;24828:5:0;24821:12;;24755:90;24869:4;;-1:-1:-1;;;;;24859:14:0;;;24869:4;;24859:14;;:35;;-1:-1:-1;24890:4:0;;-1:-1:-1;;;;;24877:17:0;;;24890:4;;24877:17;24859:35;24855:80;;;-1:-1:-1;24918:5:0;24911:12;;24855:80;-1:-1:-1;24952:4:0;24622:342;;;;:::o;24129:485::-;24293:4;;24249:7;;;;-1:-1:-1;;;;;24293:17:0;;;:4;;:17;:74;;24359:8;;24293:74;;;24326:17;;24293:74;24269:98;-1:-1:-1;24378:17:0;24398:34;24428:3;24398:25;:6;24269:98;24398:10;:25::i;:34::-;24488:4;24470:24;;;;:9;:24;;;;;;24378:54;;-1:-1:-1;24470:39:0;;24378:54;24470:28;:39::i;:::-;24461:4;24443:24;;;;:9;:24;;;;;;;:66;;;;24525:42;;-1:-1:-1;;;;;24525:42:0;;;;;;;24557:9;160:25:1;;148:2;133:18;;14:177;24525:42:0;;;;;;;;24585:21;:6;24596:9;24585:10;:21::i;:::-;24578:28;24129:485;-1:-1:-1;;;;;;24129:485:0:o;4961:246::-;5019:7;5043:1;5048;5043:6;5039:47;;-1:-1:-1;5073:1:0;5066:8;;5039:47;5096:9;5108:5;5112:1;5108;:5;:::i;:::-;5096:17;-1:-1:-1;5141:1:0;5132:5;5136:1;5096:17;5132:5;:::i;:::-;:10;5124:56;;;;-1:-1:-1;;;5124:56:0;;13965:2:1;5124:56:0;;;13947:21:1;14004:2;13984:18;;;13977:30;14043:34;14023:18;;;14016:62;-1:-1:-1;;;14094:18:1;;;14087:31;14135:19;;5124:56:0;13763:397:1;5215:132:0;5273:7;5300:39;5304:1;5307;5300:39;;;;;;;;;;;;;;;;;:3;:39::i;17156:138::-;17202:15;;17194:5;:23;;-1:-1:-1;;;;;;17194:23:0;-1:-1:-1;;;;;17202:15:0;;;17194:23;;;;;;17202:15;17228:10;:14;17271:15;17253;:33;17156:138::o;5355:223::-;5475:7;5510:12;5503:5;5495:28;;;;-1:-1:-1;;;5495:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5534:9:0;5546:5;5550:1;5546;: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;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:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:118::-;2593:5;2586:13;2579:21;2572:5;2569:32;2559:60;;2615:1;2612;2605:12;2630:382;2695:6;2703;2756:2;2744:9;2735:7;2731:23;2727:32;2724:52;;;2772:1;2769;2762:12;2724:52;2811:9;2798:23;2830:31;2855:5;2830:31;:::i;:::-;2880:5;-1:-1:-1;2937:2:1;2922:18;;2909:32;2950:30;2909:32;2950:30;:::i;:::-;2999:7;2989:17;;;2630:382;;;;;:::o;3017:180::-;3076:6;3129:2;3117:9;3108:7;3104:23;3100:32;3097:52;;;3145:1;3142;3135:12;3097:52;-1:-1:-1;3168:23:1;;3017:180;-1:-1:-1;3017:180:1:o;3202:388::-;3270:6;3278;3331:2;3319:9;3310:7;3306:23;3302:32;3299:52;;;3347:1;3344;3337:12;3299:52;3386:9;3373:23;3405:31;3430:5;3405:31;:::i;:::-;3455:5;-1:-1:-1;3512:2:1;3497:18;;3484:32;3525:33;3484:32;3525:33;:::i;3595:316::-;3672:6;3680;3688;3741:2;3729:9;3720:7;3716:23;3712:32;3709:52;;;3757:1;3754;3747:12;3709:52;-1:-1:-1;;3780:23:1;;;3850:2;3835:18;;3822:32;;-1:-1:-1;3901:2:1;3886:18;;;3873:32;;3595:316;-1:-1:-1;3595:316:1:o;3916:309::-;3981:6;3989;4042:2;4030:9;4021:7;4017:23;4013:32;4010:52;;;4058:1;4055;4048:12;4010:52;4097:9;4084:23;4116:28;4138:5;4116:28;:::i;4456:356::-;4658:2;4640:21;;;4677:18;;;4670:30;4736:34;4731:2;4716:18;;4709:62;4803:2;4788:18;;4456:356::o;5162:127::-;5223:10;5218:3;5214:20;5211:1;5204:31;5254:4;5251:1;5244:15;5278:4;5275:1;5268:15;5294:125;5359:9;;;5380:10;;;5377:36;;;5393:18;;:::i;5424:217::-;5464:1;5490;5480:132;;5534:10;5529:3;5525:20;5522:1;5515:31;5569:4;5566:1;5559:15;5597:4;5594:1;5587:15;5480:132;-1:-1:-1;5626:9:1;;5424:217::o;6001:335::-;6203:2;6185:21;;;6242:2;6222:18;;;6215:30;-1:-1:-1;;;6276:2:1;6261:18;;6254:41;6327:2;6312:18;;6001:335::o;6620:245::-;6687:6;6740:2;6728:9;6719:7;6715:23;6711:32;6708:52;;;6756:1;6753;6746:12;6708:52;6788:9;6782:16;6807:28;6829:5;6807:28;:::i;7633:128::-;7700:9;;;7721:11;;;7718:37;;;7735:18;;:::i;8446:127::-;8507:10;8502:3;8498:20;8495:1;8488:31;8538:4;8535:1;8528:15;8562:4;8559:1;8552:15;8578:127;8639:10;8634:3;8630:20;8627:1;8620:31;8670:4;8667:1;8660:15;8694:4;8691:1;8684:15;8710:251;8780:6;8833:2;8821:9;8812:7;8808:23;8804:32;8801:52;;;8849:1;8846;8839:12;8801:52;8881:9;8875:16;8900:31;8925:5;8900:31;:::i;8966:461::-;9019:3;9057:5;9051:12;9084:6;9079:3;9072:19;9110:4;9139:2;9134:3;9130:12;9123:19;;9176:2;9169:5;9165:14;9197:1;9207:195;9221:6;9218:1;9215:13;9207:195;;;9286:13;;-1:-1:-1;;;;;9282:39:1;9270:52;;9342:12;;;;9377:15;;;;9318:1;9236:9;9207:195;;;-1:-1:-1;9418:3:1;;8966:461;-1:-1:-1;;;;;8966:461:1:o;9432:582::-;9731:6;9720:9;9713:25;9774:6;9769:2;9758:9;9754:18;9747:34;9817:3;9812:2;9801:9;9797:18;9790:31;9694:4;9838:57;9890:3;9879:9;9875:19;9867:6;9838:57;:::i;:::-;-1:-1:-1;;;;;9931:32:1;;;;9926:2;9911:18;;9904:60;-1:-1:-1;9995:3:1;9980:19;9973:35;9830:65;9432:582;-1:-1:-1;;;9432:582:1:o;10841:306::-;10929:6;10937;10945;10998:2;10986:9;10977:7;10973:23;10969:32;10966:52;;;11014:1;11011;11004:12;10966:52;11043:9;11037:16;11027:26;;11093:2;11082:9;11078:18;11072:25;11062:35;;11137:2;11126:9;11122:18;11116:25;11106:35;;10841:306;;;;;:::o;12143:332::-;12350:6;12339:9;12332:25;12393:2;12388;12377:9;12373:18;12366:30;12313:4;12413:56;12465:2;12454:9;12450:18;12442:6;12413:56;:::i;:::-;12405:64;12143:332;-1:-1:-1;;;;12143:332:1:o;12480:1105::-;12575:6;12606:2;12649;12637:9;12628:7;12624:23;12620:32;12617:52;;;12665:1;12662;12655:12;12617:52;12698:9;12692:16;12727:18;12768:2;12760:6;12757:14;12754:34;;;12784:1;12781;12774:12;12754:34;12822:6;12811:9;12807:22;12797:32;;12867:7;12860:4;12856:2;12852:13;12848:27;12838:55;;12889:1;12886;12879:12;12838:55;12918:2;12912:9;12940:2;12936;12933:10;12930:36;;;12946:18;;:::i;:::-;12992:2;12989:1;12985:10;13024:2;13018:9;13087:2;13083:7;13078:2;13074;13070:11;13066:25;13058:6;13054:38;13142:6;13130:10;13127:22;13122:2;13110:10;13107:18;13104:46;13101:72;;;13153:18;;:::i;:::-;13189:2;13182:22;13239:18;;;13273:15;;;;-1:-1:-1;13315:11:1;;;13311:20;;;13343:19;;;13340:39;;;13375:1;13372;13365:12;13340:39;13399:11;;;;13419:135;13435:6;13430:3;13427:15;13419:135;;;13501:10;;13489:23;;13452:12;;;;13532;;;;13419:135;;;13573:6;12480:1105;-1:-1:-1;;;;;;;;12480:1105:1:o;13590:168::-;13630:7;13696:1;13692;13688:6;13684:14;13681:1;13678:21;13673:1;13666:9;13659:17;13655:45;13652:71;;;13703:18;;:::i;:::-;-1:-1:-1;13743:9:1;;13590:168::o

Swarm Source

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