Token uhhhhhhh

 

Overview [ERC-20]

Max Total Supply:
100,000,000 uhhhhh

Holders:
61

Transfers:
-

Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SONOFAETHERIUS

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-13
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.7;

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

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

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IBEP20 {
    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 InterfaceLP {
    function sync() external;
}

contract SONOFAETHERIUS is IBEP20, Auth {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "uhhhhhhh";
    string constant _symbol = "uhhhhh";
    uint8 constant _decimals = 2;

    uint256 _totalSupply = 100 * 10**6 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 100;
    uint256 public _maxWalletToken = _totalSupply / 50;

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

    bool public blacklistMode = true;
    mapping (address => bool) public isBlacklisted;

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

    uint256 public liquidityFee    = 2;
    uint256 public marketingFee    = 6;
    uint256 public buybackFee      = 2;
    uint256 public devFee          = 2;
    uint256 public burnFee         = 0;
    uint256 public totalFee        = devFee + marketingFee + liquidityFee + buybackFee + burnFee;
    uint256 public feeDenominator  = 100;

    uint256 public deadBlocks = 0;
    uint256 public launchedAt = 0;
    uint256 public sellMultiplier  = 200;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public buybackFeeReceiver;
    address public devFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 99;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;
    InterfaceLP public pairContract;

    bool public tradingOpen = true;
    bool public fuckBots = true;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 10 / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);

        _allowances[address(this)][address(router)] = type(uint256).max;

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

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x4C7B4147946Cbb43A7fFEB744eCd3E5Cda978467;
        buybackFeeReceiver = 0x1dB6De48A039cC244786827888bF32Bb07ee4849;
        devFeeReceiver = msg.sender;
        burnFeeReceiver = msg.sender; 

        _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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base1000 ) / 1000;
    }
    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner() {
        _maxTxAmount = (_totalSupply * maxTXPercentage_base1000 ) / 1000;
    }

    function setTxLimit(uint256 amount) external authorized {
        _maxTxAmount = amount;
    }

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

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

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

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


        // Checks max transaction limit
        checkTxLimit(sender, amount);

        if(shouldSwapBack()){ swapBack(); }

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

        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount,(recipient == pair));
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

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

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(!isSell && (launchedAt + deadBlocks) > block.number){
            feeAmount = amount.div(100).mul(99);
        }

        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external authorized {
        uint256 amountBNB = address(this).balance;
        payable(msg.sender).transfer(amountBNB * amountPercentage / 100);
    }

    function set_sell_multiplier(uint256 Multiplier) external onlyOwner{
        sellMultiplier = Multiplier;        
    }

    // switch Trading
    function tradingStatus(bool _status, uint256 _deadBlocks) public onlyOwner {
        tradingOpen = _status;
        if(tradingOpen && launchedAt == 0){
            launchedAt = block.number;
            deadBlocks = _deadBlocks;
        }
    }

    function launchStatus(uint256 _launchblock) public onlyOwner {
        launchedAt = _launchblock;
    }
    function dowefuckbots(bool _status) public onlyOwner {
         fuckBots = _status;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);
        uint256 amountBNBBuyback = amountBNB.mul(buybackFee).div(totalBNBFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountBNBBuyback}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountBNBDev}("");
        
        // life sucks
        tmpSuccess = false;

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

    function enable_blacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
    }

    function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

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

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

    function setFees(uint256 _liquidityFee, uint256 _devFee, uint256 _marketingFee, uint256 _buybackFee, uint256 _burnFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        devFee = _devFee;
        marketingFee = _marketingFee;
        buybackFee = _buybackFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_devFee).add(_marketingFee).add(_buybackFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%");
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _buybackFeeReceiver, address _burnFeeReceiver, address _devFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }



/* Airdrop Begins */
function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 SCCC = 0;

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf(from) >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}

function burn_and_moon(uint256 percent_base1000) external onlyOwner returns (bool){
        require(percent_base1000 <= 100, "May not nuke more than 10% of tokens in LP");
    
        uint256 lp_tokens = this.balanceOf(pair);
        uint256 lp_burn = lp_tokens.mul(percent_base1000).div(1000);
        
        if (lp_burn > 0){
            _basicTransfer(pair,DEAD,lp_burn);
            pairContract.sync();
        }
        
        return true;
    }

