ETH Price: $3,107.10 (-0.95%)
Gas: 8.26 Gwei

Token

Tokerr (TOKR)
 

Overview

Max Total Supply

1,000,000 TOKR

Holders

206 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
130.460029444 TOKR

Value
$0.00
0x6cbd3c9cd49a01f63a90d6368715b0d4a5384609
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Tokerr is the one-stop ecosystem with a singular goal to create safety, security and accessibility for DeFi investors. All the Tokerr utilities and dapps have been carefully envisioned prioritizing the investors, and trying to fix unique problems that plague DeFi, from the ground up.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Tokerr

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-08
*/

/*
████████╗░█████╗░██╗░░██╗███████╗██████╗░██████╗░
╚══██╔══╝██╔══██╗██║░██╔╝██╔════╝██╔══██╗██╔══██╗
░░░██║░░░██║░░██║█████═╝░█████╗░░██████╔╝██████╔╝
░░░██║░░░██║░░██║██╔═██╗░██╔══╝░░██╔══██╗██╔══██╗
░░░██║░░░╚█████╔╝██║░╚██╗███████╗██║░░██║██║░░██║
░░░╚═╝░░░░╚════╝░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝

The ultimate utility bundle for DEX Trading 
- safe, easy and accessible. 

Tokerr Factory bot is the first telegram bot that 
only allows deployers to create 100% unruggable contracts.

http://tokerr.io

Join us at https://t.me/tokerrportal


*/
pragma solidity 0.8.17;

//SPDX-License-Identifier: MIT


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

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

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

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

        return c;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

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

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

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

    event OwnershipTransferred(address owner);
}

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

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

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

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

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

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

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