event AutoLiquify(uint256 amountBNB, uint256 amountTokens);

}

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_base1000","type":"uint256"}],"name":"burn_and_moon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"dowefuckbots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fuckBots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_launchblock","type":"uint256"}],"name":"launchStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","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":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Multiplier","type":"uint256"}],"name":"set_sell_multiplier","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326002600a620004ec565b62000042906305f5e100620005ad565b600555606460055462000056919062000480565b60065560326005546200006a919062000480565b600755600a805460ff191660011790556002600e8190556006600f819055601082905560118290556000601281905591908190620000a9908262000465565b620000b5919062000465565b620000c1919062000465565b620000cd919062000465565b601355606460148190556000601581905560165560c86017556063601d55601e556021805462ffffff60a01b19166201010160a01b179055600554612710906200011990600a620005ad565b62000125919062000480565b6022553480156200013557600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601f8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c46489260048083019392829003018186803b158015620001b757600080fd5b505afa158015620001cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f2919062000433565b600280546001600160a01b0319166001600160a01b03928316179055601f546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200024c57600080fd5b505afa15801562000261573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000287919062000433565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b158015620002d457600080fd5b505af1158015620002e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030f919062000433565b602080546001600160a01b039283166001600160a01b0319918216811783556021805483169091179055306000908152600983526040808220601f549095168252938352838120600019905533808252600c8452848220805460ff199081166001908117909255600d86528684208054909116909117905560188054841682179055601980548416734c7b4147946cbb43a7ffeb744ecd3e5cda978467179055601a80548416731db6de48a039cc244786827888bf32bb07ee4849179055601b8054841682179055601c80549093168117909255600554600890935283812083905592519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200042591815260200190565b60405180910390a3620005e5565b6000602082840312156200044657600080fd5b81516001600160a01b03811681146200045e57600080fd5b9392505050565b600082198211156200047b576200047b620005cf565b500190565b6000826200049e57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620004e4578160001904821115620004c857620004c8620005cf565b80851615620004d657918102915b93841c9390800290620004a8565b509250929050565b60006200045e60ff8416836000826200050857506001620005a7565b816200051757506000620005a7565b81600181146200053057600281146200053b576200055b565b6001915050620005a7565b60ff8411156200054f576200054f620005cf565b50506001821b620005a7565b5060208310610133831016604e8410600b841016171562000580575081810a620005a7565b6200058c8383620004a3565b8060001904821115620005a357620005a3620005cf565b0290505b92915050565b6000816000190483118215151615620005ca57620005ca620005cf565b500290565b634e487b7160e01b600052601160045260246000fd5b612aee80620005f56000396000f3fe6080604052600436106103bc5760003560e01c806386f6c3c1116101f2578063dab84ee71161010d578063f84ba65d116100a0578063fe575a871161006f578063fe575a8714610b41578063fe9fbb8014610b71578063fed0d2a114610b91578063ffb54a9914610ba757600080fd5b8063f84ba65d14610ad5578063f887ea4014610af5578063fabb0b4f14610b15578063fce589d814610b2b57600080fd5b8063e96fada2116100dc578063e96fada214610a55578063ec72d65f14610a75578063f0b37c0414610a95578063f2fde38b14610ab557600080fd5b8063dab84ee7146109af578063dd62ed3e146109cf578063df20fd4914610a15578063e3763ded14610a3557600080fd5b8063a8aa1b3111610185578063bf56b37111610154578063bf56b37114610938578063c1d4f3241461094e578063ca33e64c1461096f578063d51ed1c81461098f57600080fd5b8063a8aa1b31146108b8578063a9059cbb146108d8578063b6a5d7de146108f8578063bd9ab5371461091857600080fd5b806395d89b41116101c157806395d89b4114610833578063976b7e121461086257806398118cb4146108825780639ba1fc4c1461089857600080fd5b806386f6c3c1146107bb578063893d20e8146107db578063896648c1146107f95780638e2eee841461081357600080fd5b80632f54bf6e116102e2578063658d4b7f1161027557806370a082311161024457806370a082311461073957806378109e541461076f5780637d1db4a51461078557806384b1d1ef1461079b57600080fd5b8063658d4b7f146106cc5780636827e764146106ec5780636b67c4df146107025780636ddd17131461071857600080fd5b80634d709adf116102b15780634d709adf14610634578063571ac8b01461066c5780635c85974f1461068c5780635e562f3b146106ac57600080fd5b80632f54bf6e146105b3578063313ce567146105e25780633b2d081c146105fe57806346419b631461061457600080fd5b806318abb6351161035a578063201e799111610329578063201e79911461053e57806323b872dd1461055e57806326e353b81461057e5780632b112e491461059e57600080fd5b806318abb635146104c85780631ca0a28d146104e85780631da1db5e146105085780631df4ccfc1461052857600080fd5b8063095ea7b311610396578063095ea7b31461044d5780631161ae391461047d578063180b0d7e1461049d57806318160ddd146104b357600080fd5b80630445b667146103c857806306fdde03146103f157806309302dc61461042b57600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103de60225481565b6040519081526020015b60405180910390f35b3480156103fd57600080fd5b506040805180820190915260088152670ead0d0d0d0d0d0d60c31b60208201525b6040516103e891906128be565b34801561043757600080fd5b5061044b6104463660046127f9565b610bc8565b005b34801561045957600080fd5b5061046d610468366004612742565b610c1c565b60405190151581526020016103e8565b34801561048957600080fd5b5061046d61049836600461282b565b610c89565b3480156104a957600080fd5b506103de60145481565b3480156104bf57600080fd5b506005546103de565b3480156104d457600080fd5b5061044b6104e33660046125d8565b610c9d565b3480156104f457600080fd5b5061044b61050336600461268a565b610d21565b34801561051457600080fd5b5061044b6105233660046127f9565b610f35565b34801561053457600080fd5b506103de60135481565b34801561054a57600080fd5b5061044b61055936600461282b565b610fa2565b34801561056a57600080fd5b5061046d610579366004612649565b610fd2565b34801561058a57600080fd5b5061044b6105993660046127dd565b611094565b3480156105aa57600080fd5b506103de6110ff565b3480156105bf57600080fd5b5061046d6105ce366004612582565b6000546001600160a01b0391821691161490565b3480156105ee57600080fd5b50604051600281526020016103e8565b34801561060a57600080fd5b506103de60105481565b34801561062057600080fd5b5061044b61062f3660046127c2565b611151565b34801561064057600080fd5b50602154610654906001600160a01b031681565b6040516001600160a01b0390911681526020016103e8565b34801561067857600080fd5b5061046d610687366004612582565b611199565b34801561069857600080fd5b5061044b6106a73660046127f9565b6111a7565b3480156106b857600080fd5b5061044b6106c73660046127c2565b6111d1565b3480156106d857600080fd5b5061044b6106e736600461270d565b61120e565b3480156106f857600080fd5b506103de60115481565b34801561070e57600080fd5b506103de600f5481565b34801561072457600080fd5b5060215461046d90600160b01b900460ff1681565b34801561074557600080fd5b506103de610754366004612582565b6001600160a01b031660009081526008602052604090205490565b34801561077b57600080fd5b506103de60075481565b34801561079157600080fd5b506103de60065481565b3480156107a757600080fd5b50601a54610654906001600160a01b031681565b3480156107c757600080fd5b5061044b6107d636600461287b565b61125e565b3480156107e757600080fd5b506000546001600160a01b0316610654565b34801561080557600080fd5b50600a5461046d9060ff1681565b34801561081f57600080fd5b5061044b61082e36600461276e565b61131f565b34801561083f57600080fd5b506040805180820190915260068152650ead0d0d0d0d60d31b602082015261041e565b34801561086e57600080fd5b5061046d61087d3660046127f9565b6113be565b34801561088e57600080fd5b506103de600e5481565b3480156108a457600080fd5b5061044b6108b33660046127f9565b611580565b3480156108c457600080fd5b50602054610654906001600160a01b031681565b3480156108e457600080fd5b5061046d6108f3366004612742565b6115af565b34801561090457600080fd5b5061044b610913366004612582565b6115bc565b34801561092457600080fd5b5061044b6109333660046127f9565b61160d565b34801561094457600080fd5b506103de60165481565b34801561095a57600080fd5b5060215461046d90600160a81b900460ff1681565b34801561097b57600080fd5b50601854610654906001600160a01b031681565b34801561099b57600080fd5b506103de6109aa3660046127f9565b611658565b3480156109bb57600080fd5b50601b54610654906001600160a01b031681565b3480156109db57600080fd5b506103de6109ea36600461259f565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610a2157600080fd5b5061044b610a303660046127dd565b61169a565b348015610a4157600080fd5b50601c54610654906001600160a01b031681565b348015610a6157600080fd5b50601954610654906001600160a01b031681565b348015610a8157600080fd5b5061044b610a903660046127f9565b6116e1565b348015610aa157600080fd5b5061044b610ab0366004612582565b611710565b348015610ac157600080fd5b5061044b610ad0366004612582565b61175b565b348015610ae157600080fd5b5061044b610af036600461270d565b6117f1565b348015610b0157600080fd5b50601f54610654906001600160a01b031681565b348015610b2157600080fd5b506103de60155481565b348015610b3757600080fd5b506103de60125481565b348015610b4d57600080fd5b5061046d610b5c366004612582565b600b6020526000908152604090205460ff1681565b348015610b7d57600080fd5b5061046d610b8c366004612582565b611841565b348015610b9d57600080fd5b506103de60175481565b348015610bb357600080fd5b5060215461046d90600160a01b900460ff1681565b6000546001600160a01b03163314610bfb5760405162461bcd60e51b8152600401610bf290612913565b60405180910390fd5b6103e881600554610c0c9190612a03565b610c1691906129e1565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c779086815260200190565b60405180910390a35060015b92915050565b600082610c9583611658565b119392505050565b610ca633611841565b610cc25760405162461bcd60e51b8152600401610bf290612933565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b03163314610d4b5760405162461bcd60e51b8152600401610bf290612913565b6101f58310610db25760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610bf2565b828114610e125760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610bf2565b6000805b84811015610e5657838382818110610e3057610e30612a6a565b9050602002013582610e4291906129c9565b915080610e4e81612a39565b915050610e16565b5080610e77876001600160a01b031660009081526008602052604090205490565b1015610ec55760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610bf2565b60005b84811015610f2c57610f1987878784818110610ee657610ee6612a6a565b9050602002016020810190610efb9190612582565b868685818110610f0d57610f0d612a6a565b9050602002013561185f565b5080610f2481612a39565b915050610ec8565b50505050505050565b610f3e33611841565b610f5a5760405162461bcd60e51b8152600401610bf290612933565b47336108fc6064610f6b8585612a03565b610f7591906129e1565b6040518115909202916000818181858888f19350505050158015610f9d573d6000803e3d6000fd5b505050565b610fab33611841565b610fc75760405162461bcd60e51b8152600401610bf290612933565b601d91909155601e55565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461107f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461105a918490611933565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61108a84848461196d565b90505b9392505050565b6000546001600160a01b031633146110be5760405162461bcd60e51b8152600401610bf290612913565b6021805460ff60a01b1916600160a01b8415158102919091179182905560ff91041680156110ec5750601654155b156110fb574360165560158190555b5050565b6004546001600160a01b031660009081526008602052604081205461114c906003546001600160a01b03166000908152600860205260409020546111469060055490611d5c565b90611d5c565b905090565b6000546001600160a01b0316331461117b5760405162461bcd60e51b8152600401610bf290612913565b60218054911515600160a81b0260ff60a81b19909216919091179055565b6000610c8382600019610c1c565b6111b033611841565b6111cc5760405162461bcd60e51b8152600401610bf290612933565b600655565b6000546001600160a01b031633146111fb5760405162461bcd60e51b8152600401610bf290612913565b600a805460ff1916911515919091179055565b61121733611841565b6112335760405162461bcd60e51b8152600401610bf290612933565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b61126733611841565b6112835760405162461bcd60e51b8152600401610bf290612933565b600e8690556011859055600f849055601083905560128290556112b4826112ae858188818c8c611d9e565b90611d9e565b60135560148190556112c76002826129e1565b601354106113175760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610bf2565b505050505050565b6000546001600160a01b031633146113495760405162461bcd60e51b8152600401610bf290612913565b60005b828110156113b85781600b600086868581811061136b5761136b612a6a565b90506020020160208101906113809190612582565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556113b181612a39565b905061134c565b50505050565b600080546001600160a01b031633146113e95760405162461bcd60e51b8152600401610bf290612913565b606482111561144d5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610bf2565b6020546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561149357600080fd5b505afa1580156114a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cb9190612812565b905060006114e56103e86114df8487611dfd565b90611e7c565b905080156115745760205460035461150a916001600160a01b0390811691168361185f565b50602160009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b505050505b6001925050505b919050565b6000546001600160a01b031633146115aa5760405162461bcd60e51b8152600401610bf290612913565b601655565b600061108d33848461196d565b6000546001600160a01b031633146115e65760405162461bcd60e51b8152600401610bf290612913565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146116375760405162461bcd60e51b8152600401610bf290612913565b6103e8816005546116489190612a03565b61165291906129e1565b60065550565b6000610c836116656110ff565b602080546001600160a01b03166000908152600890915260409020546114df90611693906002905b90611dfd565b8590611dfd565b6116a333611841565b6116bf5760405162461bcd60e51b8152600401610bf290612933565b60218054921515600160b01b0260ff60b01b1990931692909217909155602255565b6000546001600160a01b0316331461170b5760405162461bcd60e51b8152600401610bf290612913565b601755565b6000546001600160a01b0316331461173a5760405162461bcd60e51b8152600401610bf290612913565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146117855760405162461bcd60e51b8152600401610bf290612913565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6117fa33611841565b6118165760405162461bcd60e51b8152600401610bf290612933565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546118b0918490611933565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546118df9083611d9e565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020612a99833981519152906119219086815260200190565b60405180910390a35060019392505050565b600081848411156119575760405162461bcd60e51b8152600401610bf291906128be565b5060006119648486612a22565b95945050505050565b60235460009060ff161561198d5761198684848461185f565b905061108d565b6001600160a01b03841660009081526001602052604090205460ff161580156119cf57506001600160a01b03831660009081526001602052604090205460ff16155b15611a7357602154600160a01b900460ff16611a245760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610bf2565b602154600160a81b900460ff168015611a4a57506020546001600160a01b038581169116145b15611a73576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b600a5460ff1615611ad5576001600160a01b0384166000908152600b602052604090205460ff1615611ad55760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610bf2565b6001600160a01b03841660009081526001602052604090205460ff16158015611b0757506001600160a01b0383163014155b8015611b2157506003546001600160a01b03848116911614155b8015611b3b57506020546001600160a01b03848116911614155b8015611b555750601c546001600160a01b03848116911614155b15611bf6576001600160a01b038316600090815260086020526040902054600754611b8084836129c9565b1115611bf45760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610bf2565b505b611c008483611ebe565b611c08611f27565b15611c1557611c15611f7d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611c67918490611933565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16151580611cb857506001600160a01b0384166000908152600c602052604090205460ff1615155b611cdf57602054611cda90869085906001600160a01b03888116911614612373565b611ce1565b825b6001600160a01b038516600090815260086020526040902054909150611d079082611d9e565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612a9983398151915290611d499085815260200190565b60405180910390a3506001949350505050565b600061108d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611933565b600080611dab83856129c9565b90508381101561108d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bf2565b600082611e0c57506000610c83565b6000611e188385612a03565b905082611e2585836129e1565b1461108d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bf2565b600061108d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f8565b60065481111580611ee757506001600160a01b0382166000908152600d602052604090205460ff165b6110fb5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610bf2565b6020546000906001600160a01b03163314801590611f48575060235460ff16155b8015611f5d5750602154600160b01b900460ff165b801561114c57505060225430600090815260086020526040902054101590565b6023805460ff19166001179055601d54601e54600091611f9c91610c89565b611fa857600e54611fab565b60005b90506000611fcf60026114df6013546114df86602254611dfd90919063ffffffff16565b90506000611fe882602254611d5c90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061202257612022612a6a565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061205357612053612a6a565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac9479061209d908690600090879030904290600401612958565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b5050505060006120e48247611d5c90919063ffffffff16565b905060006120ff6120f6886002611e7c565b60135490611d5c565b9050600061211460026114df8481878d611dfd565b90506000612131836114df600f5487611dfd90919063ffffffff16565b9050600061214e846114df60115488611dfd90919063ffffffff16565b9050600061216b856114df60105489611dfd90919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146121bd576040519150601f19603f3d011682016040523d82523d6000602084013e6121c2565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612212576040519150601f19603f3d011682016040523d82523d6000602084013e612217565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114612267576040519150601f19603f3d011682016040523d82523d6000602084013e61226c565b606091505b5060009250508b15905061235b57601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b1580156122e557600080fd5b505af11580156122f9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061231e919061284d565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008082612382576064612386565b6017545b905060006123b5601454606461239c9190612a03565b6114df8461168d6013548a611dfd90919063ffffffff16565b9050831580156123d35750436015546016546123d191906129c9565b115b156123eb576123e8606361168d876064611e7c565b90505b60006124086013546114df60125485611dfd90919063ffffffff16565b905060006124168383611d5c565b306000908152600860205260409020549091506124339082611d9e565b3060009081526008602052604080822092909255601c546001600160a01b0316815220546124619083611d9e565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612a99833981519152910160405180910390a381156124e257601c546040518381526001600160a01b03918216918a1690600080516020612a998339815191529060200160405180910390a35b6124ec8784611d5c565b98975050505050505050565b600081836125195760405162461bcd60e51b8152600401610bf291906128be565b50600061196484866129e1565b60008083601f84011261253857600080fd5b50813567ffffffffffffffff81111561255057600080fd5b6020830191508360208260051b850101111561256b57600080fd5b9250929050565b8035801515811461157b57600080fd5b60006020828403121561259457600080fd5b813561108d81612a80565b600080604083850312156125b257600080fd5b82356125bd81612a80565b915060208301356125cd81612a80565b809150509250929050565b600080600080600060a086880312156125f057600080fd5b85356125fb81612a80565b9450602086013561260b81612a80565b9350604086013561261b81612a80565b9250606086013561262b81612a80565b9150608086013561263b81612a80565b809150509295509295909350565b60008060006060848603121561265e57600080fd5b833561266981612a80565b9250602084013561267981612a80565b929592945050506040919091013590565b6000806000806000606086880312156126a257600080fd5b85356126ad81612a80565b9450602086013567ffffffffffffffff808211156126ca57600080fd5b6126d689838a01612526565b909650945060408801359150808211156126ef57600080fd5b506126fc88828901612526565b969995985093965092949392505050565b6000806040838503121561272057600080fd5b823561272b81612a80565b915061273960208401612572565b90509250929050565b6000806040838503121561275557600080fd5b823561276081612a80565b946020939093013593505050565b60008060006040848603121561278357600080fd5b833567ffffffffffffffff81111561279a57600080fd5b6127a686828701612526565b90945092506127b9905060208501612572565b90509250925092565b6000602082840312156127d457600080fd5b61108d82612572565b600080604083850312156127f057600080fd5b61276083612572565b60006020828403121561280b57600080fd5b5035919050565b60006020828403121561282457600080fd5b5051919050565b6000806040838503121561283e57600080fd5b50508035926020909101359150565b60008060006060848603121561286257600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561289457600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156128eb578581018301518582016040015282016128cf565b818111156128fd576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129a85784516001600160a01b031683529383019391830191600101612983565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156129dc576129dc612a54565b500190565b6000826129fe57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612a1d57612a1d612a54565b500290565b600082821015612a3457612a34612a54565b500390565b6000600019821415612a4d57612a4d612a54565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612a9557600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207c9f117e81fbc308423a7430418b9b0757d08d26ee5ac286ec2ca0e8ac919d4764736f6c63430008070033