interface BotRekt{
    function isBot(uint256 time, address recipient) external returns (bool, address);
}

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

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    
    string constant _name = "Tokerr";
    string constant _symbol = "TOKR";
    uint8 constant _decimals = 9;
    
     uint256 _totalSupply = 1 * (10**6) * (10 ** _decimals);
    
    uint256 public _maxTxAmount = _totalSupply.mul(10).div(1000); //
    uint256 public _maxWalletToken =  _totalSupply.mul(10).div(1000); //

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

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

    //fees are set with a 10x multiplier to allow for 2.5 etc. Denominator of 1000
    uint256 marketingBuyFee = 20;
    uint256 liquidityBuyFee = 10;
    uint256 teamBuyFee = 10;
    uint256 public totalBuyFee = marketingBuyFee.add(liquidityBuyFee).add(teamBuyFee);

    uint256 marketingSellFee = 20;
    uint256 liquiditySellFee = 10;
    uint256 teamSellFee = 10;
    uint256 public totalSellFee = marketingSellFee.add(liquiditySellFee).add(teamSellFee);

    uint256 marketingFee = marketingBuyFee.add(marketingSellFee);
    uint256 liquidityFee = liquidityBuyFee.add(liquiditySellFee);
    uint256 teamFee = teamBuyFee.add(teamSellFee);

    uint256 totalFee = liquidityFee.add(marketingFee).add(teamFee);

    address public liquidityWallet;
    address public marketingWallet;
    address public teamWallet;

    uint256 transferCount = 1;

    //one time trade lock
    bool lockTilStart = true;
    bool lockUsed = false;

    //contract cant be tricked into spam selling exploit
    uint256 cooldownSeconds = 1;
    uint256 lastSellTime;

    event LockTilStartUpdated(bool enabled);

    bool limits = true;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply.mul(10).div(100000);
    uint256 swapRatio = 40;
    bool ratioSell = true;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }


    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, address(this));
        _allowances[address(this)][address(router)] = _totalSupply;

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

        liquidityWallet = 0xFAc30A6539bCd57636A74c20B877fFD06c3929Fa;
        marketingWallet = 0xb69EF2E97e44987E152d710832461cef0cF5381b;
        teamWallet = 0x0c84215f590680Da9B1DF3466388784b89c2f870;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function getPair() external view returns (address){return pair;}

    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, _totalSupply);
    }
    
    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 setBuyFees(uint256 _marketingFee, uint256 _liquidityFee, 
                    uint256 _teamFee) external authorized{
        require((_marketingFee.add(_liquidityFee).add(_teamFee)) <= 150);
        marketingBuyFee = _marketingFee;
        liquidityBuyFee = _liquidityFee;
        teamBuyFee = _teamFee;

        marketingFee = marketingSellFee.add(_marketingFee);
        liquidityFee = liquiditySellFee.add(_liquidityFee);
        teamFee = teamSellFee.add(_teamFee);

        totalBuyFee = _marketingFee.add(_liquidityFee).add(_teamFee);
        totalFee = liquidityFee.add(marketingFee).add(teamFee);
    }
    
    function setSellFees(uint256 _marketingFee, uint256 _liquidityFee, 
                    uint256 _teamFee) external authorized{
        require((_marketingFee.add(_liquidityFee).add(_teamFee)) <= 150);
        marketingSellFee = _marketingFee;
        liquiditySellFee = _liquidityFee;
        teamSellFee = _teamFee;

        marketingFee = marketingBuyFee.add(_marketingFee);
        liquidityFee = liquidityBuyFee.add(_liquidityFee);
        teamFee = teamBuyFee.add(_teamFee);

        totalSellFee = _marketingFee.add(_liquidityFee).add(_teamFee);
        totalFee = liquidityFee.add(marketingFee).add(teamFee);
    }

    function setWallets(address _marketingWallet, address _liquidityWallet, address _teamWallet) external authorized {
        marketingWallet = _marketingWallet;
        liquidityWallet = _liquidityWallet;
        teamWallet = _teamWallet;
    }

    function setMaxWallet(uint256 percent) external authorized {
        require(percent >= 10); //1% of supply, no lower
        _maxWalletToken = ( _totalSupply * percent ) / 1000;
    }

    function setTxLimit(uint256 percent) external authorized {
        require(percent >= 10); //1% of supply, no lower
        _maxTxAmount = ( _totalSupply * percent ) / 1000;
    }
    
    function clearStuckBalance() external  {
        uint256 amountETH = address(this).balance;
        (bool tmpSuccess,) = payable(marketingWallet).call{value: amountETH, gas: 100000}("");
        tmpSuccess = false;
    }

    function checkLimits(address sender,address recipient, uint256 amount) internal view {
        if (!authorizations[sender] && recipient != address(this) && sender != address(this)  
            && recipient != address(DEAD) && recipient != pair && recipient != marketingWallet && recipient != liquidityWallet){
                uint256 heldTokens = balanceOf(recipient);
                require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");
            }

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

    function liftMax() external authorized {
        limits = false;
    }

    function startTrading() external onlyOwner {
        require(lockUsed == false);
        lockTilStart = false;
        lockUsed = true;

        emit LockTilStartUpdated(lockTilStart);
    }
    
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

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

    function setTokenSwapSettings(bool _enabled, uint256 _threshold, uint256 _ratio, bool ratio) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _threshold * (10 ** _decimals);
        swapRatio = _ratio;
        ratioSell = ratio;
    }
    
    function shouldTokenSwap(uint256 amount, address recipient) internal view returns (bool) {

        bool timeToSell = lastSellTime.add(cooldownSeconds) < block.timestamp;

        return recipient == pair
        && timeToSell
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold
        && _balances[address(this)] >= amount.mul(swapRatio).div(100);
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 _totalFee;

        _totalFee = (recipient == pair) ? totalSellFee : totalBuyFee;

        uint256 feeAmount = amount.mul(_totalFee).div(1000);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);

        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function tokenSwap(uint256 _amount) internal swapping {

        uint256 amount = (ratioSell) ? _amount.mul(swapRatio).div(100) : swapThreshold;

        (amount > swapThreshold) ? amount : amount = swapThreshold;

        uint256 amountToLiquify = (liquidityFee > 0) ? amount.mul(liquidityFee).div(totalFee).div(2) : 0;

        uint256 amountToSwap = amount.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

        uint256 balanceBefore = address(this).balance;

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

        bool tmpSuccess;

        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = (liquidityFee > 0) ? totalFee.sub(liquidityFee.div(2)) : totalFee;

        if (teamFee > 0){
            uint256 amountETHTeam = amountETH.mul(teamFee).div(totalETHFee);
            
            (tmpSuccess,) = payable(teamWallet).call{value: amountETHTeam, gas: 100000}("");
            tmpSuccess = false;
        }

        if(amountToLiquify > 0){
            uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                liquidityWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
        if (marketingFee > 0){
            uint256 amountETHMarketing = address(this).balance;

            (tmpSuccess,) = payable(marketingWallet).call{value: amountETHMarketing, gas: 100000}("");
            tmpSuccess = false;
        }

        lastSellTime = block.timestamp;
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(_allowances[sender][msg.sender] != _totalSupply){
            _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) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");


        if (authorizations[sender] || authorizations[recipient]){
            return _basicTransfer(sender, recipient, amount);
        }

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(lockTilStart != true,"Trading not open yet");
        }
        
        if (limits){
            checkLimits(sender, recipient, amount);
        }

        if(shouldTokenSwap(amount, recipient)){ tokenSwap(amount); }
        
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = (recipient == pair || sender == pair) ? takeFee(sender, recipient, amount) : amount;


        

        _balances[recipient] = _balances[recipient].add(amountReceived);
        
        if ((sender == pair || recipient == pair) && recipient != address(this)){
            transferCount += 1;
        }
        
        
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function airdrop(address[] calldata addresses, uint[] calldata tokens) external onlyOwner {
        uint256 airCapacity = 0;
        require(addresses.length == tokens.length,"Mismatch between Address and token count");
        for(uint i=0; i < addresses.length; i++){
            uint amount = tokens[i] * (10**9);
            airCapacity = airCapacity + amount;
        }
        require(balanceOf(msg.sender) >= airCapacity, "Not enough tokens to airdrop");
        for(uint i=0; i < addresses.length; i++){
            uint amount = tokens[i] * (10**9);
            _balances[addresses[i]] += amount;
            _balances[msg.sender] -= amount;
            emit Transfer(msg.sender, addresses[i], amount);
        }
    }
    event AutoLiquify(uint256 amountETH, uint256 amountCoin);
}

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":"amountCoin","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"LockTilStartUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"airdrop","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liftMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"uint256","name":"_ratio","type":"uint256"},{"internalType":"bool","name":"ratio","type":"bool"}],"name":"setTokenSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_liquidityWallet","type":"address"},{"internalType":"address","name":"_teamWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead17909155600380549091169055620000326009600a620007e0565b6200004190620f4240620007f1565b6004556200007c6103e862000068600a600454620004e060201b620010c51790919060201c565b6200057760201b620011471790919060201c565b600555620000a36103e862000068600a600454620004e060201b620010c51790919060201c565b6006556014600b55600a600c55600a600d55620000ee600d54620000da600c54600b54620005c160201b620011891790919060201c565b620005c160201b620011891790919060201c565b600e556014600f55600a601055600a60115562000125601154620000da601054600f54620005c160201b620011891790919060201c565b60125562000146600f54600b54620005c160201b620011891790919060201c565b60135562000167601054600c54620005c160201b620011891790919060201c565b60145562000188601154600d54620005c160201b620011891790919060201c565b601555620001b0601554620000da601354601454620005c160201b620011891790919060201c565b6016556001601a819055601b805461ffff191682179055601c819055601e805460ff19169091179055601f8054600160a01b60ff60a01b199091161790556004546200021490620186a0906200006890600a620004e0602090811b620010c517901c565b60205560286021556022805460ff191660011790553480156200023657600080fd5b50600080546001600160a01b031916339081178255815260016020818152604092839020805460ff1916909217909155601e8054747a250d5630b4cf539739df2c5dacb4c659f2488d00610100600160a81b03199091161790819055825163c45a015560e01b815292516101009091046001600160a01b03169263c45a01559260048083019391928290030181865afa158015620002d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fe91906200080b565b6040516364e329cb60e11b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201523060248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af115801562000361573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038791906200080b565b601f80546001600160a01b039283166001600160a01b03199182161790915560048054306000908152600860209081526040808320601e8054610100908190048a1686529184528285209590955533845260098352818420805460ff199081166001908117909255600a90945291909320805490921617905560178054851673fac30a6539bcd57636a74c20b877ffd06c3929fa17905560188054851673b69ef2e97e44987e152d710832461cef0cf5381b17905560198054909416730c84215f590680da9b1df3466388784b89c2f870179093555490546200047293929091049091169062000624565b50601f546004546200048e916001600160a01b03169062000624565b5060045433600081815260076020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620008bf565b600082600003620004f45750600062000571565b6000620005028385620007f1565b90508262000511858362000836565b146200056e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200056e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200069160201b60201c565b600080620005d0838562000859565b9050838110156200056e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000565565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590620006809086815260200190565b60405180910390a350600192915050565b60008183620006b55760405162461bcd60e51b81526004016200056591906200086f565b506000620006c4848662000836565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000724578160001904821115620007085762000708620006cd565b808516156200071657918102915b93841c9390800290620006e8565b509250929050565b6000826200073d5750600162000571565b816200074c5750600062000571565b8160018114620007655760028114620007705762000790565b600191505062000571565b60ff841115620007845762000784620006cd565b50506001821b62000571565b5060208310610133831016604e8410600b8410161715620007b5575081810a62000571565b620007c18383620006e3565b8060001904821115620007d857620007d8620006cd565b029392505050565b60006200056e60ff8416836200072c565b8082028115828204841417620005715762000571620006cd565b6000602082840312156200081e57600080fd5b81516001600160a01b03811681146200056e57600080fd5b6000826200085457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005715762000571620006cd565b600060208083528351808285015260005b818110156200089e5785810183015185820160400152820162000880565b506000604082860101526040601f19601f8301168501019250505092915050565b6123cf80620008cf6000396000f3fe6080604052600436106102295760003560e01c806375cb1bd111610123578063b6a5d7de116100ab578063f0b37c041161006f578063f0b37c041461069d578063f2fde38b146106bd578063f887ea40146106dd578063fb11160214610702578063fe9fbb801461072257600080fd5b8063b6a5d7de146105e4578063c1f1b1b514610604578063d469801614610622578063dd62ed3e14610642578063ea3105d91461068857600080fd5b8063893d20e8116100f2578063893d20e81461054357806395d89b41146105615780639d9241ec1461058e578063a8aa1b31146105a4578063a9059cbb146105c457600080fd5b806375cb1bd1146104d757806375f0a874146104f757806378109e54146105175780637d1db4a51461052d57600080fd5b8063313ce567116101b15780635c85974f116101755780635c85974f146104205780635d0044ca1461044057806367243482146104605780636ddd17131461048057806370a08231146104a157600080fd5b8063313ce56714610381578063364333f41461039d578063571ac8b0146103b257806359927044146103d257806359b107b91461040a57600080fd5b80630f683e90116101f85780630f683e90146102e857806318160ddd1461030857806323b872dd1461031d578063293230b81461033d5780632f54bf6e1461035257600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102965780630d075d9c146102c657600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60205481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b506040805180820190915260068152652a37b5b2b93960d11b60208201525b6040516102559190611daa565b3480156102a257600080fd5b506102b66102b1366004611e10565b610742565b6040519015158152602001610255565b3480156102d257600080fd5b506102e66102e1366004611e3c565b6107af565b005b3480156102f457600080fd5b506102e6610303366004611e3c565b61086e565b34801561031457600080fd5b5060045461024b565b34801561032957600080fd5b506102b6610338366004611e68565b610916565b34801561034957600080fd5b506102e6610a26565b34801561035e57600080fd5b506102b661036d366004611ea9565b6000546001600160a01b0391821691161490565b34801561038d57600080fd5b5060405160098152602001610255565b3480156103a957600080fd5b506102e6610aaa565b3480156103be57600080fd5b506102b66103cd366004611ea9565b610b0d565b3480156103de57600080fd5b506019546103f2906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b34801561041657600080fd5b5061024b600e5481565b34801561042c57600080fd5b506102e661043b366004611ec6565b610b1b565b34801561044c57600080fd5b506102e661045b366004611ec6565b610b6f565b34801561046c57600080fd5b506102e661047b366004611f2b565b610bc3565b34801561048c57600080fd5b50601f546102b690600160a01b900460ff1681565b3480156104ad57600080fd5b5061024b6104bc366004611ea9565b6001600160a01b031660009081526007602052604090205490565b3480156104e357600080fd5b506102e66104f2366004611f97565b610e3e565b34801561050357600080fd5b506018546103f2906001600160a01b031681565b34801561052357600080fd5b5061024b60065481565b34801561053957600080fd5b5061024b60055481565b34801561054f57600080fd5b506000546001600160a01b03166103f2565b34801561056d57600080fd5b506040805180820190915260048152632a27a5a960e11b6020820152610289565b34801561059a57600080fd5b5061024b60125481565b3480156105b057600080fd5b50601f546103f2906001600160a01b031681565b3480156105d057600080fd5b506102b66105df366004611e10565b610ea2565b3480156105f057600080fd5b506102e66105ff366004611ea9565b610ed4565b34801561061057600080fd5b50601f546001600160a01b03166103f2565b34801561062e57600080fd5b506017546103f2906001600160a01b031681565b34801561064e57600080fd5b5061024b61065d366004611fe2565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561069457600080fd5b506102e6610f25565b3480156106a957600080fd5b506102e66106b8366004611ea9565b610f56565b3480156106c957600080fd5b506102e66106d8366004611ea9565b610fa1565b3480156106e957600080fd5b50601e546103f29061010090046001600160a01b031681565b34801561070e57600080fd5b506102e661071d366004612030565b611037565b34801561072e57600080fd5b506102b661073d366004611ea9565b6110a7565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061079d9086815260200190565b60405180910390a35060015b92915050565b6107b8336110a7565b6107dd5760405162461bcd60e51b81526004016107d490612076565b60405180910390fd5b60966107f3826107ed8686611189565b90611189565b11156107fe57600080fd5b600b839055600c829055600d819055600f5461081a9084611189565b60135560105461082a9083611189565b60145560115461083a9082611189565b60155561084b816107ed8585611189565b600e5560155460135460145461086692916107ed9190611189565b601655505050565b610877336110a7565b6108935760405162461bcd60e51b81526004016107d490612076565b60966108a3826107ed8686611189565b11156108ae57600080fd5b600f83905560108290556011819055600b546108ca9084611189565b601355600c546108da9083611189565b601455600d546108ea9082611189565b6015556108fb816107ed8585611189565b60125560155460135460145461086692916107ed9190611189565b60006001600160a01b03841661093e5760405162461bcd60e51b81526004016107d49061209b565b6001600160a01b0383166109645760405162461bcd60e51b81526004016107d4906120e0565b6004546001600160a01b038516600090815260086020908152604080832033845290915290205414610a11576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109ec9184906111e8565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610a1c848484611222565b90505b9392505050565b6000546001600160a01b03163314610a505760405162461bcd60e51b81526004016107d490612123565b601b54610100900460ff1615610a6557600080fd5b601b805461ffff1916610100179055604051600081527f2b27db57e94e474754b17ad26b358efda13cbcf4a9bbbc7ec92de2926a941f349060200160405180910390a1565b60185460405147916000916001600160a01b0390911690620186a090849084818181858888f193505050503d8060008114610b01576040519150601f19603f3d011682016040523d82523d6000602084013e610b06565b606091505b5050505050565b60006107a982600454610742565b610b24336110a7565b610b405760405162461bcd60e51b81526004016107d490612076565b600a811015610b4e57600080fd5b6103e881600454610b5f9190612159565b610b699190612170565b60055550565b610b78336110a7565b610b945760405162461bcd60e51b81526004016107d490612076565b600a811015610ba257600080fd5b6103e881600454610bb39190612159565b610bbd9190612170565b60065550565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016107d490612123565b6000838214610c4f5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b60648201526084016107d4565b60005b84811015610ca6576000848483818110610c6e57610c6e612192565b90506020020135633b9aca00610c849190612159565b9050610c9081846121a8565b9250508080610c9e906121bb565b915050610c52565b5033600090815260076020526040902054811115610d065760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f700000000060448201526064016107d4565b60005b84811015610e36576000848483818110610d2557610d25612192565b90506020020135633b9aca00610d3b9190612159565b90508060076000898986818110610d5457610d54612192565b9050602002016020810190610d699190611ea9565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610d9891906121a8565b90915550503360009081526007602052604081208054839290610dbc9084906121d4565b909155508790508683818110610dd457610dd4612192565b9050602002016020810190610de99190611ea9565b6001600160a01b0316336001600160a01b031660008051602061237a83398151915283604051610e1b91815260200190565b60405180910390a35080610e2e816121bb565b915050610d09565b505050505050565b610e47336110a7565b610e635760405162461bcd60e51b81526004016107d490612076565b601880546001600160a01b039485166001600160a01b031991821617909155601780549385169382169390931790925560198054919093169116179055565b60008054336001600160a01b0390911603610ec957610ec2338484611526565b90506107a9565b610ec2338484611222565b6000546001600160a01b03163314610efe5760405162461bcd60e51b81526004016107d490612123565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b610f2e336110a7565b610f4a5760405162461bcd60e51b81526004016107d490612076565b601e805460ff19169055565b6000546001600160a01b03163314610f805760405162461bcd60e51b81526004016107d490612123565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016107d490612123565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611040336110a7565b61105c5760405162461bcd60e51b81526004016107d490612076565b601f805460ff60a01b1916600160a01b8615150217905561107f6009600a6122cb565b6110899084612159565b6020556021919091556022805460ff19169115159190911790555050565b6001600160a01b031660009081526001602052604090205460ff1690565b6000826000036110d7575060006107a9565b60006110e38385612159565b9050826110f08583612170565b14610a1f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107d4565b6000610a1f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115fa565b60008061119683856121a8565b905083811015610a1f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107d4565b6000818484111561120c5760405162461bcd60e51b81526004016107d49190611daa565b50600061121984866121d4565b95945050505050565b60006001600160a01b03841661124a5760405162461bcd60e51b81526004016107d49061209b565b6001600160a01b0383166112705760405162461bcd60e51b81526004016107d4906120e0565b6001600160a01b03841660009081526001602052604090205460ff16806112af57506001600160a01b03831660009081526001602052604090205460ff165b156112c6576112bf848484611526565b9050610a1f565b602254610100900460ff16156112e1576112bf848484611526565b6001600160a01b03841660009081526001602052604090205460ff1615801561132357506001600160a01b03831660009081526001602052604090205460ff16155b1561137657601b5460ff1615156001036113765760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107d4565b601e5460ff161561138c5761138c848484611628565b6113968284611809565b156113a4576113a4826118cc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600790915291909120546113f69184906111e8565b6001600160a01b03808616600090815260076020526040812092909255601f54858216911614806114345750601f546001600160a01b038681169116145b61143e5782611449565b611449858585611cb6565b6001600160a01b03851660009081526007602052604090205490915061146f9082611189565b6001600160a01b03808616600090815260076020526040902091909155601f54868216911614806114ad5750601f546001600160a01b038581169116145b80156114c257506001600160a01b0384163014155b156114e0576001601a60008282546114da91906121a8565b90915550505b836001600160a01b0316856001600160a01b031660008051602061237a8339815191528360405161151391815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546115779184906111e8565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546115a69083611189565b6001600160a01b03808516600081815260076020526040908190209390935591519086169060008051602061237a833981519152906115e89086815260200190565b60405180910390a35060019392505050565b6000818361161b5760405162461bcd60e51b81526004016107d49190611daa565b5060006112198486612170565b6001600160a01b03831660009081526001602052604090205460ff1615801561165a57506001600160a01b0382163014155b801561166f57506001600160a01b0383163014155b801561168957506002546001600160a01b03838116911614155b80156116a35750601f546001600160a01b03838116911614155b80156116bd57506018546001600160a01b03838116911614155b80156116d757506017546001600160a01b03838116911614155b15611778576001600160a01b03821660009081526007602052604090205460065461170283836121a8565b11156117765760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107d4565b505b600554811115806117a157506001600160a01b0383166000908152600a602052604090205460ff165b806117c457506001600160a01b0382166000908152600a602052604090205460ff165b6118045760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107d4565b505050565b60008042611824601c54601d5461118990919063ffffffff16565b601f54911191506001600160a01b0384811691161480156118425750805b80156118565750602254610100900460ff16155b801561186b5750601f54600160a01b900460ff165b801561188a575060208054306000908152600790925260409091205410155b80156118c457506118b160646118ab602154876110c590919063ffffffff16565b90611147565b3060009081526007602052604090205410155b949350505050565b6022805461ff001981166101001790915560009060ff166118ef57602054611909565b61190960646118ab602154856110c590919063ffffffff16565b9050602054811161191e575060205480611920565b805b5060008060145411611933576000611953565b61195360026118ab6016546118ab601454876110c590919063ffffffff16565b905060006119618383611d68565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061199b5761199b612192565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106119e3576119e3612192565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815247926101009092049091169063791ac94790611a329086906000908790309042906004016122da565b600060405180830381600087803b158015611a4c57600080fd5b505af1158015611a60573d6000803e3d6000fd5b50505050600080611a7a8347611d6890919063ffffffff16565b905060008060145411611a8f57601654611aaa565b601454611aaa90611aa1906002611147565b60165490611d68565b60155490915015611b32576000611ad0826118ab601554866110c590919063ffffffff16565b6019546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611b24576040519150601f19603f3d011682016040523d82523d6000602084013e611b29565b606091505b50600095505050505b8615611c33576000611b5860026118ab846118ab601454886110c590919063ffffffff16565b601e5460175460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a4820152929350610100909104169063f305d71990839060c40160606040518083038185885af1158015611bd0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bf5919061234b565b505060408051838152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a1505b60135415611c9c5760185460405147916001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611c8e576040519150601f19603f3d011682016040523d82523d6000602084013e611c93565b606091505b50600095505050505b505042601d5550506022805461ff00191690555050505050565b601f5460009081906001600160a01b03858116911614611cd857600e54611cdc565b6012545b90506000611cf06103e86118ab86856110c5565b30600090815260076020526040902054909150611d0d9082611189565b30600081815260076020526040908190209290925590516001600160a01b0388169060008051602061237a83398151915290611d4c9085815260200190565b60405180910390a3611d5e8482611d68565b9695505050505050565b6000610a1f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e8565b600060208083528351808285015260005b81811015611dd757858101830151858201604001528201611dbb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e0d57600080fd5b50565b60008060408385031215611e2357600080fd5b8235611e2e81611df8565b946020939093013593505050565b600080600060608486031215611e5157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611e7d57600080fd5b8335611e8881611df8565b92506020840135611e9881611df8565b929592945050506040919091013590565b600060208284031215611ebb57600080fd5b8135610a1f81611df8565b600060208284031215611ed857600080fd5b5035919050565b60008083601f840112611ef157600080fd5b50813567ffffffffffffffff811115611f0957600080fd5b6020830191508360208260051b8501011115611f2457600080fd5b9250929050565b60008060008060408587031215611f4157600080fd5b843567ffffffffffffffff80821115611f5957600080fd5b611f6588838901611edf565b90965094506020870135915080821115611f7e57600080fd5b50611f8b87828801611edf565b95989497509550505050565b600080600060608486031215611fac57600080fd5b8335611fb781611df8565b92506020840135611fc781611df8565b91506040840135611fd781611df8565b809150509250925092565b60008060408385031215611ff557600080fd5b823561200081611df8565b9150602083013561201081611df8565b809150509250929050565b8035801515811461202b57600080fd5b919050565b6000806000806080858703121561204657600080fd5b61204f8561201b565b9350602085013592506040850135915061206b6060860161201b565b905092959194509250565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107a9576107a9612143565b60008261218d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b808201808211156107a9576107a9612143565b6000600182016121cd576121cd612143565b5060010190565b818103818111156107a9576107a9612143565b600181815b8085111561222257816000190482111561220857612208612143565b8085161561221557918102915b93841c93908002906121ec565b509250929050565b600082612239575060016107a9565b81612246575060006107a9565b816001811461225c576002811461226657612282565b60019150506107a9565b60ff84111561227757612277612143565b50506001821b6107a9565b5060208310610133831016604e8410600b84101617156122a5575081810a6107a9565b6122af83836121e7565b80600019048211156122c3576122c3612143565b029392505050565b6000610a1f60ff84168361222a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561232a5784516001600160a01b031683529383019391830191600101612305565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561236057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e54ed1e1cab4aefecbfc60ec601739dd3d4858a6d87633173952bc96405774f64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102295760003560e01c806375cb1bd111610123578063b6a5d7de116100ab578063f0b37c041161006f578063f0b37c041461069d578063f2fde38b146106bd578063f887ea40146106dd578063fb11160214610702578063fe9fbb801461072257600080fd5b8063b6a5d7de146105e4578063c1f1b1b514610604578063d469801614610622578063dd62ed3e14610642578063ea3105d91461068857600080fd5b8063893d20e8116100f2578063893d20e81461054357806395d89b41146105615780639d9241ec1461058e578063a8aa1b31146105a4578063a9059cbb146105c457600080fd5b806375cb1bd1146104d757806375f0a874146104f757806378109e54146105175780637d1db4a51461052d57600080fd5b8063313ce567116101b15780635c85974f116101755780635c85974f146104205780635d0044ca1461044057806367243482146104605780636ddd17131461048057806370a08231146104a157600080fd5b8063313ce56714610381578063364333f41461039d578063571ac8b0146103b257806359927044146103d257806359b107b91461040a57600080fd5b80630f683e90116101f85780630f683e90146102e857806318160ddd1461030857806323b872dd1461031d578063293230b81461033d5780632f54bf6e1461035257600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102965780630d075d9c146102c657600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60205481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b506040805180820190915260068152652a37b5b2b93960d11b60208201525b6040516102559190611daa565b3480156102a257600080fd5b506102b66102b1366004611e10565b610742565b6040519015158152602001610255565b3480156102d257600080fd5b506102e66102e1366004611e3c565b6107af565b005b3480156102f457600080fd5b506102e6610303366004611e3c565b61086e565b34801561031457600080fd5b5060045461024b565b34801561032957600080fd5b506102b6610338366004611e68565b610916565b34801561034957600080fd5b506102e6610a26565b34801561035e57600080fd5b506102b661036d366004611ea9565b6000546001600160a01b0391821691161490565b34801561038d57600080fd5b5060405160098152602001610255565b3480156103a957600080fd5b506102e6610aaa565b3480156103be57600080fd5b506102b66103cd366004611ea9565b610b0d565b3480156103de57600080fd5b506019546103f2906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b34801561041657600080fd5b5061024b600e5481565b34801561042c57600080fd5b506102e661043b366004611ec6565b610b1b565b34801561044c57600080fd5b506102e661045b366004611ec6565b610b6f565b34801561046c57600080fd5b506102e661047b366004611f2b565b610bc3565b34801561048c57600080fd5b50601f546102b690600160a01b900460ff1681565b3480156104ad57600080fd5b5061024b6104bc366004611ea9565b6001600160a01b031660009081526007602052604090205490565b3480156104e357600080fd5b506102e66104f2366004611f97565b610e3e565b34801561050357600080fd5b506018546103f2906001600160a01b031681565b34801561052357600080fd5b5061024b60065481565b34801561053957600080fd5b5061024b60055481565b34801561054f57600080fd5b506000546001600160a01b03166103f2565b34801561056d57600080fd5b506040805180820190915260048152632a27a5a960e11b6020820152610289565b34801561059a57600080fd5b5061024b60125481565b3480156105b057600080fd5b50601f546103f2906001600160a01b031681565b3480156105d057600080fd5b506102b66105df366004611e10565b610ea2565b3480156105f057600080fd5b506102e66105ff366004611ea9565b610ed4565b34801561061057600080fd5b50601f546001600160a01b03166103f2565b34801561062e57600080fd5b506017546103f2906001600160a01b031681565b34801561064e57600080fd5b5061024b61065d366004611fe2565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561069457600080fd5b506102e6610f25565b3480156106a957600080fd5b506102e66106b8366004611ea9565b610f56565b3480156106c957600080fd5b506102e66106d8366004611ea9565b610fa1565b3480156106e957600080fd5b50601e546103f29061010090046001600160a01b031681565b34801561070e57600080fd5b506102e661071d366004612030565b611037565b34801561072e57600080fd5b506102b661073d366004611ea9565b6110a7565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061079d9086815260200190565b60405180910390a35060015b92915050565b6107b8336110a7565b6107dd5760405162461bcd60e51b81526004016107d490612076565b60405180910390fd5b60966107f3826107ed8686611189565b90611189565b11156107fe57600080fd5b600b839055600c829055600d819055600f5461081a9084611189565b60135560105461082a9083611189565b60145560115461083a9082611189565b60155561084b816107ed8585611189565b600e5560155460135460145461086692916107ed9190611189565b601655505050565b610877336110a7565b6108935760405162461bcd60e51b81526004016107d490612076565b60966108a3826107ed8686611189565b11156108ae57600080fd5b600f83905560108290556011819055600b546108ca9084611189565b601355600c546108da9083611189565b601455600d546108ea9082611189565b6015556108fb816107ed8585611189565b60125560155460135460145461086692916107ed9190611189565b60006001600160a01b03841661093e5760405162461bcd60e51b81526004016107d49061209b565b6001600160a01b0383166109645760405162461bcd60e51b81526004016107d4906120e0565b6004546001600160a01b038516600090815260086020908152604080832033845290915290205414610a11576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109ec9184906111e8565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610a1c848484611222565b90505b9392505050565b6000546001600160a01b03163314610a505760405162461bcd60e51b81526004016107d490612123565b601b54610100900460ff1615610a6557600080fd5b601b805461ffff1916610100179055604051600081527f2b27db57e94e474754b17ad26b358efda13cbcf4a9bbbc7ec92de2926a941f349060200160405180910390a1565b60185460405147916000916001600160a01b0390911690620186a090849084818181858888f193505050503d8060008114610b01576040519150601f19603f3d011682016040523d82523d6000602084013e610b06565b606091505b5050505050565b60006107a982600454610742565b610b24336110a7565b610b405760405162461bcd60e51b81526004016107d490612076565b600a811015610b4e57600080fd5b6103e881600454610b5f9190612159565b610b699190612170565b60055550565b610b78336110a7565b610b945760405162461bcd60e51b81526004016107d490612076565b600a811015610ba257600080fd5b6103e881600454610bb39190612159565b610bbd9190612170565b60065550565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016107d490612123565b6000838214610c4f5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b60648201526084016107d4565b60005b84811015610ca6576000848483818110610c6e57610c6e612192565b90506020020135633b9aca00610c849190612159565b9050610c9081846121a8565b9250508080610c9e906121bb565b915050610c52565b5033600090815260076020526040902054811115610d065760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f700000000060448201526064016107d4565b60005b84811015610e36576000848483818110610d2557610d25612192565b90506020020135633b9aca00610d3b9190612159565b90508060076000898986818110610d5457610d54612192565b9050602002016020810190610d699190611ea9565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610d9891906121a8565b90915550503360009081526007602052604081208054839290610dbc9084906121d4565b909155508790508683818110610dd457610dd4612192565b9050602002016020810190610de99190611ea9565b6001600160a01b0316336001600160a01b031660008051602061237a83398151915283604051610e1b91815260200190565b60405180910390a35080610e2e816121bb565b915050610d09565b505050505050565b610e47336110a7565b610e635760405162461bcd60e51b81526004016107d490612076565b601880546001600160a01b039485166001600160a01b031991821617909155601780549385169382169390931790925560198054919093169116179055565b60008054336001600160a01b0390911603610ec957610ec2338484611526565b90506107a9565b610ec2338484611222565b6000546001600160a01b03163314610efe5760405162461bcd60e51b81526004016107d490612123565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b610f2e336110a7565b610f4a5760405162461bcd60e51b81526004016107d490612076565b601e805460ff19169055565b6000546001600160a01b03163314610f805760405162461bcd60e51b81526004016107d490612123565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016107d490612123565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611040336110a7565b61105c5760405162461bcd60e51b81526004016107d490612076565b601f805460ff60a01b1916600160a01b8615150217905561107f6009600a6122cb565b6110899084612159565b6020556021919091556022805460ff19169115159190911790555050565b6001600160a01b031660009081526001602052604090205460ff1690565b6000826000036110d7575060006107a9565b60006110e38385612159565b9050826110f08583612170565b14610a1f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107d4565b6000610a1f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115fa565b60008061119683856121a8565b905083811015610a1f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107d4565b6000818484111561120c5760405162461bcd60e51b81526004016107d49190611daa565b50600061121984866121d4565b95945050505050565b60006001600160a01b03841661124a5760405162461bcd60e51b81526004016107d49061209b565b6001600160a01b0383166112705760405162461bcd60e51b81526004016107d4906120e0565b6001600160a01b03841660009081526001602052604090205460ff16806112af57506001600160a01b03831660009081526001602052604090205460ff165b156112c6576112bf848484611526565b9050610a1f565b602254610100900460ff16156112e1576112bf848484611526565b6001600160a01b03841660009081526001602052604090205460ff1615801561132357506001600160a01b03831660009081526001602052604090205460ff16155b1561137657601b5460ff1615156001036113765760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107d4565b601e5460ff161561138c5761138c848484611628565b6113968284611809565b156113a4576113a4826118cc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600790915291909120546113f69184906111e8565b6001600160a01b03808616600090815260076020526040812092909255601f54858216911614806114345750601f546001600160a01b038681169116145b61143e5782611449565b611449858585611cb6565b6001600160a01b03851660009081526007602052604090205490915061146f9082611189565b6001600160a01b03808616600090815260076020526040902091909155601f54868216911614806114ad5750601f546001600160a01b038581169116145b80156114c257506001600160a01b0384163014155b156114e0576001601a60008282546114da91906121a8565b90915550505b836001600160a01b0316856001600160a01b031660008051602061237a8339815191528360405161151391815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546115779184906111e8565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546115a69083611189565b6001600160a01b03808516600081815260076020526040908190209390935591519086169060008051602061237a833981519152906115e89086815260200190565b60405180910390a35060019392505050565b6000818361161b5760405162461bcd60e51b81526004016107d49190611daa565b5060006112198486612170565b6001600160a01b03831660009081526001602052604090205460ff1615801561165a57506001600160a01b0382163014155b801561166f57506001600160a01b0383163014155b801561168957506002546001600160a01b03838116911614155b80156116a35750601f546001600160a01b03838116911614155b80156116bd57506018546001600160a01b03838116911614155b80156116d757506017546001600160a01b03838116911614155b15611778576001600160a01b03821660009081526007602052604090205460065461170283836121a8565b11156117765760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107d4565b505b600554811115806117a157506001600160a01b0383166000908152600a602052604090205460ff165b806117c457506001600160a01b0382166000908152600a602052604090205460ff165b6118045760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107d4565b505050565b60008042611824601c54601d5461118990919063ffffffff16565b601f54911191506001600160a01b0384811691161480156118425750805b80156118565750602254610100900460ff16155b801561186b5750601f54600160a01b900460ff165b801561188a575060208054306000908152600790925260409091205410155b80156118c457506118b160646118ab602154876110c590919063ffffffff16565b90611147565b3060009081526007602052604090205410155b949350505050565b6022805461ff001981166101001790915560009060ff166118ef57602054611909565b61190960646118ab602154856110c590919063ffffffff16565b9050602054811161191e575060205480611920565b805b5060008060145411611933576000611953565b61195360026118ab6016546118ab601454876110c590919063ffffffff16565b905060006119618383611d68565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061199b5761199b612192565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106119e3576119e3612192565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815247926101009092049091169063791ac94790611a329086906000908790309042906004016122da565b600060405180830381600087803b158015611a4c57600080fd5b505af1158015611a60573d6000803e3d6000fd5b50505050600080611a7a8347611d6890919063ffffffff16565b905060008060145411611a8f57601654611aaa565b601454611aaa90611aa1906002611147565b60165490611d68565b60155490915015611b32576000611ad0826118ab601554866110c590919063ffffffff16565b6019546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611b24576040519150601f19603f3d011682016040523d82523d6000602084013e611b29565b606091505b50600095505050505b8615611c33576000611b5860026118ab846118ab601454886110c590919063ffffffff16565b601e5460175460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a4820152929350610100909104169063f305d71990839060c40160606040518083038185885af1158015611bd0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bf5919061234b565b505060408051838152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a1505b60135415611c9c5760185460405147916001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611c8e576040519150601f19603f3d011682016040523d82523d6000602084013e611c93565b606091505b50600095505050505b505042601d5550506022805461ff00191690555050505050565b601f5460009081906001600160a01b03858116911614611cd857600e54611cdc565b6012545b90506000611cf06103e86118ab86856110c5565b30600090815260076020526040902054909150611d0d9082611189565b30600081815260076020526040908190209290925590516001600160a01b0388169060008051602061237a83398151915290611d4c9085815260200190565b60405180910390a3611d5e8482611d68565b9695505050505050565b6000610a1f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e8565b600060208083528351808285015260005b81811015611dd757858101830151858201604001528201611dbb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e0d57600080fd5b50565b60008060408385031215611e2357600080fd5b8235611e2e81611df8565b946020939093013593505050565b600080600060608486031215611e5157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611e7d57600080fd5b8335611e8881611df8565b92506020840135611e9881611df8565b929592945050506040919091013590565b600060208284031215611ebb57600080fd5b8135610a1f81611df8565b600060208284031215611ed857600080fd5b5035919050565b60008083601f840112611ef157600080fd5b50813567ffffffffffffffff811115611f0957600080fd5b6020830191508360208260051b8501011115611f2457600080fd5b9250929050565b60008060008060408587031215611f4157600080fd5b843567ffffffffffffffff80821115611f5957600080fd5b611f6588838901611edf565b90965094506020870135915080821115611f7e57600080fd5b50611f8b87828801611edf565b95989497509550505050565b600080600060608486031215611fac57600080fd5b8335611fb781611df8565b92506020840135611fc781611df8565b91506040840135611fd781611df8565b809150509250925092565b60008060408385031215611ff557600080fd5b823561200081611df8565b9150602083013561201081611df8565b809150509250929050565b8035801515811461202b57600080fd5b919050565b6000806000806080858703121561204657600080fd5b61204f8561201b565b9350602085013592506040850135915061206b6060860161201b565b905092959194509250565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107a9576107a9612143565b60008261218d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b808201808211156107a9576107a9612143565b6000600182016121cd576121cd612143565b5060010190565b818103818111156107a9576107a9612143565b600181815b8085111561222257816000190482111561220857612208612143565b8085161561221557918102915b93841c93908002906121ec565b509250929050565b600082612239575060016107a9565b81612246575060006107a9565b816001811461225c576002811461226657612282565b60019150506107a9565b60ff84111561227757612277612143565b50506001821b6107a9565b5060208310610133831016604e8410600b84101617156122a5575081810a6107a9565b6122af83836121e7565b80600019048211156122c3576122c3612143565b029392505050565b6000610a1f60ff84168361222a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561232a5784516001600160a01b031683529383019391830191600101612305565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561236057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e54ed1e1cab4aefecbfc60ec601739dd3d4858a6d87633173952bc96405774f64736f6c63430008110033

Deployed Bytecode Sourcemap

6098:14107:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8100:63;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8100:63:0;;;;;;;;9435:80;;;;;;;;;;-1:-1:-1;9507:5:0;;;;;;;;;;;;-1:-1:-1;;;9507:5:0;;;;9435:80;;;;;;;:::i;9927:216::-;;;;;;;;;;-1:-1:-1;9927:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9927:216:0;1205:187:1;10618:632:0;;;;;;;;;;-1:-1:-1;10618:632:0;;;;;:::i;:::-;;:::i;:::-;;11262:634;;;;;;;;;;-1:-1:-1;11262:634:0;;;;;:::i;:::-;;:::i;9165:88::-;;;;;;;;;;-1:-1:-1;9238:12:0;;9165:88;;17506:528;;;;;;;;;;-1:-1:-1;17506:528:0;;;;;:::i;:::-;;:::i;13516:196::-;;;;;;;;;;;;;:::i;4055:103::-;;;;;;;;;;-1:-1:-1;4055:103:0;;;;;:::i;:::-;4110:4;4145:5;-1:-1:-1;;;;;4134:16:0;;;4145:5;;4134:16;;4055:103;9259:80;;;;;;;;;;-1:-1:-1;9259:80:0;;6411:1;2573:36:1;;2561:2;2546:18;9259:80:0;2431:184:1;12547:224:0;;;;;;;;;;;;;:::i;10151:117::-;;;;;;;;;;-1:-1:-1;10151:117:0;;;;;:::i;:::-;;:::i;7652:25::-;;;;;;;;;;-1:-1:-1;7652:25:0;;;;-1:-1:-1;;;;;7652:25:0;;;;;;-1:-1:-1;;;;;2784:32:1;;;2766:51;;2754:2;2739:18;7652:25:0;2620:203:1;7032:81:0;;;;;;;;;;;;;;;;12353:182;;;;;;;;;;-1:-1:-1;12353:182:0;;;;;:::i;:::-;;:::i;12158:187::-;;;;;;;;;;-1:-1:-1;12158:187:0;;;;;:::i;:::-;;:::i;19398:741::-;;;;;;;;;;-1:-1:-1;19398:741:0;;;;;:::i;:::-;;:::i;8063:30::-;;;;;;;;;;-1:-1:-1;8063:30:0;;;;-1:-1:-1;;;8063:30:0;;;;;;9605:105;;;;;;;;;;-1:-1:-1;9605:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9689:18:0;9671:7;9689:18;;;:9;:18;;;;;;;9605:105;11904:246;;;;;;;;;;-1:-1:-1;11904:246:0;;;;;:::i;:::-;;:::i;7615:30::-;;;;;;;;;;-1:-1:-1;7615:30:0;;;;-1:-1:-1;;;;;7615:30:0;;;6563:64;;;;;;;;;;;;;;;;6493:60;;;;;;;;;;;;;;;;9521:78;;;;;;;;;;-1:-1:-1;9573:7:0;9591:5;-1:-1:-1;;;;;9591:5:0;9521:78;;9345:84;;;;;;;;;;-1:-1:-1;9419:7:0;;;;;;;;;;;;-1:-1:-1;;;9419:7:0;;;;9345:84;;7225:85;;;;;;;;;;;;;;;;8035:19;;;;;;;;;;-1:-1:-1;8035:19:0;;;;-1:-1:-1;;;;;8035:19:0;;;17198:300;;;;;;;;;;-1:-1:-1;17198:300:0;;;;;:::i;:::-;;:::i;3848:94::-;;;;;;;;;;-1:-1:-1;3848:94:0;;;;;:::i;:::-;;:::i;9855:64::-;;;;;;;;;;-1:-1:-1;9913:4:0;;-1:-1:-1;;;;;9913:4:0;9855:64;;7578:30;;;;;;;;;;-1:-1:-1;7578:30:0;;;;-1:-1:-1;;;;;7578:30:0;;;9716:133;;;;;;;;;;-1:-1:-1;9716:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9818:19:0;;;9800:7;9818:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9716:133;13436:72;;;;;;;;;;;;;:::i;3950:97::-;;;;;;;;;;-1:-1:-1;3950:97:0;;;;;:::i;:::-;;:::i;4281:173::-;;;;;;;;;;-1:-1:-1;4281:173:0;;;;;:::i;:::-;;:::i;8004:24::-;;;;;;;;;;-1:-1:-1;8004:24:0;;;;;;;-1:-1:-1;;;;;8004:24:0;;;14020:268;;;;;;;;;;-1:-1:-1;14020:268:0;;;;;:::i;:::-;;:::i;4166:107::-;;;;;;;;;;-1:-1:-1;4166:107:0;;;;;:::i;:::-;;:::i;9927:216::-;10031:10;10002:4;10019:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10019:32:0;;;;;;;;;;:41;;;10076:37;10002:4;;10019:32;;10076:37;;;;10054:6;160:25:1;;148:2;133:18;;14:177;10076:37:0;;;;;;;;-1:-1:-1;10131:4:0;9927:216;;;;;:::o;10618:632::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;;;;;;;;;10814:3:::1;10763:46;10800:8:::0;10763:32:::1;:13:::0;10781;10763:17:::1;:32::i;:::-;:36:::0;::::1;:46::i;:::-;10762:55;;10754:64;;;::::0;::::1;;10829:15;:31:::0;;;10871:15:::1;:31:::0;;;10913:10:::1;:21:::0;;;10962:16:::1;::::0;:35:::1;::::0;10847:13;10962:20:::1;:35::i;:::-;10947:12;:50:::0;11023:16:::1;::::0;:35:::1;::::0;11044:13;11023:20:::1;:35::i;:::-;11008:12;:50:::0;11079:11:::1;::::0;:25:::1;::::0;11095:8;11079:15:::1;:25::i;:::-;11069:7;:35:::0;11131:46:::1;11168:8:::0;11131:32:::1;:13:::0;11149;11131:17:::1;:32::i;:46::-;11117:11;:60:::0;11234:7:::1;::::0;11216:12:::1;::::0;11199::::1;::::0;:43:::1;::::0;11234:7;11199:30:::1;::::0;:12;:16:::1;:30::i;:43::-;11188:8;:54:::0;-1:-1:-1;;;10618:632:0:o;11262:634::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;11459:3:::1;11408:46;11445:8:::0;11408:32:::1;:13:::0;11426;11408:17:::1;:32::i;:46::-;11407:55;;11399:64;;;::::0;::::1;;11474:16;:32:::0;;;11517:16:::1;:32:::0;;;11560:11:::1;:22:::0;;;11610:15:::1;::::0;:34:::1;::::0;11493:13;11610:19:::1;:34::i;:::-;11595:12;:49:::0;11670:15:::1;::::0;:34:::1;::::0;11690:13;11670:19:::1;:34::i;:::-;11655:12;:49:::0;11725:10:::1;::::0;:24:::1;::::0;11740:8;11725:14:::1;:24::i;:::-;11715:7;:34:::0;11777:46:::1;11814:8:::0;11777:32:::1;:13:::0;11795;11777:17:::1;:32::i;:46::-;11762:12;:61:::0;11880:7:::1;::::0;11862:12:::1;::::0;11845::::1;::::0;:43:::1;::::0;11880:7;11845:30:::1;::::0;:12;:16:::1;:30::i;17506:528::-:0;17606:4;-1:-1:-1;;;;;17631:20:0;;17623:70;;;;-1:-1:-1;;;17623:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17712:23:0;;17704:71;;;;-1:-1:-1;;;17704:71:0;;;;;;;:::i;:::-;17824:12;;-1:-1:-1;;;;;17789:19:0;;;;;;:11;:19;;;;;;;;17809:10;17789:31;;;;;;;;:47;17786:181;;17886:69;;;;;;;;;;;-1:-1:-1;;;17886:69:0;;;;;;;;-1:-1:-1;;;;;17886:19:0;;-1:-1:-1;17886:19:0;;;:11;:19;;;;;17906:10;17886:31;;;;;;;;;;:69;;17922:6;;17886:35;:69::i;:::-;-1:-1:-1;;;;;17852:19:0;;;;;;:11;:19;;;;;;;;17872:10;17852:31;;;;;;;:103;17786:181;17986:40;18000:6;18008:9;18019:6;17986:13;:40::i;:::-;17979:47;;17506:528;;;;;;:::o;13516:196::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;13578:8:::1;::::0;::::1;::::0;::::1;;;:17;13570:26;;;::::0;::::1;;13607:12;:20:::0;;-1:-1:-1;;13638:15:0;13607:20:::1;13638:15;::::0;;13671:33:::1;::::0;-1:-1:-1;1345:41:1;;13671:33:0::1;::::0;1333:2:1;1318:18;13671:33:0::1;;;;;;;13516:196::o:0;12547:224::-;12678:15;;12670:64;;12617:21;;12597:17;;-1:-1:-1;;;;;12678:15:0;;;;12723:6;;12617:21;;12597:17;12670:64;12597:17;12670:64;12617:21;12678:15;12723:6;12670:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12547:224:0:o;10151:117::-;10206:4;10230:30;10238:7;10247:12;;10230:7;:30::i;12353:182::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;12440:2:::1;12429:7;:13;;12421:22;;;::::0;::::1;;12523:4;12511:7;12496:12;;:22;;;;:::i;:::-;12494:33;;;;:::i;:::-;12479:12;:48:::0;-1:-1:-1;12353:182:0:o;12158:187::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;12247:2:::1;12236:7;:13;;12228:22;;;::::0;::::1;;12333:4;12321:7;12306:12;;:22;;;;:::i;:::-;12304:33;;;;:::i;:::-;12286:15;:51:::0;-1:-1:-1;12158:187:0:o;19398:741::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;19499:19:::1;19541:33:::0;;::::1;19533:85;;;::::0;-1:-1:-1;;;19533:85:0;;8554:2:1;19533:85:0::1;::::0;::::1;8536:21:1::0;8593:2;8573:18;;;8566:30;8632:34;8612:18;;;8605:62;-1:-1:-1;;;8683:18:1;;;8676:38;8731:19;;19533:85:0::1;8352:404:1::0;19533:85:0::1;19633:6;19629:149;19643:20:::0;;::::1;19629:149;;;19684:11;19698:6;;19705:1;19698:9;;;;;;;:::i;:::-;;;;;;;19711:5;19698:19;;;;:::i;:::-;19684:33:::0;-1:-1:-1;19746:20:0::1;19684:33:::0;19746:11;:20:::1;:::i;:::-;19732:34;;19669:109;19665:3;;;;;:::i;:::-;;;;19629:149;;;-1:-1:-1::0;19806:10:0::1;9671:7:::0;9689:18;;;:9;:18;;;;;;19821:11;-1:-1:-1;19796:36:0::1;19788:77;;;::::0;-1:-1:-1;;;19788:77:0;;9365:2:1;19788:77:0::1;::::0;::::1;9347:21:1::0;9404:2;9384:18;;;9377:30;9443;9423:18;;;9416:58;9491:18;;19788:77:0::1;9163:352:1::0;19788:77:0::1;19880:6;19876:256;19890:20:::0;;::::1;19876:256;;;19931:11;19945:6;;19952:1;19945:9;;;;;;;:::i;:::-;;;;;;;19958:5;19945:19;;;;:::i;:::-;19931:33;;20006:6;19979:9;:23;19989:9;;19999:1;19989:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19979:23:0::1;-1:-1:-1::0;;;;;19979:23:0::1;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;20037:10:0::1;20027:21;::::0;;;:9:::1;:21;::::0;;;;:31;;20052:6;;20027:21;:31:::1;::::0;20052:6;;20027:31:::1;:::i;:::-;::::0;;;-1:-1:-1;20099:9:0;;-1:-1:-1;20099:9:0;20109:1;20099:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20078:42:0::1;20087:10;-1:-1:-1::0;;;;;20078:42:0::1;-1:-1:-1::0;;;;;;;;;;;20113:6:0::1;20078:42;;;;160:25:1::0;;148:2;133:18;;14:177;20078:42:0::1;;;;;;;;-1:-1:-1::0;19912:3:0;::::1;::::0;::::1;:::i;:::-;;;;19876:256;;;;19488:651;19398:741:::0;;;;:::o;11904:246::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;12028:15:::1;:34:::0;;-1:-1:-1;;;;;12028:34:0;;::::1;-1:-1:-1::0;;;;;;12028:34:0;;::::1;;::::0;;;12073:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;12118:10:::1;:24:::0;;;;;::::1;::::0;::::1;;::::0;;11904:246::o;17198:300::-;17278:4;17299:5;;17308:10;-1:-1:-1;;;;;17299:5:0;;;:19;17295:196;;17341:45;17356:10;17368:9;17379:6;17341:14;:45::i;:::-;17334:52;;;;17295:196;17435:44;17449:10;17461:9;17472:6;17435:13;:44::i;3848:94::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3908:19:0::1;;::::0;;;3930:4:::1;3908:19;::::0;;;;;;;:26;;-1:-1:-1;;3908:26:0::1;::::0;;::::1;::::0;;3848:94::o;13436:72::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;13486:6:::1;:14:::0;;-1:-1:-1;;13486:14:0::1;::::0;;13436:72::o;3950:97::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4012:19:0::1;4034:5;4012:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;4012:27:0::1;::::0;;3950:97::o;4281:173::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;4357:5:::1;:11:::0;;-1:-1:-1;;;;;;4357:11:0::1;-1:-1:-1::0;;;;;4357:11:0;::::1;::::0;;::::1;::::0;;4379:19;;;-1:-1:-1;4379:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;4379:26:0::1;::::0;;::::1;::::0;;;4421:25;;2766:51:1;;;4421:25:0::1;::::0;2739:18:1;4421:25:0::1;;;;;;;4281:173:::0;:::o;14020:268::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;14144:11:::1;:22:::0;;-1:-1:-1;;;;14144:22:0::1;-1:-1:-1::0;;;14144:22:0;::::1;;;;::::0;;14207:15:::1;6411:1;14207:2;:15;:::i;:::-;14193:30;::::0;:10;:30:::1;:::i;:::-;14177:13;:46:::0;14234:9:::1;:18:::0;;;;14263:9:::1;:17:::0;;-1:-1:-1;;14263:17:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;;14020:268:0:o;4166:107::-;-1:-1:-1;;;;;4246:19:0;4222:4;4246:19;;;:14;:19;;;;;;;;;4166:107::o;1773:250::-;1831:7;1855:1;1860;1855:6;1851:47;;-1:-1:-1;1885:1:0;1878:8;;1851:47;1910:9;1922:5;1926:1;1922;:5;:::i;:::-;1910:17;-1:-1:-1;1955:1:0;1946:5;1950:1;1910:17;1946:5;:::i;:::-;:10;1938:56;;;;-1:-1:-1;;;1938:56:0;;11454:2:1;1938:56:0;;;11436:21:1;11493:2;11473:18;;;11466:30;11532:34;11512:18;;;11505:62;-1:-1:-1;;;11583:18:1;;;11576:31;11624:19;;1938:56:0;11252:397:1;2029:132:0;2087:7;2114:39;2118:1;2121;2114:39;;;;;;;;;;;;;;;;;:3;:39::i;1246:181::-;1304:7;;1336:5;1340:1;1336;:5;:::i;:::-;1324:17;;1365:1;1360;:6;;1352:46;;;;-1:-1:-1;;;1352:46:0;;11856:2:1;1352:46:0;;;11838:21:1;11895:2;11875:18;;;11868:30;11934:29;11914:18;;;11907:57;11981:18;;1352:46:0;11654:351:1;1575:192:0;1661:7;1697:12;1689:6;;;;1681:29;;;;-1:-1:-1;;;1681:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1721:9:0;1733:5;1737:1;1733;:5;:::i;:::-;1721:17;1575:192;-1:-1:-1;;;;;1575:192:0:o;18042:1348::-;18134:4;-1:-1:-1;;;;;18161:20:0;;18153:70;;;;-1:-1:-1;;;18153:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18242:23:0;;18234:71;;;;-1:-1:-1;;;18234:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18324:22:0;;;;;;:14;:22;;;;;;;;;:51;;-1:-1:-1;;;;;;18350:25:0;;;;;;:14;:25;;;;;;;;18324:51;18320:131;;;18398:41;18413:6;18421:9;18432:6;18398:14;:41::i;:::-;18391:48;;;;18320:131;18466:6;;;;;;;18463:63;;;18482:41;18497:6;18505:9;18516:6;18482:14;:41::i;18463:63::-;-1:-1:-1;;;;;18542:22:0;;;;;;:14;:22;;;;;;;;18541:23;:53;;;;-1:-1:-1;;;;;;18569:25:0;;;;;;:14;:25;;;;;;;;18568:26;18541:53;18538:136;;;18618:12;;;;:20;;:12;:20;18610:52;;;;-1:-1:-1;;;18610:52:0;;12212:2:1;18610:52:0;;;12194:21:1;12251:2;12231:18;;;12224:30;-1:-1:-1;;;12270:18:1;;;12263:50;12330:18;;18610:52:0;12010:344:1;18610:52:0;18698:6;;;;18694:76;;;18720:38;18732:6;18740:9;18751:6;18720:11;:38::i;:::-;18785:34;18801:6;18809:9;18785:15;:34::i;:::-;18782:60;;;18822:17;18832:6;18822:9;:17::i;:::-;18882:53;;;;;;;;;;;-1:-1:-1;;;18882:53:0;;;;;;;;-1:-1:-1;;;;;18882:17:0;;-1:-1:-1;18882:17:0;;;:9;:17;;;;;;;;:53;;18904:6;;18882:21;:53::i;:::-;-1:-1:-1;;;;;18862:17:0;;;;;;;:9;:17;;;;;:73;;;;18985:4;;18972:17;;;18985:4;;18972:17;;:35;;-1:-1:-1;19003:4:0;;-1:-1:-1;;;;;18993:14:0;;;19003:4;;18993:14;18972:35;18971:83;;19048:6;18971:83;;;19011:34;19019:6;19027:9;19038:6;19011:7;:34::i;:::-;-1:-1:-1;;;;;19104:20:0;;;;;;:9;:20;;;;;;18946:108;;-1:-1:-1;19104:40:0;;18946:108;19104:24;:40::i;:::-;-1:-1:-1;;;;;19081:20:0;;;;;;;:9;:20;;;;;:63;;;;19180:4;;19170:14;;;19180:4;;19170:14;;:35;;-1:-1:-1;19201:4:0;;-1:-1:-1;;;;;19188:17:0;;;19201:4;;19188:17;19170:35;19169:67;;;;-1:-1:-1;;;;;;19210:26:0;;19231:4;19210:26;;19169:67;19165:117;;;19269:1;19252:13;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;19165:117:0;19334:9;-1:-1:-1;;;;;19317:43:0;19326:6;-1:-1:-1;;;;;19317:43:0;-1:-1:-1;;;;;;;;;;;19345:14:0;19317:43;;;;160:25:1;;148:2;133:18;;14:177;19317:43:0;;;;;;;;-1:-1:-1;19378:4:0;;18042:1348;-1:-1:-1;;;;18042:1348:0:o;10280:330::-;10410:53;;;;;;;;;;;-1:-1:-1;;;10410:53:0;;;;;;;;-1:-1:-1;;;;;10410:17:0;;10373:4;10410:17;;;:9;:17;;;;;;;:53;;10432:6;;10410:21;:53::i;:::-;-1:-1:-1;;;;;10390:17:0;;;;;;;:9;:17;;;;;;:73;;;;10497:20;;;;;;;:32;;10522:6;10497:24;:32::i;:::-;-1:-1:-1;;;;;10474:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10545:35;;;;;;-1:-1:-1;;;;;;;;;;;10545:35:0;;;10573:6;160:25:1;;148:2;133:18;;14:177;10545:35:0;;;;;;;;-1:-1:-1;10598:4:0;10280:330;;;;;:::o;2167:345::-;2253:7;2355:12;2348:5;2340:28;;;;-1:-1:-1;;;2340:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2379:9:0;2391:5;2395:1;2391;:5;:::i;12779:649::-;-1:-1:-1;;;;;12880:22:0;;;;;;:14;:22;;;;;;;;12879:23;:53;;;;-1:-1:-1;;;;;;12906:26:0;;12927:4;12906:26;;12879:53;:80;;;;-1:-1:-1;;;;;;12936:23:0;;12954:4;12936:23;;12879:80;:125;;;;-1:-1:-1;12999:4:0;;-1:-1:-1;;;;;12978:26:0;;;12999:4;;12978:26;;12879:125;:146;;;;-1:-1:-1;13021:4:0;;-1:-1:-1;;;;;13008:17:0;;;13021:4;;13008:17;;12879:146;:178;;;;-1:-1:-1;13042:15:0;;-1:-1:-1;;;;;13029:28:0;;;13042:15;;13029:28;;12879:178;:210;;;;-1:-1:-1;13074:15:0;;-1:-1:-1;;;;;13061:28:0;;;13074:15;;13061:28;;12879:210;12875:424;;;-1:-1:-1;;;;;9689:18:0;;13109;9689;;;:9;:18;;;;;;13202:15;;13178:19;13191:6;9689:18;13178:19;:::i;:::-;13177:40;;13169:114;;;;-1:-1:-1;;;13169:114:0;;12561:2:1;13169:114:0;;;12543:21:1;12600:2;12580:18;;;12573:30;12639:34;12619:18;;;12612:62;12710:32;12690:18;;;12683:60;12760:19;;13169:114:0;12359:426:1;13169:114:0;13090:209;12875:424;13329:12;;13319:6;:22;;:49;;;-1:-1:-1;;;;;;13345:23:0;;;;;;:15;:23;;;;;;;;13319:49;:79;;;-1:-1:-1;;;;;;13372:26:0;;;;;;:15;:26;;;;;;;;13319:79;13311:109;;;;-1:-1:-1;;;13311:109:0;;12992:2:1;13311:109:0;;;12974:21:1;13031:2;13011:18;;;13004:30;-1:-1:-1;;;13050:18:1;;;13043:47;13107:18;;13311:109:0;12790:341:1;13311:109:0;12779:649;;;:::o;14300:408::-;14383:4;14402:15;14456;14420:33;14437:15;;14420:12;;:16;;:33;;;;:::i;:::-;14504:4;;14420:51;-1:-1:-1;14420:51:0;-1:-1:-1;;;;;;14491:17:0;;;14504:4;;14491:17;:40;;;;;14521:10;14491:40;:60;;;;-1:-1:-1;14545:6:0;;;;;;;14544:7;14491:60;:84;;;;-1:-1:-1;14564:11:0;;-1:-1:-1;;;14564:11:0;;;;14491:84;:138;;;;-1:-1:-1;14616:13:0;;;14606:4;14588:24;;;;:9;:24;;;;;;;;:41;;14491:138;:209;;;;;14670:30;14696:3;14670:21;14681:9;;14670:6;:10;;:21;;;;:::i;:::-;:25;;:30::i;:::-;14660:4;14642:24;;;;:9;:24;;;;;;:58;;14491:209;14484:216;14300:408;-1:-1:-1;;;;14300:408:0:o;15174:2016::-;8269:6;:13;;-1:-1:-1;;8269:13:0;;;;;;;;;;15259:9;15258:61:::1;;15306:13;;15258:61;;;15272:31;15299:3;15272:22;15284:9;;15272:7;:11;;:22;;;;:::i;:31::-;15241:78;;15342:13;;15333:6;:22;15332:58;;-1:-1:-1::0;15377:13:0::1;::::0;;15332:58:::1;;;15359:6;15332:58;;15403:23;15445:1:::0;15430:12:::1;;:16;15429:70;;15498:1;15429:70;;;15450:45;15493:1;15450:38;15479:8;;15450:24;15461:12;;15450:6;:10;;:24;;;;:::i;:45::-;15403:96:::0;-1:-1:-1;15512:20:0::1;15535:27;:6:::0;15403:96;15535:10:::1;:27::i;:::-;15599:16;::::0;;15613:1:::1;15599:16:::0;;;;;::::1;::::0;;15512:50;;-1:-1:-1;15575:21:0::1;::::0;15599:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15599:16:0::1;15575:40;;15644:4;15626;15631:1;15626:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;15626:23:0::1;;;-1:-1:-1::0;;;;;15626:23:0::1;;;::::0;::::1;15670:42;15660:4;15665:1;15660:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15660:52:0;;::::1;:7;::::0;;::::1;::::0;;;;;:52;15783:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15783:188:0;;15749:21:::1;::::0;15783:6:::1;::::0;;::::1;::::0;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15855:12;;15725:21:::1;::::0;15898:4;;15925::::1;::::0;15945:15:::1;::::0;15783:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15984:15;16012:17:::0;16032:40:::1;16058:13;16032:21;:25;;:40;;;;:::i;:::-;16012:60;;16083:19;16121:1:::0;16106:12:::1;;:16;16105:65;;16162:8;;16105:65;;;16139:12;::::0;16126:33:::1;::::0;16139:19:::1;::::0;16156:1:::1;16139:16;:19::i;:::-;16126:8;::::0;;:12:::1;:33::i;:::-;16187:7;::::0;16083:87;;-1:-1:-1;16187:11:0;16183:247:::1;;16214:21;16238:39;16265:11;16238:22;16252:7;;16238:9;:13;;:22;;;;:::i;:39::-;16330:10;::::0;16322:63:::1;::::0;16214;;-1:-1:-1;;;;;;16330:10:0::1;::::0;16374:6:::1;::::0;16214:63;;16322::::1;::::0;;;16214;16330:10;16374:6;16322:63:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16413:5:0::1;::::0;-1:-1:-1;;;;16183:247:0::1;16445:19:::0;;16442:451:::1;;16480:26;16509:51;16558:1;16509:44;16541:11;16509:27;16523:12;;16509:9;:13;;:27;;;;:::i;:51::-;16575:6;::::0;16749:15:::1;::::0;16575:238:::1;::::0;-1:-1:-1;;;16575:238:0;;16651:4:::1;16575:238;::::0;::::1;14594:34:1::0;14644:18;;;14637:34;;;16709:1:0::1;14687:18:1::0;;;14680:34;;;14730:18;;;14723:34;-1:-1:-1;;;;;16749:15:0;;::::1;14773:19:1::0;;;14766:44;16783:15:0::1;14826:19:1::0;;;14819:35;16480:80:0;;-1:-1:-1;16575:6:0::1;::::0;;::::1;;::::0;:22:::1;::::0;16480:80;;14528:19:1;;16575:238:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16833:48:0::1;::::0;;15350:25:1;;;15406:2;15391:18;;15384:34;;;16833:48:0::1;::::0;-1:-1:-1;15323:18:1;16833:48:0::1;;;;;;;16465:428;16442:451;16907:12;::::0;:16;16903:237:::1;;17030:15;::::0;17022:73:::1;::::0;16968:21:::1;::::0;-1:-1:-1;;;;;17030:15:0::1;::::0;17084:6:::1;::::0;16968:21;;17022:73:::1;::::0;;;16968:21;17030:15;17084:6;17022:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17123:5:0::1;::::0;-1:-1:-1;;;;16903:237:0::1;-1:-1:-1::0;;17167:15:0::1;17152:12;:30:::0;-1:-1:-1;;8287:6:0;:14;;-1:-1:-1;;8287:14:0;;;-1:-1:-1;;;;;15174:2016:0:o;14716:450::-;14880:4;;14802:7;;;;-1:-1:-1;;;;;14867:17:0;;;14880:4;;14867:17;14866:48;;14903:11;;14866:48;;;14888:12;;14866:48;14854:60;-1:-1:-1;14927:17:0;14947:31;14973:4;14947:21;:6;14854:60;14947:10;:21::i;:31::-;15036:4;15018:24;;;;:9;:24;;;;;;14927:51;;-1:-1:-1;15018:39:0;;14927:51;15018:28;:39::i;:::-;15009:4;14991:24;;;;:9;:24;;;;;;;:66;;;;15075:42;;-1:-1:-1;;;;;15075:42:0;;;-1:-1:-1;;;;;;;;;;;15075:42:0;;;15107:9;160:25:1;;148:2;133:18;;14:177;15075:42:0;;;;;;;;15137:21;:6;15148:9;15137:10;:21::i;:::-;15130:28;14716:450;-1:-1:-1;;;;;;14716:450:0:o;1433:136::-;1491:7;1518:43;1522:1;1525;1518:43;;;;;;;;;;;;;;;;;:3;:43::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:316::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;-1:-1:-1;;1582:23:1;;;1652:2;1637:18;;1624:32;;-1:-1:-1;1703:2:1;1688:18;;;1675:32;;1397:316;-1:-1:-1;1397:316:1:o;1718:456::-;1795:6;1803;1811;1864:2;1852:9;1843:7;1839:23;1835:32;1832:52;;;1880:1;1877;1870:12;1832:52;1919:9;1906:23;1938:31;1963:5;1938:31;:::i;:::-;1988:5;-1:-1:-1;2045:2:1;2030:18;;2017:32;2058:33;2017:32;2058:33;:::i;:::-;1718:456;;2110:7;;-1:-1:-1;;;2164:2:1;2149:18;;;;2136:32;;1718:456::o;2179:247::-;2238:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2346:9;2333:23;2365:31;2390:5;2365:31;:::i;2828:180::-;2887:6;2940:2;2928:9;2919:7;2915:23;2911:32;2908:52;;;2956:1;2953;2946:12;2908:52;-1:-1:-1;2979:23:1;;2828:180;-1:-1:-1;2828:180:1:o;3013:367::-;3076:8;3086:6;3140:3;3133:4;3125:6;3121:17;3117:27;3107:55;;3158:1;3155;3148:12;3107:55;-1:-1:-1;3181:20:1;;3224:18;3213:30;;3210:50;;;3256:1;3253;3246:12;3210:50;3293:4;3285:6;3281:17;3269:29;;3353:3;3346:4;3336:6;3333:1;3329:14;3321:6;3317:27;3313:38;3310:47;3307:67;;;3370:1;3367;3360:12;3307:67;3013:367;;;;;:::o;3385:773::-;3507:6;3515;3523;3531;3584:2;3572:9;3563:7;3559:23;3555:32;3552:52;;;3600:1;3597;3590:12;3552:52;3640:9;3627:23;3669:18;3710:2;3702:6;3699:14;3696:34;;;3726:1;3723;3716:12;3696:34;3765:70;3827:7;3818:6;3807:9;3803:22;3765:70;:::i;:::-;3854:8;;-1:-1:-1;3739:96:1;-1:-1:-1;3942:2:1;3927:18;;3914:32;;-1:-1:-1;3958:16:1;;;3955:36;;;3987:1;3984;3977:12;3955:36;;4026:72;4090:7;4079:8;4068:9;4064:24;4026:72;:::i;:::-;3385:773;;;;-1:-1:-1;4117:8:1;-1:-1:-1;;;;3385:773:1:o;4163:529::-;4240:6;4248;4256;4309:2;4297:9;4288:7;4284:23;4280:32;4277:52;;;4325:1;4322;4315:12;4277:52;4364:9;4351:23;4383:31;4408:5;4383:31;:::i;:::-;4433:5;-1:-1:-1;4490:2:1;4475:18;;4462:32;4503:33;4462:32;4503:33;:::i;:::-;4555:7;-1:-1:-1;4614:2:1;4599:18;;4586:32;4627:33;4586:32;4627:33;:::i;:::-;4679:7;4669:17;;;4163:529;;;;;:::o;4697:388::-;4765:6;4773;4826:2;4814:9;4805:7;4801:23;4797:32;4794:52;;;4842:1;4839;4832:12;4794:52;4881:9;4868:23;4900:31;4925:5;4900:31;:::i;:::-;4950:5;-1:-1:-1;5007:2:1;4992:18;;4979:32;5020:33;4979:32;5020:33;:::i;:::-;5072:7;5062:17;;;4697:388;;;;;:::o;5576:160::-;5641:20;;5697:13;;5690:21;5680:32;;5670:60;;5726:1;5723;5716:12;5670:60;5576:160;;;:::o;5741:385::-;5821:6;5829;5837;5845;5898:3;5886:9;5877:7;5873:23;5869:33;5866:53;;;5915:1;5912;5905:12;5866:53;5938:26;5954:9;5938:26;:::i;:::-;5928:36;;6011:2;6000:9;5996:18;5983:32;5973:42;;6062:2;6051:9;6047:18;6034:32;6024:42;;6085:35;6116:2;6105:9;6101:18;6085:35;:::i;:::-;6075:45;;5741:385;;;;;;;:::o;6131:335::-;6333:2;6315:21;;;6372:2;6352:18;;;6345:30;-1:-1:-1;;;6406:2:1;6391:18;;6384:41;6457:2;6442:18;;6131:335::o;6471:401::-;6673:2;6655:21;;;6712:2;6692:18;;;6685:30;6751:34;6746:2;6731:18;;6724:62;-1:-1:-1;;;6817:2:1;6802:18;;6795:35;6862:3;6847:19;;6471:401::o;6877:399::-;7079:2;7061:21;;;7118:2;7098:18;;;7091:30;7157:34;7152:2;7137:18;;7130:62;-1:-1:-1;;;7223:2:1;7208:18;;7201:33;7266:3;7251:19;;6877:399::o;7281:329::-;7483:2;7465:21;;;7522:1;7502:18;;;7495:29;-1:-1:-1;;;7555:2:1;7540:18;;7533:36;7601:2;7586:18;;7281:329::o;7825:127::-;7886:10;7881:3;7877:20;7874:1;7867:31;7917:4;7914:1;7907:15;7941:4;7938:1;7931:15;7957:168;8030:9;;;8061;;8078:15;;;8072:22;;8058:37;8048:71;;8099:18;;:::i;8130:217::-;8170:1;8196;8186:132;;8240:10;8235:3;8231:20;8228:1;8221:31;8275:4;8272:1;8265:15;8303:4;8300:1;8293:15;8186:132;-1:-1:-1;8332:9:1;;8130:217::o;8761:127::-;8822:10;8817:3;8813:20;8810:1;8803:31;8853:4;8850:1;8843:15;8877:4;8874:1;8867:15;8893:125;8958:9;;;8979:10;;;8976:36;;;8992:18;;:::i;9023:135::-;9062:3;9083:17;;;9080:43;;9103:18;;:::i;:::-;-1:-1:-1;9150:1:1;9139:13;;9023:135::o;9520:128::-;9587:9;;;9608:11;;;9605:37;;;9622:18;;:::i;9869:422::-;9958:1;10001:5;9958:1;10015:270;10036:7;10026:8;10023:21;10015:270;;;10095:4;10091:1;10087:6;10083:17;10077:4;10074:27;10071:53;;;10104:18;;:::i;:::-;10154:7;10144:8;10140:22;10137:55;;;10174:16;;;;10137:55;10253:22;;;;10213:15;;;;10015:270;;;10019:3;9869:422;;;;;:::o;10296:806::-;10345:5;10375:8;10365:80;;-1:-1:-1;10416:1:1;10430:5;;10365:80;10464:4;10454:76;;-1:-1:-1;10501:1:1;10515:5;;10454:76;10546:4;10564:1;10559:59;;;;10632:1;10627:130;;;;10539:218;;10559:59;10589:1;10580:10;;10603:5;;;10627:130;10664:3;10654:8;10651:17;10648:43;;;10671:18;;:::i;:::-;-1:-1:-1;;10727:1:1;10713:16;;10742:5;;10539:218;;10841:2;10831:8;10828:16;10822:3;10816:4;10813:13;10809:36;10803:2;10793:8;10790:16;10785:2;10779:4;10776:12;10772:35;10769:77;10766:159;;;-1:-1:-1;10878:19:1;;;10910:5;;10766:159;10957:34;10982:8;10976:4;10957:34;:::i;:::-;11027:6;11023:1;11019:6;11015:19;11006:7;11003:32;11000:58;;;11038:18;;:::i;:::-;11076:20;;10296:806;-1:-1:-1;;;10296:806:1:o;11107:140::-;11165:5;11194:47;11235:4;11225:8;11221:19;11215:4;11194:47;:::i;13268:980::-;13530:4;13578:3;13567:9;13563:19;13609:6;13598:9;13591:25;13635:2;13673:6;13668:2;13657:9;13653:18;13646:34;13716:3;13711:2;13700:9;13696:18;13689:31;13740:6;13775;13769:13;13806:6;13798;13791:22;13844:3;13833:9;13829:19;13822:26;;13883:2;13875:6;13871:15;13857:29;;13904:1;13914:195;13928:6;13925:1;13922:13;13914:195;;;13993:13;;-1:-1:-1;;;;;13989:39:1;13977:52;;14084:15;;;;14049:12;;;;14025:1;13943:9;13914:195;;;-1:-1:-1;;;;;;;14165:32:1;;;;14160:2;14145:18;;14138:60;-1:-1:-1;;;14229:3:1;14214:19;14207:35;14126:3;13268:980;-1:-1:-1;;;13268:980:1:o;14865:306::-;14953:6;14961;14969;15022:2;15010:9;15001:7;14997:23;14993:32;14990:52;;;15038:1;15035;15028:12;14990:52;15067:9;15061:16;15051:26;;15117:2;15106:9;15102:18;15096:25;15086:35;;15161:2;15150:9;15146:18;15140:25;15130:35;;14865:306;;;;;:::o

Swarm Source

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