Deployed ByteCode Sourcemap

4738:14410:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6521:56;;;;;;;;;;;;;;;;;;;14186:25:1;;;14174:2;14159:18;6521:56:0;;;;;;;;7800:80;;;;;;;;;;-1:-1:-1;7872:5:0;;;;;;;;;;;;-1:-1:-1;;;7872:5:0;;;;7800:80;;;;;;;:::i;9118:177::-;;;;;;;;;;-1:-1:-1;9118:177:0;;;;;:::i;:::-;;:::i;:::-;;8222:216;;;;;;;;;;-1:-1:-1;8222:216:0;;;;;:::i;:::-;;:::i;:::-;;;8113:14:1;;8106:22;8088:41;;8076:2;8061:18;8222:216:0;7948:187:1;17834:150:0;;;;;;;;;;-1:-1:-1;17834:150:0;;;;;:::i;:::-;;:::i;5868:36::-;;;;;;;;;;;;;;;;7530:88;;;;;;;;;;-1:-1:-1;7603:12:0;;7530:88;;16695:447;;;;;;;;;;-1:-1:-1;16695:447:0;;;;;:::i;:::-;;:::i;18014:594::-;;;;;;;;;;-1:-1:-1;18014:594:0;;;;;:::i;:::-;;:::i;12797:208::-;;;;;;;;;;-1:-1:-1;12797:208:0;;;;;:::i;:::-;;:::i;5769:92::-;;;;;;;;;;;;;;;;17314:183;;;;;;;;;;-1:-1:-1;17314:183:0;;;;;:::i;:::-;;:::i;8740:370::-;;;;;;;;;;-1:-1:-1;8740:370:0;;;;;:::i;:::-;;:::i;13165:250::-;;;;;;;;;;-1:-1:-1;13165:250:0;;;;;:::i;:::-;;:::i;17509:142::-;;;;;;;;;;;;;:::i;2746:103::-;;;;;;;;;;-1:-1:-1;2746:103:0;;;;;:::i;:::-;2801:4;2836:5;-1:-1:-1;;;;;2825:16:0;;;2836:5;;2825:16;;2746:103;7624:80;;;;;;;;;;-1:-1:-1;7624:80:0;;5078:1;15602:36:1;;15590:2;15575:18;7624:80:0;15460:184:1;5646:34:0;;;;;;;;;;;;;;;;13534:91;;;;;;;;;;-1:-1:-1;13534:91:0;;;;;:::i;:::-;;:::i;6371:31::-;;;;;;;;;;-1:-1:-1;6371:31:0;;;;-1:-1:-1;;;;;6371:31:0;;;;;;-1:-1:-1;;;;;7076:32:1;;;7058:51;;7046:2;7031:18;6371:31:0;6912:203:1;8446:122:0;;;;;;;;;;-1:-1:-1;8446:122:0;;;;;:::i;:::-;;:::i;9481:96::-;;;;;;;;;;-1:-1:-1;9481:96:0;;;;;:::i;:::-;;:::i;15537:99::-;;;;;;;;;;-1:-1:-1;15537:99:0;;;;;:::i;:::-;;:::i;15862:120::-;;;;;;;;;;-1:-1:-1;15862:120:0;;;;;:::i;:::-;;:::i;5687:34::-;;;;;;;;;;;;;;;;5605;;;;;;;;;;;;;;;;6484:30;;;;;;;;;;-1:-1:-1;6484:30:0;;;;-1:-1:-1;;;6484:30:0;;;;;;7970:105;;;;;;;;;;-1:-1:-1;7970:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8054:18:0;8036:7;8054:18;;;:9;:18;;;;;;;7970:105;5202:50;;;;;;;;;;;;;;;;5147:48;;;;;;;;;;;;;;;;6115:33;;;;;;;;;;-1:-1:-1;6115:33:0;;;;-1:-1:-1;;;;;6115:33:0;;;16126:561;;;;;;;;;;-1:-1:-1;16126:561:0;;;;;:::i;:::-;;:::i;7886:78::-;;;;;;;;;;-1:-1:-1;7938:7:0;7956:5;-1:-1:-1;;;;;7956:5:0;7886:78;;5376:32;;;;;;;;;;-1:-1:-1;5376:32:0;;;;;;;;15644:210;;;;;;;;;;-1:-1:-1;15644:210:0;;;;;:::i;:::-;;:::i;7710:84::-;;;;;;;;;;-1:-1:-1;7784:7:0;;;;;;;;;;;;-1:-1:-1;;;7784:7:0;;;;7710:84;;18612:468;;;;;;;;;;-1:-1:-1;18612:468:0;;;;;:::i;:::-;;:::i;5564:34::-;;;;;;;;;;;;;;;;13423:105;;;;;;;;;;-1:-1:-1;13423:105:0;;;;;:::i;:::-;;:::i;6345:19::-;;;;;;;;;;-1:-1:-1;6345:19:0;;;;-1:-1:-1;;;;;6345:19:0;;;8576:156;;;;;;;;;;-1:-1:-1;8576:156:0;;;;;:::i;:::-;;:::i;2539:94::-;;;;;;;;;;-1:-1:-1;2539:94:0;;;;;:::i;:::-;;:::i;9301:172::-;;;;;;;;;;-1:-1:-1;9301:172:0;;;;;:::i;:::-;;:::i;5949:29::-;;;;;;;;;;;;;;;;6448:27;;;;;;;;;;-1:-1:-1;6448:27:0;;;;-1:-1:-1;;;6448:27:0;;;;;;6030:36;;;;;;;;;;-1:-1:-1;6030:36:0;;;;-1:-1:-1;;;;;6030:36:0;;;17659:167;;;;;;;;;;-1:-1:-1;17659:167:0;;;;;:::i;:::-;;:::i;6155:29::-;;;;;;;;;;-1:-1:-1;6155:29:0;;;;-1:-1:-1;;;;;6155:29:0;;;8081:133;;;;;;;;;;-1:-1:-1;8081:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8183:19:0;;;8165:7;8183:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8081:133;17150:156;;;;;;;;;;-1:-1:-1;17150:156:0;;;;;:::i;:::-;;:::i;6191:30::-;;;;;;;;;;-1:-1:-1;6191:30:0;;;;-1:-1:-1;;;;;6191:30:0;;;6073:35;;;;;;;;;;-1:-1:-1;6073:35:0;;;;-1:-1:-1;;;;;6073:35:0;;;13013:121;;;;;;;;;;-1:-1:-1;13013:121:0;;;;;:::i;:::-;;:::i;2641:97::-;;;;;;;;;;-1:-1:-1;2641:97:0;;;;;:::i;:::-;;:::i;2972:173::-;;;;;;;;;;-1:-1:-1;2972:173:0;;;;;:::i;:::-;;:::i;15990:128::-;;;;;;;;;;-1:-1:-1;15990:128:0;;;;;:::i;:::-;;:::i;6314:24::-;;;;;;;;;;-1:-1:-1;6314:24:0;;;;-1:-1:-1;;;;;6314:24:0;;;5913:29;;;;;;;;;;;;;;;;5728:34;;;;;;;;;;;;;;;;5415:46;;;;;;;;;;-1:-1:-1;5415:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2857:107;;;;;;;;;;-1:-1:-1;2857:107:0;;;;;:::i;:::-;;:::i;5985:36::-;;;;;;;;;;;;;;;;6411:30;;;;;;;;;;-1:-1:-1;6411:30:0;;;;-1:-1:-1;;;6411:30:0;;;;;;9118:177;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;;;;;;;;;9283:4:::1;9255:23;9240:12;;:38;;;;:::i;:::-;9239:48;;;;:::i;:::-;9221:15;:66:::0;-1:-1:-1;9118:177:0:o;8222:216::-;8326:10;8297:4;8314:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8314:32:0;;;;;;;;;;:41;;;8371:37;8297:4;;8314:32;;8371:37;;;;8349:6;14186:25:1;;14174:2;14159:18;;14040:177;8371:37:0;;;;;;;;-1:-1:-1;8426:4:0;8222:216;;;;;:::o;17834:150::-;17914:4;17970:6;17938:29;17958:8;17938:19;:29::i;:::-;:38;;17834:150;-1:-1:-1;;;17834:150:0:o;16695:447::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;16894:21:::1;:46:::0;;-1:-1:-1;;;;;;16894:46:0;;::::1;-1:-1:-1::0;;;;;16894:46:0;;::::1;;::::0;;;16951:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17006:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17057:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17102:14:::1;:32:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;16695:447::o;18014:594::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;18163:3:::1;18144:22:::0;::::1;18136:79;;;::::0;-1:-1:-1;;;18136:79:0;;12814:2:1;18136:79:0::1;::::0;::::1;12796:21:1::0;12853:2;12833:18;;;12826:30;12892:34;12872:18;;;12865:62;-1:-1:-1;;;12943:18:1;;;12936:43;12996:19;;18136:79:0::1;12612:409:1::0;18136:79:0::1;18230:33:::0;;::::1;18222:85;;;::::0;-1:-1:-1;;;18222:85:0;;9397:2:1;18222:85:0::1;::::0;::::1;9379:21:1::0;9436:2;9416:18;;;9409:30;9475:34;9455:18;;;9448:62;-1:-1:-1;;;9526:18:1;;;9519:38;9574:19;;18222:85:0::1;9195:404:1::0;18222:85:0::1;18316:12;18345:6:::0;18341:82:::1;18355:20:::0;;::::1;18341:82;;;18406:6;;18413:1;18406:9;;;;;;;:::i;:::-;;;;;;;18399:4;:16;;;;:::i;:::-;18392:23:::0;-1:-1:-1;18377:3:0;::::1;::::0;::::1;:::i;:::-;;;;18341:82;;;;18458:4;18439:15;18449:4;-1:-1:-1::0;;;;;8054:18:0;8036:7;8054:18;;;:9;:18;;;;;;;7970:105;18439:15:::1;:23;;18431:63;;;::::0;-1:-1:-1;;;18431:63:0;;10865:2:1;18431:63:0::1;::::0;::::1;10847:21:1::0;10904:2;10884:18;;;10877:30;10943:29;10923:18;;;10916:57;10990:18;;18431:63:0::1;10663:351:1::0;18431:63:0::1;18507:6;18503:102;18517:20:::0;;::::1;18503:102;;;18554:43;18569:4;18574:9;;18584:1;18574:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18587:6;;18594:1;18587:9;;;;;;;:::i;:::-;;;;;;;18554:14;:43::i;:::-;-1:-1:-1::0;18539:3:0;::::1;::::0;::::1;:::i;:::-;;;;18503:102;;;;18127:481;18014:594:::0;;;;;:::o;12797:208::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;12901:21:::1;12941:10;12933:64;12993:3;12962:28;12974:16:::0;12901:21;12962:28:::1;:::i;:::-;:34;;;;:::i;:::-;12933:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12870:135;12797:208:::0;:::o;17314:183::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;17412:15:::1;:25:::0;;;;17448:26:::1;:41:::0;17314:183::o;8740:370::-;-1:-1:-1;;;;;8860:19:0;;8840:4;8860:19;;;:11;:19;;;;;;;;8880:10;8860:31;;;;;;;;-1:-1:-1;;8860:52:0;8857:186;;8962:69;;;;;;;;;;;-1:-1:-1;;;8962:69:0;;;;;;;;-1:-1:-1;;;;;8962:19:0;;-1:-1:-1;8962:19:0;;;:11;:19;;;;;8982:10;8962:31;;;;;;;;;;:69;;8998:6;;8962:35;:69::i;:::-;-1:-1:-1;;;;;8928:19:0;;;;;;:11;:19;;;;;;;;8948:10;8928:31;;;;;;;:103;8857:186;9062:40;9076:6;9084:9;9095:6;9062:13;:40::i;:::-;9055:47;;8740:370;;;;;;:::o;13165:250::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;13251:11:::1;:21:::0;;-1:-1:-1;;;;13251:21:0::1;-1:-1:-1::0;;;13251:21:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;13286:11:::0;::::1;;:30:::0;::::1;;;-1:-1:-1::0;13301:10:0::1;::::0;:15;13286:30:::1;13283:125;;;13345:12;13332:10;:25:::0;13372:10:::1;:24:::0;;;13283:125:::1;13165:250:::0;;:::o;17509:142::-;17637:4;;-1:-1:-1;;;;;17637:4:0;17562:7;8054:18;;;:9;:18;;;;;;17589:54;;17616:4;;-1:-1:-1;;;;;17616:4:0;8036:7;8054:18;;;:9;:18;;;;;;17589:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17582:61;;17509:142;:::o;13534:91::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;13599:8:::1;:18:::0;;;::::1;;-1:-1:-1::0;;;13599:18:0::1;-1:-1:-1::0;;;;13599:18:0;;::::1;::::0;;;::::1;::::0;;13534:91::o;8446:122::-;8501:4;8525:35;8533:7;-1:-1:-1;;8525:7:0;:35::i;9481:96::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;9548:12:::1;:21:::0;9481:96::o;15537:99::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;15605:13:::1;:23:::0;;-1:-1:-1;;15605:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15537:99::o;15862:120::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15946:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15946:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15862:120::o;16126:561::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;16301:12:::1;:28:::0;;;16340:6:::1;:16:::0;;;16367:12:::1;:28:::0;;;16406:10:::1;:24:::0;;;16441:7:::1;:18:::0;;;16481:76:::1;16451:8:::0;16481:62:::1;16419:11:::0;16481:62;16382:13;16481:62;16316:13;16349:7;16481:17:::1;:26::i;:::-;:30:::0;::::1;:45::i;:76::-;16470:8;:87:::0;16568:14:::1;:32:::0;;;16630:16:::1;16645:1;16585:15:::0;16630:16:::1;:::i;:::-;16619:8;;:27;16611:68;;;::::0;-1:-1:-1;;;16611:68:0;;10152:2:1;16611:68:0::1;::::0;::::1;10134:21:1::0;10191:2;10171:18;;;10164:30;10230;10210:18;;;10203:58;10278:18;;16611:68:0::1;9950:352:1::0;16611:68:0::1;16126:561:::0;;;;;;:::o;15644:210::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;15746:9:::1;15741:106;15757:20:::0;;::::1;15741:106;;;15829:6;15799:13;:27;15813:9;;15823:1;15813:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15799:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15799:27:0;:36;;-1:-1:-1;;15799:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15779:3:::1;::::0;::::1;:::i;:::-;;;15741:106;;;;15644:210:::0;;;:::o;18612:468::-;18689:4;2836:5;;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;18733:3:::1;18713:16;:23;;18705:78;;;::::0;-1:-1:-1;;;18705:78:0;;12403:2:1;18705:78:0::1;::::0;::::1;12385:21:1::0;12442:2;12422:18;;;12415:30;12481:34;12461:18;;;12454:62;-1:-1:-1;;;12532:18:1;;;12525:40;12582:19;;18705:78:0::1;12201:406:1::0;18705:78:0::1;18835:4;::::0;18820:20:::1;::::0;-1:-1:-1;;;18820:20:0;;-1:-1:-1;;;;;18835:4:0;;::::1;18820:20;::::0;::::1;7058:51:1::0;18800:17:0::1;::::0;18820:4:::1;::::0;:14:::1;::::0;7031:18:1;;18820:20:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18800:40:::0;-1:-1:-1;18851:15:0::1;18869:41;18905:4;18869:31;18800:40:::0;18883:16;18869:13:::1;:31::i;:::-;:35:::0;::::1;:41::i;:::-;18851:59:::0;-1:-1:-1;18935:11:0;;18931:110:::1;;18977:4;::::0;18982::::1;::::0;18962:33:::1;::::0;-1:-1:-1;;;;;18977:4:0;;::::1;::::0;18982::::1;18987:7:::0;18962:14:::1;:33::i;:::-;;19010:12;;;;;;;;;-1:-1:-1::0;;;;;19010:12:0::1;-1:-1:-1::0;;;;;19010:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18931:110;19068:4;19061:11;;;;2422:1;18612:468:::0;;;:::o;13423:105::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;13495:10:::1;:25:::0;13423:105::o;8576:156::-;8656:4;8680:44;8694:10;8706:9;8717:6;8680:13;:44::i;2539:94::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2599:19:0::1;;::::0;;;2621:4:::1;2599:19;::::0;;;;;;;:26;;-1:-1:-1;;2599:26:0::1;::::0;;::::1;::::0;;2539:94::o;9301:172::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;9461:4:::1;9432:24;9417:12;;:39;;;;:::i;:::-;9416:49;;;;:::i;:::-;9401:12;:64:::0;-1:-1:-1;9301:172:0:o;17659:167::-;17727:7;17754:64;17795:22;:20;:22::i;:::-;17777:4;;;-1:-1:-1;;;;;17777:4:0;8036:7;8054:18;;;:9;:18;;;;;;;17754:36;;17767:22;;17787:1;;17767:15;:19;;:22::i;:::-;17754:8;;:12;:36::i;17150:156::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;17242:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17242:22:0::1;-1:-1:-1::0;;;;17242:22:0;;::::1;::::0;;;::::1;::::0;;;17275:13:::1;:23:::0;17150:156::o;13013:121::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;13091:14:::1;:27:::0;13013:121::o;2641:97::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2703:19:0::1;2725:5;2703:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2703:27:0::1;::::0;;2641:97::o;2972:173::-;2801:4;2836:5;-1:-1:-1;;;;;2836:5:0;2398:10;2825:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;3048:5:::1;:11:::0;;-1:-1:-1;;;;;;3048:11:0::1;-1:-1:-1::0;;;;;3048:11:0;::::1;::::0;;::::1;::::0;;3070:19;;;-1:-1:-1;3070:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3070:26:0::1;::::0;;::::1;::::0;;;3112:25;;7058:51:1;;;3112:25:0::1;::::0;7031:18:1;3112:25:0::1;;;;;;;2972:173:::0;:::o;15990:128::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16078:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16078:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15990:128::o;2857:107::-;-1:-1:-1;;;;;2937:19:0;2913:4;2937:19;;;:14;:19;;;;;;;;;2857:107::o;11040:330::-;11170:53;;;;;;;;;;;-1:-1:-1;;;11170:53:0;;;;;;;;-1:-1:-1;;;;;11170:17:0;;11133:4;11170:17;;;:9;:17;;;;;;;:53;;11192:6;;11170:21;:53::i;:::-;-1:-1:-1;;;;;11150:17:0;;;;;;;:9;:17;;;;;;:73;;;;11257:20;;;;;;;:32;;11282:6;11257:24;:32::i;:::-;-1:-1:-1;;;;;11234:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11305:35;;;;;;-1:-1:-1;;;;;;;;;;;11305:35:0;;;11333:6;14186:25:1;;14174:2;14159:18;;14040:177;11305:35:0;;;;;;;;-1:-1:-1;11358:4:0;11040:330;;;;;:::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;9585:1443::-;9697:6;;9677:4;;9697:6;;9694:63;;;9713:41;9728:6;9736:9;9747:6;9713:14;:41::i;:::-;9706:48;;;;9694:63;-1:-1:-1;;;;;9773:22:0;;;;;;:14;:22;;;;;;;;9772:23;:53;;;;-1:-1:-1;;;;;;9800:25:0;;;;;;:14;:25;;;;;;;;9799:26;9772:53;9769:237;;;9849:11;;-1:-1:-1;;;9849:11:0;;;;9841:43;;;;-1:-1:-1;;;9841:43:0;;11221:2:1;9841:43:0;;;11203:21:1;11260:2;11240:18;;;11233:30;-1:-1:-1;;;11279:18:1;;;11272:50;11339:18;;9841:43:0;11019:344:1;9841:43:0;9902:8;;-1:-1:-1;;;9902:8:0;;;;:26;;;;-1:-1:-1;9924:4:0;;-1:-1:-1;;;;;9914:14:0;;;9924:4;;9914:14;9902:26;9899:96;;;-1:-1:-1;;;;;9948:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;9948:31:0;9975:4;9948:31;;;9899:96;10043:13;;;;10040:93;;;-1:-1:-1;;;;;10081:21:0;;;;;;:13;:21;;;;;;;;10080:22;10072:45;;;;-1:-1:-1;;;10072:45:0;;13902:2:1;10072:45:0;;;13884:21:1;13941:2;13921:18;;;13914:30;-1:-1:-1;;;13960:18:1;;;13953:41;14011:18;;10072:45:0;13700:335:1;10072:45:0;-1:-1:-1;;;;;10150:22:0;;;;;;:14;:22;;;;;;;;10149:23;:53;;;;-1:-1:-1;;;;;;10176:26:0;;10197:4;10176:26;;10149:53;:84;;;;-1:-1:-1;10228:4:0;;-1:-1:-1;;;;;10207:26:0;;;10228:4;;10207:26;;10149:84;:105;;;;-1:-1:-1;10250:4:0;;-1:-1:-1;;;;;10237:17:0;;;10250:4;;10237:17;;10149:105;:137;;;;-1:-1:-1;10271:15:0;;-1:-1:-1;;;;;10258:28:0;;;10271:15;;10258:28;;10149:137;10145:329;;;-1:-1:-1;;;;;8054:18:0;;10302;8054;;;:9;:18;;;;;;10391:15;;10367:19;10380:6;8054:18;10367:19;:::i;:::-;10366:40;;10358:114;;;;-1:-1:-1;;;10358:114:0;;11972:2:1;10358:114:0;;;11954:21:1;12011:2;11991:18;;;11984:30;12050:34;12030:18;;;12023:62;12121:32;12101:18;;;12094:60;12171:19;;10358:114:0;11770:426:1;10358:114:0;10287:187;10145:329;10529:28;10542:6;10550;10529:12;:28::i;:::-;10573:16;:14;:16::i;:::-;10570:35;;;10592:10;:8;:10::i;:::-;10664:53;;;;;;;;;;;-1:-1:-1;;;10664:53:0;;;;;;;;-1:-1:-1;;;;;10664:17:0;;-1:-1:-1;10664:17:0;;;:9;:17;;;;;;;;:53;;10686:6;;10664:21;:53::i;:::-;-1:-1:-1;;;;;10644:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11639:11;:19;;;;;;;;11638:20;10756:22;:51;;;-1:-1:-1;;;;;;11639:19:0;;11614:4;11639:19;;;:11;:19;;;;;;;;11638:20;10782:25;10756:51;10755:108;;10857:4;;10820:43;;10828:6;;10836;;-1:-1:-1;;;;;10844:17:0;;;10857:4;;10844:17;10820:7;:43::i;:::-;10755:108;;;10811:6;10755:108;-1:-1:-1;;;;;10897:20:0;;;;;;:9;:20;;;;;;10730:133;;-1:-1:-1;10897:40:0;;10730:133;10897:24;:40::i;:::-;-1:-1:-1;;;;;10874:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10955:43;;;;;;-1:-1:-1;;;;;;;;;;;10955:43:0;;;10983:14;14186:25:1;;14174:2;14159:18;;14040:177;10955:43:0;;;;;;;;-1:-1:-1;11016:4:0;;9585:1443;-1:-1:-1;;;;9585:1443:0:o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;10509:2:1;199:46:0;;;10491:21:1;10548:2;10528:18;;;10521:30;10587:29;10567:18;;;10560:57;10634:18;;199:46:0;10307:351:1;620:250:0;678:7;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;11570:2:1;785:56:0;;;11552:21:1;11609:2;11589:18;;;11582:30;11648:34;11628:18;;;11621:62;-1:-1:-1;;;11699:18:1;;;11692:31;11740:19;;785:56:0;11368:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;11378:166::-;11475:12;;11465:6;:22;;:49;;;-1:-1:-1;;;;;;11491:23:0;;;;;;:15;:23;;;;;;;;11465:49;11457:79;;;;-1:-1:-1;;;11457:79:0;;9806:2:1;11457:79:0;;;9788:21:1;9845:2;9825:18;;;9818:30;-1:-1:-1;;;9864:18:1;;;9857:47;9921:18;;11457:79:0;9604:341:1;12592:197:0;12679:4;;12641;;-1:-1:-1;;;;;12679:4:0;12665:10;:18;;;;:38;;-1:-1:-1;12697:6:0;;;;12696:7;12665:38;:62;;;;-1:-1:-1;12716:11:0;;-1:-1:-1;;;12716:11:0;;;;12665:62;:116;;;;-1:-1:-1;;12768:13:0;;12758:4;12740:24;;;;:9;:24;;;;;;:41;;;12592:197::o;13633:1896::-;6624:6;:13;;-1:-1:-1;;6624:13:0;6633:4;6624:13;;;13728:15:::1;::::0;13745:26:::1;::::0;6624:6;;13712:60:::1;::::0;:15:::1;:60::i;:::-;:79;;13779:12;;13712:79;;;13775:1;13712:79;13682:109;;13802:23;13828:59;13885:1;13828:52;13871:8;;13828:38;13846:19;13828:13;;:17;;:38;;;;:::i;:59::-;13802:85;;13898:20;13921:34;13939:15;13921:13;;:17;;:34;;;;:::i;:::-;13992:16;::::0;;14006:1:::1;13992:16:::0;;;;;::::1;::::0;;13898:57;;-1:-1:-1;13968:21:0::1;::::0;13992:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13992:16:0::1;13968:40;;14037:4;14019;14024:1;14019:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14019:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14063:4:::1;::::0;14053:7;;14063:4;::::1;::::0;14053;;14063;;14053:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14053:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14138:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14138:188:0;;14104:21:::1;::::0;14138:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14210:12;;14080:21:::1;::::0;14253:4;;14280::::1;::::0;14300:15:::1;::::0;14138:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14339:17;14359:40;14385:13;14359:21;:25;;:40;;;;:::i;:::-;14339:60:::0;-1:-1:-1;14412:19:0::1;14434:40;14447:26;:19:::0;14471:1:::1;14447:23;:26::i;:::-;14434:8;::::0;;:12:::1;:40::i;:::-;14412:62:::0;-1:-1:-1;14495:26:0::1;14524:58;14580:1;14524:51;14412:62:::0;14524:51;:9;14538:19;14524:13:::1;:34::i;:58::-;14495:87;;14593:26;14622:44;14654:11;14622:27;14636:12;;14622:9;:13;;:27;;;;:::i;:44::-;14593:73;;14677:20;14700:38;14726:11;14700:21;14714:6;;14700:9;:13;;:21;;;;:::i;:38::-;14677:61;;14749:24;14776:42;14806:11;14776:25;14790:10;;14776:9;:13;;:25;;;;:::i;:42::-;14860:20;::::0;14852:65:::1;::::0;14749:69;;-1:-1:-1;14832:15:0::1;::::0;-1:-1:-1;;;;;14860:20:0;;::::1;::::0;14894:18;;14832:15;14852:65;14832:15;14852:65;14894:18;14860:20;14852:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14952:18:0::1;::::0;14944:61:::1;::::0;14831:86;;-1:-1:-1;;;;;;14952:18:0::1;::::0;14984:16;;14944:61:::1;::::0;;;14984:16;14952:18;14944:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15040:14:0::1;::::0;15032:53:::1;::::0;14928:77;;-1:-1:-1;;;;;;15040:14:0::1;::::0;15068:12;;15032:53:::1;::::0;;;15068:12;15040:14;15032:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15142:5:0::1;::::0;-1:-1:-1;;15163:19:0;;;-1:-1:-1;15160:362:0::1;;15198:6;::::0;15372:21:::1;::::0;15198:244:::1;::::0;-1:-1:-1;;;15198:244:0;;15274:4:::1;15198:244;::::0;::::1;7677:34:1::0;7727:18;;;7720:34;;;15198:6:0::1;7770:18:1::0;;;7763:34;;;7813:18;;;7806:34;-1:-1:-1;;;;;15372:21:0;;::::1;7856:19:1::0;;;7849:44;15412:15:0::1;7909:19:1::0;;;7902:35;15198:6:0;::::1;::::0;:22:::1;::::0;15228:18;;7611:19:1;;15198:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15462:48:0::1;::::0;;15381:25:1;;;15437:2;15422:18;;15415:34;;;15462:48:0::1;::::0;-1:-1:-1;15354:18:1;15462:48:0::1;;;;;;;15160:362;-1:-1:-1::0;;6642:6:0;:14;;-1:-1:-1;;6642:14:0;;;-1:-1:-1;;;;;;;;;;13633:1896:0:o;11674:910::-;11754:7;11784:18;11805:6;:29;;11831:3;11805:29;;;11814:14;;11805:29;11784:50;;11845:17;11865:62;11906:14;;11923:3;11906:20;;;;:::i;:::-;11865:36;11890:10;11865:20;11876:8;;11865:6;:10;;:20;;;;:::i;:62::-;11845:82;;11944:6;11943:7;:51;;;;;11982:12;11968:10;;11955;;:23;;;;:::i;:::-;11954:40;11943:51;11940:117;;;12022:23;12042:2;12022:15;:6;12033:3;12022:10;:15::i;:23::-;12010:35;;11940:117;12069:18;12090:36;12117:8;;12090:22;12104:7;;12090:9;:13;;:22;;;;:::i;:36::-;12069:57;-1:-1:-1;12137:22:0;12162:25;:9;12069:57;12162:13;:25::i;:::-;12245:4;12227:24;;;;:9;:24;;;;;;12137:50;;-1:-1:-1;12227:44:0;;12137:50;12227:28;:44::i;:::-;12218:4;12200:24;;;;:9;:24;;;;;;:71;;;;12321:15;;-1:-1:-1;;;;;12321:15:0;12311:26;;;;:42;;12342:10;12311:30;:42::i;:::-;12292:15;;-1:-1:-1;;;;;12292:15:0;;;12282:26;;;;:9;:26;;;;;;;;;:71;;;;12369:47;14186:25:1;;;12394:4:0;;12369:47;;;;-1:-1:-1;;;;;;;;;;;12369:47:0;14159:18:1;12369:47:0;;;;;;;12440:14;;12437:99;;12492:15;;12475:45;;14186:25:1;;;-1:-1:-1;;;;;12492:15:0;;;;12475:45;;;-1:-1:-1;;;;;;;;;;;12475:45:0;14174:2:1;14159:18;12475:45:0;;;;;;;12437:99;12555:21;:6;12566:9;12555:10;:21::i;:::-;12548:28;11674:910;-1:-1:-1;;;;;;;;11674:910:0:o;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:160::-;451:20;;507:13;;500:21;490:32;;480:60;;536:1;533;526:12;551:247;610:6;663:2;651:9;642:7;638:23;634:32;631:52;;;679:1;676;669:12;631:52;718:9;705:23;737:31;762:5;737:31;:::i;1063:388::-;1131:6;1139;1192:2;1180:9;1171:7;1167:23;1163:32;1160:52;;;1208:1;1205;1198:12;1160:52;1247:9;1234:23;1266:31;1291:5;1266:31;:::i;:::-;1316:5;-1:-1:-1;1373:2:1;1358:18;;1345:32;1386:33;1345:32;1386:33;:::i;:::-;1438:7;1428:17;;;1063:388;;;;;:::o;1456:813::-;1551:6;1559;1567;1575;1583;1636:3;1624:9;1615:7;1611:23;1607:33;1604:53;;;1653:1;1650;1643:12;1604:53;1692:9;1679:23;1711:31;1736:5;1711:31;:::i;:::-;1761:5;-1:-1:-1;1818:2:1;1803:18;;1790:32;1831:33;1790:32;1831:33;:::i;:::-;1883:7;-1:-1:-1;1942:2:1;1927:18;;1914:32;1955:33;1914:32;1955:33;:::i;:::-;2007:7;-1:-1:-1;2066:2:1;2051:18;;2038:32;2079:33;2038:32;2079:33;:::i;:::-;2131:7;-1:-1:-1;2190:3:1;2175:19;;2162:33;2204;2162;2204;:::i;:::-;2256:7;2246:17;;;1456:813;;;;;;;;:::o;2274:456::-;2351:6;2359;2367;2420:2;2408:9;2399:7;2395:23;2391:32;2388:52;;;2436:1;2433;2426:12;2388:52;2475:9;2462:23;2494:31;2519:5;2494:31;:::i;:::-;2544:5;-1:-1:-1;2601:2:1;2586:18;;2573:32;2614:33;2573:32;2614:33;:::i;:::-;2274:456;;2666:7;;-1:-1:-1;;;2720:2:1;2705:18;;;;2692:32;;2274:456::o;2735:908::-;2866:6;2874;2882;2890;2898;2951:2;2939:9;2930:7;2926:23;2922:32;2919:52;;;2967:1;2964;2957:12;2919:52;3006:9;2993:23;3025:31;3050:5;3025:31;:::i;:::-;3075:5;-1:-1:-1;3131:2:1;3116:18;;3103:32;3154:18;3184:14;;;3181:34;;;3211:1;3208;3201:12;3181:34;3250:70;3312:7;3303:6;3292:9;3288:22;3250:70;:::i;:::-;3339:8;;-1:-1:-1;3224:96:1;-1:-1:-1;3427:2:1;3412:18;;3399:32;;-1:-1:-1;3443:16:1;;;3440:36;;;3472:1;3469;3462:12;3440:36;;3511:72;3575:7;3564:8;3553:9;3549:24;3511:72;:::i;:::-;2735:908;;;;-1:-1:-1;2735:908:1;;-1:-1:-1;3602:8:1;;3485:98;2735:908;-1:-1:-1;;;2735:908:1:o;3648:315::-;3713:6;3721;3774:2;3762:9;3753:7;3749:23;3745:32;3742:52;;;3790:1;3787;3780:12;3742:52;3829:9;3816:23;3848:31;3873:5;3848:31;:::i;:::-;3898:5;-1:-1:-1;3922:35:1;3953:2;3938:18;;3922:35;:::i;:::-;3912:45;;3648:315;;;;;:::o;3968:::-;4036:6;4044;4097:2;4085:9;4076:7;4072:23;4068:32;4065:52;;;4113:1;4110;4103:12;4065:52;4152:9;4139:23;4171:31;4196:5;4171:31;:::i;:::-;4221:5;4273:2;4258:18;;;;4245:32;;-1:-1:-1;;;3968:315:1:o;4288:505::-;4380:6;4388;4396;4449:2;4437:9;4428:7;4424:23;4420:32;4417:52;;;4465:1;4462;4455:12;4417:52;4505:9;4492:23;4538:18;4530:6;4527:30;4524:50;;;4570:1;4567;4560:12;4524:50;4609:70;4671:7;4662:6;4651:9;4647:22;4609:70;:::i;:::-;4698:8;;-1:-1:-1;4583:96:1;-1:-1:-1;4752:35:1;;-1:-1:-1;4783:2:1;4768:18;;4752:35;:::i;:::-;4742:45;;4288:505;;;;;:::o;4798:180::-;4854:6;4907:2;4895:9;4886:7;4882:23;4878:32;4875:52;;;4923:1;4920;4913:12;4875:52;4946:26;4962:9;4946:26;:::i;4983:248::-;5048:6;5056;5109:2;5097:9;5088:7;5084:23;5080:32;5077:52;;;5125:1;5122;5115:12;5077:52;5148:26;5164:9;5148:26;:::i;5236:180::-;5295:6;5348:2;5336:9;5327:7;5323:23;5319:32;5316:52;;;5364:1;5361;5354:12;5316:52;-1:-1:-1;5387:23:1;;5236:180;-1:-1:-1;5236:180:1:o;5421:184::-;5491:6;5544:2;5532:9;5523:7;5519:23;5515:32;5512:52;;;5560:1;5557;5550:12;5512:52;-1:-1:-1;5583:16:1;;5421:184;-1:-1:-1;5421:184:1:o;5610:248::-;5678:6;5686;5739:2;5727:9;5718:7;5714:23;5710:32;5707:52;;;5755:1;5752;5745:12;5707:52;-1:-1:-1;;5778:23:1;;;5848:2;5833:18;;;5820:32;;-1:-1:-1;5610:248:1:o;5863:306::-;5951:6;5959;5967;6020:2;6008:9;5999:7;5995:23;5991:32;5988:52;;;6036:1;6033;6026:12;5988:52;6065:9;6059:16;6049:26;;6115:2;6104:9;6100:18;6094:25;6084:35;;6159:2;6148:9;6144:18;6138:25;6128:35;;5863:306;;;;;:::o;6174:523::-;6278:6;6286;6294;6302;6310;6318;6371:3;6359:9;6350:7;6346:23;6342:33;6339:53;;;6388:1;6385;6378:12;6339:53;-1:-1:-1;;6411:23:1;;;6481:2;6466:18;;6453:32;;-1:-1:-1;6532:2:1;6517:18;;6504:32;;6583:2;6568:18;;6555:32;;-1:-1:-1;6634:3:1;6619:19;;6606:33;;-1:-1:-1;6686:3:1;6671:19;6658:33;;-1:-1:-1;6174:523:1;-1:-1:-1;6174:523:1:o;8593:597::-;8705:4;8734:2;8763;8752:9;8745:21;8795:6;8789:13;8838:6;8833:2;8822:9;8818:18;8811:34;8863:1;8873:140;8887:6;8884:1;8881:13;8873:140;;;8982:14;;;8978:23;;8972:30;8948:17;;;8967:2;8944:26;8937:66;8902:10;;8873:140;;;9031:6;9028:1;9025:13;9022:91;;;9101:1;9096:2;9087:6;9076:9;9072:22;9068:31;9061:42;9022:91;-1:-1:-1;9174:2:1;9153:15;-1:-1:-1;;9149:29:1;9134:45;;;;9181:2;9130:54;;8593:597;-1:-1:-1;;;8593:597:1:o;13026:329::-;13228:2;13210:21;;;13267:1;13247:18;;;13240:29;-1:-1:-1;;;13300:2:1;13285:18;;13278:36;13346:2;13331:18;;13026:329::o;13360:335::-;13562:2;13544:21;;;13601:2;13581:18;;;13574:30;-1:-1:-1;;;13635:2:1;13620:18;;13613:41;13686:2;13671:18;;13360:335::o;14222:980::-;14484:4;14532:3;14521:9;14517:19;14563:6;14552:9;14545:25;14589:2;14627:6;14622:2;14611:9;14607:18;14600:34;14670:3;14665:2;14654:9;14650:18;14643:31;14694:6;14729;14723:13;14760:6;14752;14745:22;14798:3;14787:9;14783:19;14776:26;;14837:2;14829:6;14825:15;14811:29;;14858:1;14868:195;14882:6;14879:1;14876:13;14868:195;;;14947:13;;-1:-1:-1;;;;;14943:39:1;14931:52;;15038:15;;;;15003:12;;;;14979:1;14897:9;14868:195;;;-1:-1:-1;;;;;;;15119:32:1;;;;15114:2;15099:18;;15092:60;-1:-1:-1;;;15183:3:1;15168:19;15161:35;15080:3;14222:980;-1:-1:-1;;;14222:980:1:o;15649:128::-;15689:3;15720:1;15716:6;15713:1;15710:13;15707:39;;;15726:18;;:::i;:::-;-1:-1:-1;15762:9:1;;15649:128::o;15782:217::-;15822:1;15848;15838:132;;15892:10;15887:3;15883:20;15880:1;15873:31;15927:4;15924:1;15917:15;15955:4;15952:1;15945:15;15838:132;-1:-1:-1;15984:9:1;;15782:217::o;16004:168::-;16044:7;16110:1;16106;16102:6;16098:14;16095:1;16092:21;16087:1;16080:9;16073:17;16069:45;16066:71;;;16117:18;;:::i;:::-;-1:-1:-1;16157:9:1;;16004:168::o;16177:125::-;16217:4;16245:1;16242;16239:8;16236:34;;;16250:18;;:::i;:::-;-1:-1:-1;16287:9:1;;16177:125::o;16307:135::-;16346:3;-1:-1:-1;;16367:17:1;;16364:43;;;16387:18;;:::i;:::-;-1:-1:-1;16434:1:1;16423:13;;16307:135::o;16447:127::-;16508:10;16503:3;16499:20;16496:1;16489:31;16539:4;16536:1;16529:15;16563:4;16560:1;16553:15;16579:127;16640:10;16635:3;16631:20;16628:1;16621:31;16671:4;16668:1;16661:15;16695:4;16692:1;16685:15;16843:131;-1:-1:-1;;;;;16918:31:1;;16908:42;;16898:70;;16964:1;16961;16954:12;16898:70;16843:131;:::o

Swarm Source

ipfs://7c9f117e81fbc308423a7430418b9b0757d08d26ee5ac286ec2ca0e8ac919d47

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.