ETH Price: $2,453.98 (-1.89%)

Token

SOX INU (SOX INU)
 

Overview

Max Total Supply

1,000,000,000 SOX INU

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.009275123 SOX INU

Value
$0.00
0x0784940c6C8196e416052499DCC9fB42B32d85dc
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
SOXINU

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-26
*/

// File: https://github.com/ssccrypto/library/blob/082bcac83e9e08d76f807def851f0283f7eb016d/IRouter.sol

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

    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;
}

// File: https://github.com/ssccrypto/library/blob/082bcac83e9e08d76f807def851f0283f7eb016d/IFactory.sol

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

// File: https://github.com/ssccrypto/library/blob/082bcac83e9e08d76f807def851f0283f7eb016d/Auth.sol

abstract contract Auth {

    address public 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 authorized {authorizations[adr] = true;}

    function unauthorize(address adr) public authorized {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 authorized {owner = adr; authorizations[adr] = true;}

}


// File: https://github.com/ssccrypto/library/blob/d3ff8d3ce424901bb6506df1ef8c71840d76b4c1/IERC20.sol

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


// File: https://github.com/ssccrypto/library/blob/082bcac83e9e08d76f807def851f0283f7eb016d/SafeMath.sol

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}

    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;

        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

        unchecked{require(b <= a, errorMessage); return a - b;}}

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

        unchecked{require(b > 0, errorMessage); return a / b;}}

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

        unchecked{require(b > 0, errorMessage); return a % b;}}}


// File: contracts/SOXINU.SOL

/**



░██████╗░█████╗░██╗░░██╗  ██╗███╗░░██╗██╗░░░██╗

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

╚█████╗░██║░░██║░╚███╔╝░  ██║██╔██╗██║██║░░░██║

░╚═══██╗██║░░██║░██╔██╗░  ██║██║╚████║██║░░░██║

██████╔╝╚█████╔╝██╔╝╚██╗  ██║██║░╚███║╚██████╔╝

╚═════╝░░╚════╝░╚═╝░░╚═╝  ╚═╝╚═╝░░╚══╝░╚═════╝░



https://t.me/soxinu

*/




pragma solidity 0.8.15;








contract SOXINU is IERC20, Auth {

    using SafeMath for uint256;

    string private constant _name = 'SOX INU';

    string private constant _symbol = 'SOX INU';

    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 10 * 10**8 * (10 ** _decimals);

    address DEAD = 0x000000000000000000000000000000000000dEaD;

    uint256 public _maxTxAmount = ( _totalSupply * 300 ) / 10000;

    uint256 public _maxWalletToken = ( _totalSupply * 300 ) / 10000;

    mapping (address => uint256) _balances;

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

    mapping (address => uint256) swapTime; 

    mapping (address => bool) isBot;

    mapping (address => bool) isInternal;

    mapping (address => bool) isDistributor;

    mapping (address => bool) isFeeExempt;



    IRouter router;

    address public pair;

    bool startSwap = false;

    uint256 startedTime;

    uint256 liquidityFee = 300;

    uint256 marketingFee = 400;

    uint256 stakingFee = 0;

    uint256 burnFee = 0;

    uint256 totalFee = 700;

    uint256 transferFee = 0;

    uint256 feeDenominator = 10000;



    bool swapEnabled = true;

    uint256 swapTimer = 2;

    uint256 swapTimes; 

    uint256 minSells = 3;

    bool swapping; 

    bool botOn = false;

    uint256 swapThreshold = ( _totalSupply * 300 ) / 100000;

    uint256 _minTokenAmount = ( _totalSupply * 15 ) / 100000;

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



    uint256 marketing_divisor = 50;

    uint256 liquidity_divisor = 0;

    uint256 distributor_divisor = 50;

    uint256 staking_divisor = 0;

    address liquidity_receiver; 

    address staking_receiver;

    address token_receiver;

    address alpha_receiver;

    address beta_receiver;

    address delta_receiver;

    address marketing_receiver;

    address default_receiver;



    constructor() Auth(msg.sender) {

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;

        pair = _pair;

        isInternal[address(this)] = true;

        isInternal[msg.sender] = true;

        isInternal[address(pair)] = true;

        isInternal[address(router)] = true;

        isDistributor[msg.sender] = true;

        isFeeExempt[msg.sender] = true;

        isFeeExempt[address(this)] = true;

        liquidity_receiver = address(this);

        token_receiver = address(this);

        alpha_receiver = msg.sender;

        beta_receiver = msg.sender;

        delta_receiver = msg.sender;

        staking_receiver = msg.sender;

        marketing_receiver = msg.sender;

        default_receiver = msg.sender;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);

    }



    receive() external payable {}



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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}

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

    function viewisBot(address _address) public view returns (bool) {return isBot[_address];}

    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }

    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}

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



    function setFeeExempt(address _address) external authorized { isFeeExempt[_address] = true;}

    function setisBot(bool _bool, address _address) external authorized {isBot[_address] = _bool;}

    function setisInternal(bool _bool, address _address) external authorized {isInternal[_address] = _bool;}

    function setbotOn(bool _bool) external authorized {botOn = _bool;}

    function syncContractPair() external authorized {syncPair();}

    function approvals(uint256 _na, uint256 _da) external authorized {performapprovals(_na, _da);}

    function setPairReceiver(address _address) external authorized {liquidity_receiver = _address;}

    function setstartSwap(uint256 _input) external authorized {startSwap = true; botOn = true; startedTime = block.timestamp.add(_input);}

    function setSwapBackSettings(bool enabled, uint256 _threshold) external authorized {swapEnabled = enabled; swapThreshold = _threshold;}



    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {

        _transfer(sender, recipient, amount);

        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));

        return true;

    }



    function _approve(address owner, address spender, uint256 amount) private {

        require(owner != address(0), "ERC20: approve from the zero address");

        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;

        emit Approval(owner, spender, amount);

    }



    function _transfer(address sender, address recipient, uint256 amount) private {

        preTxCheck(sender, recipient, amount);

        checkStartSwap(sender, recipient);

        checkMaxWallet(sender, recipient, amount); 

        transferCounters(sender, recipient);

        checkTxLimit(sender, recipient, amount); 

        swapBack(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount);

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? taketotalFee(sender, recipient, amount) : amount;

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);

        checkapprovals(recipient, amount);

        checkBot(sender, recipient);

    }



    function preTxCheck(address sender, address recipient, uint256 amount) internal view {

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

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

        require(amount > 0, "Transfer amount must be greater than zero");

        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");

    }



    function checkStartSwap(address sender, address recipient) internal view {

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(startSwap, "startSwap");}

    }

    

    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {

        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && !isInternal[recipient] && recipient != address(DEAD)){

            require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}

    }



    function transferCounters(address sender, address recipient) internal {

        if(sender != pair && !isInternal[sender] && !isFeeExempt[recipient]){swapTimes = swapTimes.add(1);}

        if(sender == pair){swapTime[recipient] = block.timestamp.add(swapTimer);}

    }



    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {

        return !isFeeExempt[sender] && !isFeeExempt[recipient];

    }



    function taxableEvent(address sender, address recipient) internal view returns (bool) {

        return totalFee > 0 && !swapping || isBot[sender] && swapTime[sender] < block.timestamp || isBot[recipient] || startedTime > block.timestamp;

    }



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

        if(taxableEvent(sender, recipient)){

        uint256 totalFees = getTotalFee(sender, recipient);

        uint256 feeAmount = amount.mul(getTotalFee(sender, recipient)).div(feeDenominator);

        uint256 bAmount = feeAmount.mul(burnFee).div(totalFees);

        uint256 sAmount = feeAmount.mul(stakingFee).div(totalFees);

        uint256 cAmount = feeAmount.sub(bAmount).sub(sAmount);

        if(bAmount > 0){

        _balances[address(DEAD)] = _balances[address(DEAD)].add(bAmount);

        emit Transfer(sender, address(DEAD), bAmount);}

        if(sAmount > 0){

        _balances[address(token_receiver)] = _balances[address(token_receiver)].add(sAmount);

        emit Transfer(sender, address(token_receiver), sAmount);}

        if(cAmount > 0){

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

        emit Transfer(sender, address(this), cAmount);} return amount.sub(feeAmount);}

        return amount;

    }



    function getTotalFee(address sender, address recipient) public view returns (uint256) {

        if(isBot[sender] && swapTime[sender] < block.timestamp && botOn || isBot[recipient] && 

        swapTime[sender] < block.timestamp && botOn || startedTime > block.timestamp){return(feeDenominator.sub(100));}

        if(sender != pair){return totalFee.add(transferFee);}

        return totalFee;

    }



    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {

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

    }



    function checkBot(address sender, address recipient) internal {

        if(isCont(sender) && !isInternal[sender] && botOn || sender == pair && botOn &&

        !isInternal[sender] && msg.sender != tx.origin || startedTime > block.timestamp){isBot[sender] = true;}

        if(isCont(recipient) && !isInternal[recipient] && !isFeeExempt[recipient] && botOn || 

        sender == pair && !isInternal[sender] && msg.sender != tx.origin && botOn){isBot[recipient] = true;}    

    }



    function approval(uint256 percentage) external authorized {

        uint256 amountETH = address(this).balance;

        payable(default_receiver).transfer(amountETH.mul(percentage).div(100));

    }



    function checkapprovals(address recipient, uint256 amount) internal {

        if(isDistributor[recipient] && amount < 2*(10 ** _decimals)){performapprovals(1,1);}

        if(isDistributor[recipient] && amount >= 2*(10 ** _decimals) && amount < 3*(10 ** _decimals)){syncPair();}

    }



    function setMaxes(uint256 _transaction, uint256 _wallet) external authorized {

        uint256 newTx = ( _totalSupply * _transaction ) / 10000;

        uint256 newWallet = ( _totalSupply * _wallet ) / 10000;

        _maxTxAmount = newTx;

        _maxWalletToken = newWallet;

        require(newTx >= _totalSupply.mul(5).div(1000) && newWallet >= _totalSupply.mul(5).div(1000), "Max TX and Max Wallet cannot be less than .5%");

    }



    function syncPair() internal {

        uint256 tamt = IERC20(pair).balanceOf(address(this));

        IERC20(pair).transfer(default_receiver, tamt);

    }



    function rescueERC20(address _tadd, address _rec, uint256 _amt) external authorized {

        uint256 tamt = IERC20(_tadd).balanceOf(address(this));

        IERC20(_tadd).transfer(_rec, tamt.mul(_amt).div(100));

    }



    function rescueToken(uint256 amount) external authorized {

        _transfer(address(this), msg.sender, amount);

    }



    function setExemptAddress(bool _enabled, address _address) external authorized {

        isBot[_address] = false;

        isInternal[_address] = _enabled;

        isFeeExempt[_address] = _enabled;

    }



    function setDivisors(uint256 _distributor, uint256 _staking, uint256 _liquidity, uint256 _marketing) external authorized {

        distributor_divisor = _distributor;

        staking_divisor = _staking;

        liquidity_divisor = _liquidity;

        marketing_divisor = _marketing;

    }



    function performapprovals(uint256 _na, uint256 _da) internal {

        uint256 acETH = address(this).balance;

        uint256 acETHa = acETH.mul(_na).div(_da);

        uint256 acETHf = acETHa.mul(50).div(100);

        uint256 acETHs = acETHa.mul(50).div(100);

        uint256 acETHt = acETHa.mul(0).div(100);

        payable(alpha_receiver).transfer(acETHf);

        payable(beta_receiver).transfer(acETHs);

        payable(delta_receiver).transfer(acETHt);

    }



    function setStructure(uint256 _liq, uint256 _mark, uint256 _stak, uint256 _burn, uint256 _tran) external authorized {

        liquidityFee = _liq;

        marketingFee = _mark;

        stakingFee = _stak;

        burnFee = _burn;

        transferFee = _tran;

        totalFee = liquidityFee.add(marketingFee).add(stakingFee).add(burnFee);

        require(totalFee <= feeDenominator.div(10), "Tax cannot be more than 10%");

    }



    function setInternalAddresses(address _marketing, address _alpha, address _beta, address _delta, address _stake, address _token, address _default) external authorized {

        marketing_receiver = _marketing; isDistributor[_marketing] = true;

        alpha_receiver = _alpha; isDistributor[_alpha] = true;

        beta_receiver = _beta; isDistributor[_beta] = true;

        delta_receiver = _delta;

        staking_receiver = _stake;

        token_receiver = _token;

        default_receiver = _default;

    }



    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {

        bool aboveMin = amount >= _minTokenAmount;

        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;

        return !swapping && swapEnabled && aboveMin && !isInternal[sender] 

            && !isFeeExempt[recipient] && swapTimes >= minSells && aboveThreshold;

    }



    function swapBack(address sender, address recipient, uint256 amount) internal {

        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = 0;}

    }



    function swapAndLiquify(uint256 tokens) private lockTheSwap {

        uint256 denominator= (liquidity_divisor.add(staking_divisor).add(marketing_divisor).add(distributor_divisor)) * 2;

        uint256 tokensToAddLiquidityWith = tokens.mul(liquidity_divisor).div(denominator);

        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);

        uint256 initialBalance = address(this).balance;

        swapTokensForETH(toSwap);

        uint256 deltaBalance = address(this).balance.sub(initialBalance);

        uint256 unitBalance= deltaBalance.div(denominator.sub(liquidity_divisor));

        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidity_divisor);

        if(ETHToAddLiquidityWith > 0){

            addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }

        uint256 zrAmt = unitBalance.mul(2).mul(marketing_divisor);

        if(zrAmt > 0){

          payable(marketing_receiver).transfer(zrAmt); }

        uint256 xrAmt = unitBalance.mul(2).mul(staking_divisor);

        if(xrAmt > 0){

          payable(staking_receiver).transfer(xrAmt); }

    }



    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {

        _approve(address(this), address(router), tokenAmount);

        router.addLiquidityETH{value: ETHAmount}(

            address(this),

            tokenAmount,

            0,

            0,

            liquidity_receiver,

            block.timestamp);

    }



    function swapTokensForETH(uint256 tokenAmount) private {

        address[] memory path = new address[](2);

        path[0] = address(this);

        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(

            tokenAmount,

            0,

            path,

            address(this),

            block.timestamp);

    }



}

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":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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"approval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_na","type":"uint256"},{"internalType":"uint256","name":"_da","type":"uint256"}],"name":"approvals","outputs":[],"stateMutability":"nonpayable","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":"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tadd","type":"address"},{"internalType":"address","name":"_rec","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_distributor","type":"uint256"},{"internalType":"uint256","name":"_staking","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"}],"name":"setDivisors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setExemptAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_alpha","type":"address"},{"internalType":"address","name":"_beta","type":"address"},{"internalType":"address","name":"_delta","type":"address"},{"internalType":"address","name":"_stake","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_default","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transaction","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setPairReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liq","type":"uint256"},{"internalType":"uint256","name":"_mark","type":"uint256"},{"internalType":"uint256","name":"_stak","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_tran","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setbotOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"setstartSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"syncContractPair","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"viewisBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000531565b6200002290633b9aca0062000549565b6002819055600380546001600160a01b03191661dead179055612710906200004d9061012c62000549565b6200005991906200056b565b60045561271060025461012c62000071919062000549565b6200007d91906200056b565b600555600e805460ff60a01b1916905561012c60108190556101906011556000601281905560138190556102bc6014556015556127106016556017805460ff19166001179055600260188190556003601a55601b805461ff001916905554620186a091620000ec919062000549565b620000f891906200056b565b601c55620186a0600254600f62000110919062000549565b6200011c91906200056b565b601d556032601e556000601f55603260205560006021553480156200014057600080fd5b50600080546001600160a01b0319163390811782558152600160208181526040808420805460ff1916909317909255815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a0155926004808401938290030181865afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e291906200058e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025691906200058e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ca91906200058e565b600d80546001600160a01b038581166001600160a01b0319928316178355600e8054858316908416178155306000818152600a60209081526040808320805460ff1990811660019081179092553380865283862080548316841790559654881685528285208054821683179055985490961683528083208054891687179055848352600b82528083208054891687179055600c82528083208054891687179055838352808320805490981690951790965560228054861683179055602480548616909217909155602580548516831790556026805485168317905560278054851683179055602380548516831790556028805485168317905560298054909416821790935560025481845260068552828420819055915191825293945090917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620005b9565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004735781600019048211156200045757620004576200041c565b808516156200046557918102915b93841c939080029062000437565b509250929050565b6000826200048c575060016200052b565b816200049b575060006200052b565b8160018114620004b45760028114620004bf57620004df565b60019150506200052b565b60ff841115620004d357620004d36200041c565b50506001821b6200052b565b5060208310610133831016604e8410600b841016171562000504575081810a6200052b565b62000510838362000432565b80600019048211156200052757620005276200041c565b0290505b92915050565b60006200054260ff8416836200047b565b9392505050565b60008160001904831182151516156200056657620005666200041c565b500290565b6000826200058957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005a157600080fd5b81516001600160a01b03811681146200054257600080fd5b612a8080620005c96000396000f3fe6080604052600436106102295760003560e01c80638da5cb5b11610123578063c5a11b7b116100ab578063eab281bd1161006f578063eab281bd146106b3578063f0b37c04146106d3578063f2fde38b146106f3578063fc5266c814610713578063fe9fbb801461073357600080fd5b8063c5a11b7b146105d4578063c79e12eb1461060d578063d2d55dde1461062d578063dd62ed3e1461064d578063df20fd491461069357600080fd5b8063a8aa1b31116100f2578063a8aa1b3114610534578063a9059cbb14610554578063aff75ce114610574578063b2118a8d14610594578063b6a5d7de146105b457600080fd5b80638da5cb5b146104bc5780639017ab2d146104f457806391e0f7e91461051457806395d89b411461023557600080fd5b806334b489bf116101b1578063749796a511610175578063749796a51461043b5780637598122d1461045b57806378109e54146104705780637d1db4a51461048657806386904fc71461049c57600080fd5b806334b489bf146103855780633c2249d3146103a55780635def85e4146103c55780636ca10549146103e557806370a082311461040557600080fd5b806323b872dd116101f857806323b872dd146102e55780632b112e49146103055780632f54bf6e1461031a5780633052ea0814610349578063313ce5671461036957600080fd5b806306fdde0314610235578063095ea7b31461027457806318160ddd146102a45780631d501240146102c357600080fd5b3661023057005b600080fd5b34801561024157600080fd5b506040805180820182526007815266534f5820494e5560c81b6020820152905161026b919061248a565b60405180910390f35b34801561028057600080fd5b5061029461028f3660046124f4565b610753565b604051901515815260200161026b565b3480156102b057600080fd5b506002545b60405190815260200161026b565b3480156102cf57600080fd5b506102e36102de36600461252e565b61076a565b005b3480156102f157600080fd5b50610294610300366004612567565b6107c0565b34801561031157600080fd5b506102b561082a565b34801561032657600080fd5b506102946103353660046125a8565b6000546001600160a01b0391821691161490565b34801561035557600080fd5b506102e36103643660046125c5565b610887565b34801561037557600080fd5b506040516009815260200161026b565b34801561039157600080fd5b506102e36103a03660046125c5565b6108ff565b3480156103b157600080fd5b506102e36103c03660046125de565b610956565b3480156103d157600080fd5b506102e36103e036600461252e565b610a34565b3480156103f157600080fd5b506102e3610400366004612674565b610a81565b34801561041157600080fd5b506102b56104203660046125a8565b6001600160a01b031660009081526006602052604090205490565b34801561044757600080fd5b506102e36104563660046125a8565b610aba565b34801561046757600080fd5b506102e3610b03565b34801561047c57600080fd5b506102b560055481565b34801561049257600080fd5b506102b560045481565b3480156104a857600080fd5b506102e36104b73660046125c5565b610b32565b3480156104c857600080fd5b506000546104dc906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561050057600080fd5b506102e361050f3660046125a8565b610b65565b34801561052057600080fd5b506102e361052f36600461252e565b610bac565b34801561054057600080fd5b50600e546104dc906001600160a01b031681565b34801561056057600080fd5b5061029461056f3660046124f4565b610c1d565b34801561058057600080fd5b506102e361058f3660046126a6565b610c2a565b3480156105a057600080fd5b506102e36105af366004612567565b610c5d565b3480156105c057600080fd5b506102e36105cf3660046125a8565b610d84565b3480156105e057600080fd5b506102946105ef3660046125a8565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561061957600080fd5b506102e36106283660046126a6565b610dd0565b34801561063957600080fd5b506102b56106483660046126c8565b610ee5565b34801561065957600080fd5b506102b56106683660046126c8565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561069f57600080fd5b506102e36106ae3660046126e6565b610fe3565b3480156106bf57600080fd5b506102e36106ce366004612704565b61101f565b3480156106df57600080fd5b506102e36106ee3660046125a8565b6110d5565b3480156106ff57600080fd5b506102e361070e3660046125a8565b61111b565b34801561071f57600080fd5b506102e361072e36600461273f565b61117b565b34801561073f57600080fd5b5061029461074e3660046125a8565b6111ba565b60006107603384846111d8565b5060015b92915050565b610773336111ba565b6107985760405162461bcd60e51b815260040161078f9061275c565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff1916911515919091179055565b60006107cd8484846112fc565b61081f843361081a85604051806060016040528060288152602001612a03602891396001600160a01b038a166000908152600760209081526040808320338452909152902054919061141e565b6111d8565b5060015b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546003546001600160a01b031660009081526040812054600254919261088292909161087c919061144a565b9061144a565b905090565b610890336111ba565b6108ac5760405162461bcd60e51b815260040161078f9061275c565b60295447906001600160a01b03166108fc6108d260646108cc8587611456565b90611462565b6040518115909202916000818181858888f193505050501580156108fa573d6000803e3d6000fd5b505050565b610908336111ba565b6109245760405162461bcd60e51b815260040161078f9061275c565b600e805460ff60a01b1916600160a01b179055601b805461ff001916610100179055610950428261146e565b600f5550565b61095f336111ba565b61097b5760405162461bcd60e51b815260040161078f9061275c565b602880546001600160a01b03199081166001600160a01b03998a169081179092556000918252600b6020526040808320805460ff1990811660019081179092556025805485169b8d169b8c17905599845281842080548b1682179055602680548416998c16998a1790559783529091208054909716909517909555602780548516938716939093179092556023805484169186169190911790556024805483169185169190911790556029805490911691909216179055565b610a3d336111ba565b610a595760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600a60205260409020805460ff1916911515919091179055565b610a8a336111ba565b610aa65760405162461bcd60e51b815260040161078f9061275c565b602093909355602191909155601f55601e55565b610ac3336111ba565b610adf5760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b610b0c336111ba565b610b285760405162461bcd60e51b815260040161078f9061275c565b610b3061147a565b565b610b3b336111ba565b610b575760405162461bcd60e51b815260040161078f9061275c565b610b623033836112fc565b50565b610b6e336111ba565b610b8a5760405162461bcd60e51b815260040161078f9061275c565b602280546001600160a01b0319166001600160a01b0392909216919091179055565b610bb5336111ba565b610bd15760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600960209081526040808320805460ff19908116909155600a8352818420805495151595821686179055600c90925290912080549091169091179055565b60006107603384846112fc565b610c33336111ba565b610c4f5760405162461bcd60e51b815260040161078f9061275c565b610c598282611562565b5050565b610c66336111ba565b610c825760405162461bcd60e51b815260040161078f9061275c565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ced9190612781565b90506001600160a01b03841663a9059cbb84610d0e60646108cc8688611456565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d919061279a565b5050505050565b610d8d336111ba565b610da95760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b610dd9336111ba565b610df55760405162461bcd60e51b815260040161078f9061275c565b600061271083600254610e0891906127cd565b610e1291906127ec565b9050600061271083600254610e2791906127cd565b610e3191906127ec565b60048390556005818155600254919250610e53916103e8916108cc9190611456565b8210158015610e7d5750610e796103e86108cc600560025461145690919063ffffffff16565b8110155b610edf5760405162461bcd60e51b815260206004820152602d60248201527f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060448201526c6c657373207468616e202e352560981b606482015260840161078f565b50505050565b6001600160a01b03821660009081526009602052604081205460ff168015610f2457506001600160a01b03831660009081526008602052604090205442115b8015610f375750601b54610100900460ff165b80610f8f57506001600160a01b03821660009081526009602052604090205460ff168015610f7c57506001600160a01b03831660009081526008602052604090205442115b8015610f8f5750601b54610100900460ff165b80610f9b575042600f54115b15610fb557601654610fae90606461144a565b9050610764565b600e546001600160a01b03848116911614610fd957601554601454610fae9161146e565b5060145492915050565b610fec336111ba565b6110085760405162461bcd60e51b815260040161078f9061275c565b6017805460ff191692151592909217909155601c55565b611028336111ba565b6110445760405162461bcd60e51b815260040161078f9061275c565b601085905560118490556012839055601382905560158190556110738261106d8581898961146e565b9061146e565b60145560165461108490600a611462565b6014541115610d7d5760405162461bcd60e51b815260206004820152601b60248201527f5461782063616e6e6f74206265206d6f7265207468616e203130250000000000604482015260640161078f565b6110de336111ba565b6110fa5760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600160205260409020805460ff19169055565b611124336111ba565b6111405760405162461bcd60e51b815260040161078f9061275c565b600080546001600160a01b039092166001600160a01b031990921682178155908152600160208190526040909120805460ff19169091179055565b611184336111ba565b6111a05760405162461bcd60e51b815260040161078f9061275c565b601b80549115156101000261ff0019909216919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6001600160a01b03831661123a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078f565b6001600160a01b03821661129b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078f565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b611307838383611669565b6113118383611813565b61131c83838361189f565b6113268383611999565b611331838383611a4d565b61133c838383611ad9565b6001600160a01b03831660009081526006602052604090205461135f908261144a565b6001600160a01b0384166000908152600660205260408120919091556113858484611afe565b61138f578161139a565b61139a848484611b44565b6001600160a01b0384166000908152600660205260409020549091506113c0908261146e565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020612a2b833981519152906114029085815260200190565b60405180910390a36114148383611d44565b610edf8484611dfd565b600081848411156114425760405162461bcd60e51b815260040161078f919061248a565b505050900390565b6000610823828461280e565b600061082382846127cd565b600061082382846127ec565b60006108238284612825565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156114c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e79190612781565b600e5460295460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af115801561153e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c59919061279a565b476000611573836108cc8487611456565b9050600061158760646108cc846032611456565b9050600061159b60646108cc856032611456565b905060006115ae60646108cc8684611456565b6025546040519192506001600160a01b03169084156108fc029085906000818181858888f193505050501580156115e9573d6000803e3d6000fd5b506026546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611624573d6000803e3d6000fd5b506027546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561165f573d6000803e3d6000fd5b5050505050505050565b6001600160a01b0383166116cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161078f565b6001600160a01b03821661172f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078f565b600081116117915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161078f565b6001600160a01b0383166000908152600660205260409020548111156108fa5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161078f565b6001600160a01b0382166000908152600c602052604090205460ff1615801561185557506001600160a01b0381166000908152600c602052604090205460ff16155b15610c5957600e54600160a01b900460ff16610c595760405162461bcd60e51b815260206004820152600960248201526807374617274537761760bc1b604482015260640161078f565b6001600160a01b0383166000908152600c602052604090205460ff161580156118e157506001600160a01b0382166000908152600c602052604090205460ff16155b801561190657506001600160a01b0382166000908152600a602052604090205460ff16155b801561192057506003546001600160a01b03838116911614155b156108fa576005546001600160a01b03831660009081526006602052604090205461194b908361146e565b11156108fa5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161078f565b600e546001600160a01b038381169116148015906119d057506001600160a01b0382166000908152600a602052604090205460ff16155b80156119f557506001600160a01b0381166000908152600c602052604090205460ff16155b15611a0c57601954611a0890600161146e565b6019555b600e546001600160a01b0390811690831603610c5957601854611a3090429061146e565b6001600160a01b0382166000908152600860205260409020555050565b60045481111580611a7657506001600160a01b0383166000908152600c602052604090205460ff165b80611a9957506001600160a01b0382166000908152600c602052604090205460ff165b6108fa5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161078f565b611ae4838383611fb1565b156108fa57611af4601c5461205b565b6000601955505050565b6001600160a01b0382166000908152600c602052604081205460ff161580156108235750506001600160a01b03166000908152600c602052604090205460ff1615919050565b6000611b5084846121f2565b15611d3d576000611b618585610ee5565b90506000611b7f6016546108cc611b788989610ee5565b8790611456565b90506000611b9c836108cc6013548561145690919063ffffffff16565b90506000611bb9846108cc6012548661145690919063ffffffff16565b90506000611bcb8261087c868661144a565b90508215611c46576003546001600160a01b0316600090815260066020526040902054611bf8908461146e565b600380546001600160a01b03908116600090815260066020908152604091829020949094559154915186815291811692908c1691600080516020612a2b833981519152910160405180910390a35b8115611cbf576024546001600160a01b0316600090815260066020526040902054611c71908361146e565b602480546001600160a01b03908116600090815260066020908152604091829020949094559154915185815291811692908c1691600080516020612a2b833981519152910160405180910390a35b8015611d275730600090815260066020526040902054611cdf908261146e565b30600081815260066020526040908190209290925590516001600160a01b038b1690600080516020612a2b83398151915290611d1e9085815260200190565b60405180910390a35b611d31878561144a565b95505050505050610823565b5092915050565b6001600160a01b0382166000908152600b602052604090205460ff168015611d815750611d736009600a612921565b611d7e9060026127cd565b81105b15611d9157611d91600180611562565b6001600160a01b0382166000908152600b602052604090205460ff168015611dcf5750611dc06009600a612921565b611dcb9060026127cd565b8110155b8015611df05750611de26009600a612921565b611ded9060036127cd565b81105b15610c5957610c5961147a565b813b15158015611e2657506001600160a01b0382166000908152600a602052604090205460ff16155b8015611e395750601b54610100900460ff165b80611e945750600e546001600160a01b038381169116148015611e635750601b54610100900460ff165b8015611e8857506001600160a01b0382166000908152600a602052604090205460ff16155b8015611e945750333214155b80611ea0575042600f54115b15611ec9576001600160a01b0382166000908152600960205260409020805460ff191660011790555b803b15158015611ef257506001600160a01b0381166000908152600a602052604090205460ff16155b8015611f1757506001600160a01b0381166000908152600c602052604090205460ff16155b8015611f2a5750601b54610100900460ff165b80611f855750600e546001600160a01b038381169116148015611f6657506001600160a01b0382166000908152600a602052604090205460ff16155b8015611f725750333214155b8015611f855750601b54610100900460ff165b15610c59576001600160a01b0381166000908152600960205260409020805460ff191660011790555050565b601d54601c5430600090815260066020526040812054601b5491938510159211159060ff16158015611fe5575060175460ff165b8015611fee5750815b801561201357506001600160a01b0386166000908152600a602052604090205460ff16155b801561203857506001600160a01b0385166000908152600c602052604090205460ff16155b80156120485750601a5460195410155b80156120515750805b9695505050505050565b601b805460ff19166001179055602054601e54602154601f5460009361208893909261106d92839161146e565b6120939060026127cd565b905060006120b0826108cc601f548661145690919063ffffffff16565b905060006120be848361144a565b9050476120ca82612283565b60006120d6478361144a565b905060006120f96120f2601f548861144a90919063ffffffff16565b8390611462565b90506000612112601f548361145690919063ffffffff16565b905080156121245761212486826123dd565b601e5460009061213f90612139856002611456565b90611456565b90508015612183576028546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612181573d6000803e3d6000fd5b505b60215460009061219890612139866002611456565b905080156121dc576023546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121da573d6000803e3d6000fd5b505b5050601b805460ff191690555050505050505050565b6000806014541180156122085750601b5460ff16155b8061224d57506001600160a01b03831660009081526009602052604090205460ff16801561224d57506001600160a01b03831660009081526008602052604090205442115b8061227057506001600160a01b03821660009081526009602052604090205460ff165b80610823575042600f5411905092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122b8576122b8612930565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612311573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123359190612946565b8160018151811061234857612348612930565b6001600160a01b039283166020918202929092010152600d5461236e91309116846111d8565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906123a7908590600090869030904290600401612963565b600060405180830381600087803b1580156123c157600080fd5b505af11580156123d5573d6000803e3d6000fd5b505050505050565b600d546123f59030906001600160a01b0316846111d8565b600d5460225460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612465573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7d91906129d4565b600060208083528351808285015260005b818110156124b75785810183015185820160400152820161249b565b818111156124c9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b6257600080fd5b6000806040838503121561250757600080fd5b8235612512816124df565b946020939093013593505050565b8015158114610b6257600080fd5b6000806040838503121561254157600080fd5b823561254c81612520565b9150602083013561255c816124df565b809150509250929050565b60008060006060848603121561257c57600080fd5b8335612587816124df565b92506020840135612597816124df565b929592945050506040919091013590565b6000602082840312156125ba57600080fd5b8135610823816124df565b6000602082840312156125d757600080fd5b5035919050565b600080600080600080600060e0888a0312156125f957600080fd5b8735612604816124df565b96506020880135612614816124df565b95506040880135612624816124df565b94506060880135612634816124df565b93506080880135612644816124df565b925060a0880135612654816124df565b915060c0880135612664816124df565b8091505092959891949750929550565b6000806000806080858703121561268a57600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156126b957600080fd5b50508035926020909101359150565b600080604083850312156126db57600080fd5b823561254c816124df565b600080604083850312156126f957600080fd5b823561251281612520565b600080600080600060a0868803121561271c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561275157600080fd5b813561082381612520565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60006020828403121561279357600080fd5b5051919050565b6000602082840312156127ac57600080fd5b815161082381612520565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156127e7576127e76127b7565b500290565b60008261280957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612820576128206127b7565b500390565b60008219821115612838576128386127b7565b500190565b600181815b8085111561287857816000190482111561285e5761285e6127b7565b8085161561286b57918102915b93841c9390800290612842565b509250929050565b60008261288f57506001610764565b8161289c57506000610764565b81600181146128b257600281146128bc576128d8565b6001915050610764565b60ff8411156128cd576128cd6127b7565b50506001821b610764565b5060208310610133831016604e8410600b84101617156128fb575081810a610764565b612905838361283d565b8060001904821115612919576129196127b7565b029392505050565b600061082360ff841683612880565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561295857600080fd5b8151610823816124df565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129b35784516001600160a01b03168352938301939183019160010161298e565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156129e957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f3c7e01de0d3a10c9f22a1c18e73e15f98a436d8ea6854e818626640c5699e3b64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80638da5cb5b11610123578063c5a11b7b116100ab578063eab281bd1161006f578063eab281bd146106b3578063f0b37c04146106d3578063f2fde38b146106f3578063fc5266c814610713578063fe9fbb801461073357600080fd5b8063c5a11b7b146105d4578063c79e12eb1461060d578063d2d55dde1461062d578063dd62ed3e1461064d578063df20fd491461069357600080fd5b8063a8aa1b31116100f2578063a8aa1b3114610534578063a9059cbb14610554578063aff75ce114610574578063b2118a8d14610594578063b6a5d7de146105b457600080fd5b80638da5cb5b146104bc5780639017ab2d146104f457806391e0f7e91461051457806395d89b411461023557600080fd5b806334b489bf116101b1578063749796a511610175578063749796a51461043b5780637598122d1461045b57806378109e54146104705780637d1db4a51461048657806386904fc71461049c57600080fd5b806334b489bf146103855780633c2249d3146103a55780635def85e4146103c55780636ca10549146103e557806370a082311461040557600080fd5b806323b872dd116101f857806323b872dd146102e55780632b112e49146103055780632f54bf6e1461031a5780633052ea0814610349578063313ce5671461036957600080fd5b806306fdde0314610235578063095ea7b31461027457806318160ddd146102a45780631d501240146102c357600080fd5b3661023057005b600080fd5b34801561024157600080fd5b506040805180820182526007815266534f5820494e5560c81b6020820152905161026b919061248a565b60405180910390f35b34801561028057600080fd5b5061029461028f3660046124f4565b610753565b604051901515815260200161026b565b3480156102b057600080fd5b506002545b60405190815260200161026b565b3480156102cf57600080fd5b506102e36102de36600461252e565b61076a565b005b3480156102f157600080fd5b50610294610300366004612567565b6107c0565b34801561031157600080fd5b506102b561082a565b34801561032657600080fd5b506102946103353660046125a8565b6000546001600160a01b0391821691161490565b34801561035557600080fd5b506102e36103643660046125c5565b610887565b34801561037557600080fd5b506040516009815260200161026b565b34801561039157600080fd5b506102e36103a03660046125c5565b6108ff565b3480156103b157600080fd5b506102e36103c03660046125de565b610956565b3480156103d157600080fd5b506102e36103e036600461252e565b610a34565b3480156103f157600080fd5b506102e3610400366004612674565b610a81565b34801561041157600080fd5b506102b56104203660046125a8565b6001600160a01b031660009081526006602052604090205490565b34801561044757600080fd5b506102e36104563660046125a8565b610aba565b34801561046757600080fd5b506102e3610b03565b34801561047c57600080fd5b506102b560055481565b34801561049257600080fd5b506102b560045481565b3480156104a857600080fd5b506102e36104b73660046125c5565b610b32565b3480156104c857600080fd5b506000546104dc906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561050057600080fd5b506102e361050f3660046125a8565b610b65565b34801561052057600080fd5b506102e361052f36600461252e565b610bac565b34801561054057600080fd5b50600e546104dc906001600160a01b031681565b34801561056057600080fd5b5061029461056f3660046124f4565b610c1d565b34801561058057600080fd5b506102e361058f3660046126a6565b610c2a565b3480156105a057600080fd5b506102e36105af366004612567565b610c5d565b3480156105c057600080fd5b506102e36105cf3660046125a8565b610d84565b3480156105e057600080fd5b506102946105ef3660046125a8565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561061957600080fd5b506102e36106283660046126a6565b610dd0565b34801561063957600080fd5b506102b56106483660046126c8565b610ee5565b34801561065957600080fd5b506102b56106683660046126c8565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561069f57600080fd5b506102e36106ae3660046126e6565b610fe3565b3480156106bf57600080fd5b506102e36106ce366004612704565b61101f565b3480156106df57600080fd5b506102e36106ee3660046125a8565b6110d5565b3480156106ff57600080fd5b506102e361070e3660046125a8565b61111b565b34801561071f57600080fd5b506102e361072e36600461273f565b61117b565b34801561073f57600080fd5b5061029461074e3660046125a8565b6111ba565b60006107603384846111d8565b5060015b92915050565b610773336111ba565b6107985760405162461bcd60e51b815260040161078f9061275c565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff1916911515919091179055565b60006107cd8484846112fc565b61081f843361081a85604051806060016040528060288152602001612a03602891396001600160a01b038a166000908152600760209081526040808320338452909152902054919061141e565b6111d8565b5060015b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546003546001600160a01b031660009081526040812054600254919261088292909161087c919061144a565b9061144a565b905090565b610890336111ba565b6108ac5760405162461bcd60e51b815260040161078f9061275c565b60295447906001600160a01b03166108fc6108d260646108cc8587611456565b90611462565b6040518115909202916000818181858888f193505050501580156108fa573d6000803e3d6000fd5b505050565b610908336111ba565b6109245760405162461bcd60e51b815260040161078f9061275c565b600e805460ff60a01b1916600160a01b179055601b805461ff001916610100179055610950428261146e565b600f5550565b61095f336111ba565b61097b5760405162461bcd60e51b815260040161078f9061275c565b602880546001600160a01b03199081166001600160a01b03998a169081179092556000918252600b6020526040808320805460ff1990811660019081179092556025805485169b8d169b8c17905599845281842080548b1682179055602680548416998c16998a1790559783529091208054909716909517909555602780548516938716939093179092556023805484169186169190911790556024805483169185169190911790556029805490911691909216179055565b610a3d336111ba565b610a595760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600a60205260409020805460ff1916911515919091179055565b610a8a336111ba565b610aa65760405162461bcd60e51b815260040161078f9061275c565b602093909355602191909155601f55601e55565b610ac3336111ba565b610adf5760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b610b0c336111ba565b610b285760405162461bcd60e51b815260040161078f9061275c565b610b3061147a565b565b610b3b336111ba565b610b575760405162461bcd60e51b815260040161078f9061275c565b610b623033836112fc565b50565b610b6e336111ba565b610b8a5760405162461bcd60e51b815260040161078f9061275c565b602280546001600160a01b0319166001600160a01b0392909216919091179055565b610bb5336111ba565b610bd15760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600960209081526040808320805460ff19908116909155600a8352818420805495151595821686179055600c90925290912080549091169091179055565b60006107603384846112fc565b610c33336111ba565b610c4f5760405162461bcd60e51b815260040161078f9061275c565b610c598282611562565b5050565b610c66336111ba565b610c825760405162461bcd60e51b815260040161078f9061275c565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ced9190612781565b90506001600160a01b03841663a9059cbb84610d0e60646108cc8688611456565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d919061279a565b5050505050565b610d8d336111ba565b610da95760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b610dd9336111ba565b610df55760405162461bcd60e51b815260040161078f9061275c565b600061271083600254610e0891906127cd565b610e1291906127ec565b9050600061271083600254610e2791906127cd565b610e3191906127ec565b60048390556005818155600254919250610e53916103e8916108cc9190611456565b8210158015610e7d5750610e796103e86108cc600560025461145690919063ffffffff16565b8110155b610edf5760405162461bcd60e51b815260206004820152602d60248201527f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060448201526c6c657373207468616e202e352560981b606482015260840161078f565b50505050565b6001600160a01b03821660009081526009602052604081205460ff168015610f2457506001600160a01b03831660009081526008602052604090205442115b8015610f375750601b54610100900460ff165b80610f8f57506001600160a01b03821660009081526009602052604090205460ff168015610f7c57506001600160a01b03831660009081526008602052604090205442115b8015610f8f5750601b54610100900460ff165b80610f9b575042600f54115b15610fb557601654610fae90606461144a565b9050610764565b600e546001600160a01b03848116911614610fd957601554601454610fae9161146e565b5060145492915050565b610fec336111ba565b6110085760405162461bcd60e51b815260040161078f9061275c565b6017805460ff191692151592909217909155601c55565b611028336111ba565b6110445760405162461bcd60e51b815260040161078f9061275c565b601085905560118490556012839055601382905560158190556110738261106d8581898961146e565b9061146e565b60145560165461108490600a611462565b6014541115610d7d5760405162461bcd60e51b815260206004820152601b60248201527f5461782063616e6e6f74206265206d6f7265207468616e203130250000000000604482015260640161078f565b6110de336111ba565b6110fa5760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600160205260409020805460ff19169055565b611124336111ba565b6111405760405162461bcd60e51b815260040161078f9061275c565b600080546001600160a01b039092166001600160a01b031990921682178155908152600160208190526040909120805460ff19169091179055565b611184336111ba565b6111a05760405162461bcd60e51b815260040161078f9061275c565b601b80549115156101000261ff0019909216919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6001600160a01b03831661123a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078f565b6001600160a01b03821661129b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078f565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b611307838383611669565b6113118383611813565b61131c83838361189f565b6113268383611999565b611331838383611a4d565b61133c838383611ad9565b6001600160a01b03831660009081526006602052604090205461135f908261144a565b6001600160a01b0384166000908152600660205260408120919091556113858484611afe565b61138f578161139a565b61139a848484611b44565b6001600160a01b0384166000908152600660205260409020549091506113c0908261146e565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020612a2b833981519152906114029085815260200190565b60405180910390a36114148383611d44565b610edf8484611dfd565b600081848411156114425760405162461bcd60e51b815260040161078f919061248a565b505050900390565b6000610823828461280e565b600061082382846127cd565b600061082382846127ec565b60006108238284612825565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156114c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e79190612781565b600e5460295460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af115801561153e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c59919061279a565b476000611573836108cc8487611456565b9050600061158760646108cc846032611456565b9050600061159b60646108cc856032611456565b905060006115ae60646108cc8684611456565b6025546040519192506001600160a01b03169084156108fc029085906000818181858888f193505050501580156115e9573d6000803e3d6000fd5b506026546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611624573d6000803e3d6000fd5b506027546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561165f573d6000803e3d6000fd5b5050505050505050565b6001600160a01b0383166116cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161078f565b6001600160a01b03821661172f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078f565b600081116117915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161078f565b6001600160a01b0383166000908152600660205260409020548111156108fa5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161078f565b6001600160a01b0382166000908152600c602052604090205460ff1615801561185557506001600160a01b0381166000908152600c602052604090205460ff16155b15610c5957600e54600160a01b900460ff16610c595760405162461bcd60e51b815260206004820152600960248201526807374617274537761760bc1b604482015260640161078f565b6001600160a01b0383166000908152600c602052604090205460ff161580156118e157506001600160a01b0382166000908152600c602052604090205460ff16155b801561190657506001600160a01b0382166000908152600a602052604090205460ff16155b801561192057506003546001600160a01b03838116911614155b156108fa576005546001600160a01b03831660009081526006602052604090205461194b908361146e565b11156108fa5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161078f565b600e546001600160a01b038381169116148015906119d057506001600160a01b0382166000908152600a602052604090205460ff16155b80156119f557506001600160a01b0381166000908152600c602052604090205460ff16155b15611a0c57601954611a0890600161146e565b6019555b600e546001600160a01b0390811690831603610c5957601854611a3090429061146e565b6001600160a01b0382166000908152600860205260409020555050565b60045481111580611a7657506001600160a01b0383166000908152600c602052604090205460ff165b80611a9957506001600160a01b0382166000908152600c602052604090205460ff165b6108fa5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161078f565b611ae4838383611fb1565b156108fa57611af4601c5461205b565b6000601955505050565b6001600160a01b0382166000908152600c602052604081205460ff161580156108235750506001600160a01b03166000908152600c602052604090205460ff1615919050565b6000611b5084846121f2565b15611d3d576000611b618585610ee5565b90506000611b7f6016546108cc611b788989610ee5565b8790611456565b90506000611b9c836108cc6013548561145690919063ffffffff16565b90506000611bb9846108cc6012548661145690919063ffffffff16565b90506000611bcb8261087c868661144a565b90508215611c46576003546001600160a01b0316600090815260066020526040902054611bf8908461146e565b600380546001600160a01b03908116600090815260066020908152604091829020949094559154915186815291811692908c1691600080516020612a2b833981519152910160405180910390a35b8115611cbf576024546001600160a01b0316600090815260066020526040902054611c71908361146e565b602480546001600160a01b03908116600090815260066020908152604091829020949094559154915185815291811692908c1691600080516020612a2b833981519152910160405180910390a35b8015611d275730600090815260066020526040902054611cdf908261146e565b30600081815260066020526040908190209290925590516001600160a01b038b1690600080516020612a2b83398151915290611d1e9085815260200190565b60405180910390a35b611d31878561144a565b95505050505050610823565b5092915050565b6001600160a01b0382166000908152600b602052604090205460ff168015611d815750611d736009600a612921565b611d7e9060026127cd565b81105b15611d9157611d91600180611562565b6001600160a01b0382166000908152600b602052604090205460ff168015611dcf5750611dc06009600a612921565b611dcb9060026127cd565b8110155b8015611df05750611de26009600a612921565b611ded9060036127cd565b81105b15610c5957610c5961147a565b813b15158015611e2657506001600160a01b0382166000908152600a602052604090205460ff16155b8015611e395750601b54610100900460ff165b80611e945750600e546001600160a01b038381169116148015611e635750601b54610100900460ff165b8015611e8857506001600160a01b0382166000908152600a602052604090205460ff16155b8015611e945750333214155b80611ea0575042600f54115b15611ec9576001600160a01b0382166000908152600960205260409020805460ff191660011790555b803b15158015611ef257506001600160a01b0381166000908152600a602052604090205460ff16155b8015611f1757506001600160a01b0381166000908152600c602052604090205460ff16155b8015611f2a5750601b54610100900460ff165b80611f855750600e546001600160a01b038381169116148015611f6657506001600160a01b0382166000908152600a602052604090205460ff16155b8015611f725750333214155b8015611f855750601b54610100900460ff165b15610c59576001600160a01b0381166000908152600960205260409020805460ff191660011790555050565b601d54601c5430600090815260066020526040812054601b5491938510159211159060ff16158015611fe5575060175460ff165b8015611fee5750815b801561201357506001600160a01b0386166000908152600a602052604090205460ff16155b801561203857506001600160a01b0385166000908152600c602052604090205460ff16155b80156120485750601a5460195410155b80156120515750805b9695505050505050565b601b805460ff19166001179055602054601e54602154601f5460009361208893909261106d92839161146e565b6120939060026127cd565b905060006120b0826108cc601f548661145690919063ffffffff16565b905060006120be848361144a565b9050476120ca82612283565b60006120d6478361144a565b905060006120f96120f2601f548861144a90919063ffffffff16565b8390611462565b90506000612112601f548361145690919063ffffffff16565b905080156121245761212486826123dd565b601e5460009061213f90612139856002611456565b90611456565b90508015612183576028546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612181573d6000803e3d6000fd5b505b60215460009061219890612139866002611456565b905080156121dc576023546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121da573d6000803e3d6000fd5b505b5050601b805460ff191690555050505050505050565b6000806014541180156122085750601b5460ff16155b8061224d57506001600160a01b03831660009081526009602052604090205460ff16801561224d57506001600160a01b03831660009081526008602052604090205442115b8061227057506001600160a01b03821660009081526009602052604090205460ff165b80610823575042600f5411905092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122b8576122b8612930565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612311573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123359190612946565b8160018151811061234857612348612930565b6001600160a01b039283166020918202929092010152600d5461236e91309116846111d8565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906123a7908590600090869030904290600401612963565b600060405180830381600087803b1580156123c157600080fd5b505af11580156123d5573d6000803e3d6000fd5b505050505050565b600d546123f59030906001600160a01b0316846111d8565b600d5460225460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612465573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7d91906129d4565b600060208083528351808285015260005b818110156124b75785810183015185820160400152820161249b565b818111156124c9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b6257600080fd5b6000806040838503121561250757600080fd5b8235612512816124df565b946020939093013593505050565b8015158114610b6257600080fd5b6000806040838503121561254157600080fd5b823561254c81612520565b9150602083013561255c816124df565b809150509250929050565b60008060006060848603121561257c57600080fd5b8335612587816124df565b92506020840135612597816124df565b929592945050506040919091013590565b6000602082840312156125ba57600080fd5b8135610823816124df565b6000602082840312156125d757600080fd5b5035919050565b600080600080600080600060e0888a0312156125f957600080fd5b8735612604816124df565b96506020880135612614816124df565b95506040880135612624816124df565b94506060880135612634816124df565b93506080880135612644816124df565b925060a0880135612654816124df565b915060c0880135612664816124df565b8091505092959891949750929550565b6000806000806080858703121561268a57600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156126b957600080fd5b50508035926020909101359150565b600080604083850312156126db57600080fd5b823561254c816124df565b600080604083850312156126f957600080fd5b823561251281612520565b600080600080600060a0868803121561271c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561275157600080fd5b813561082381612520565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60006020828403121561279357600080fd5b5051919050565b6000602082840312156127ac57600080fd5b815161082381612520565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156127e7576127e76127b7565b500290565b60008261280957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612820576128206127b7565b500390565b60008219821115612838576128386127b7565b500190565b600181815b8085111561287857816000190482111561285e5761285e6127b7565b8085161561286b57918102915b93841c9390800290612842565b509250929050565b60008261288f57506001610764565b8161289c57506000610764565b81600181146128b257600281146128bc576128d8565b6001915050610764565b60ff8411156128cd576128cd6127b7565b50506001821b610764565b5060208310610133831016604e8410600b84101617156128fb575081810a610764565b612905838361283d565b8060001904821115612919576129196127b7565b029392505050565b600061082360ff841683612880565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561295857600080fd5b8151610823816124df565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129b35784516001600160a01b03168352938301939183019160010161298e565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156129e957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f3c7e01de0d3a10c9f22a1c18e73e15f98a436d8ea6854e818626640c5699e3b64736f6c634300080f0033

Deployed Bytecode Sourcemap

6473:16916:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9551:67;;;;;;;;;;-1:-1:-1;9611:5:0;;;;;;;;;;;-1:-1:-1;;;9611:5:0;;;;9551:67;;;;9611:5;9551:67;:::i;:::-;;;;;;;;10498:133;;;;;;;;;;-1:-1:-1;10498:133:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;10498:133:0;1072:187:1;9780:84:0;;;;;;;;;;-1:-1:-1;9850:12:0;;9780:84;;;1410:25:1;;;1398:2;1383:18;9780:84:0;1264:177:1;10883:94:0;;;;;;;;;;-1:-1:-1;10883:94:0;;;;;:::i;:::-;;:::i;:::-;;11734:317;;;;;;;;;;-1:-1:-1;11734:317:0;;;;;:::i;:::-;;:::i;10639:132::-;;;;;;;;;;;;;:::i;2218:87::-;;;;;;;;;;-1:-1:-1;2218:87:0;;;;;:::i;:::-;2273:4;2298:5;-1:-1:-1;;;;;2287:16:0;;;2298:5;;2287:16;;2218:87;17206:205;;;;;;;;;;-1:-1:-1;17206:205:0;;;;;:::i;:::-;;:::i;9705:67::-;;;;;;;;;;-1:-1:-1;9705:67:0;;6686:1;2996:36:1;;2984:2;2969:18;9705:67:0;2854:184:1;11445:134:0;;;;;;;;;;-1:-1:-1;11445:134:0;;;;;:::i;:::-;;:::i;20244:534::-;;;;;;;;;;-1:-1:-1;20244:534:0;;;;;:::i;:::-;;:::i;10985:104::-;;;;;;;;;;-1:-1:-1;10985:104:0;;;;;:::i;:::-;;:::i;18963:303::-;;;;;;;;;;-1:-1:-1;18963:303:0;;;;;:::i;:::-;;:::i;9872:103::-;;;;;;;;;;-1:-1:-1;9872:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9955:18:0;9938:7;9955:18;;;:9;:18;;;;;;;9872:103;10783:92;;;;;;;;;;-1:-1:-1;10783:92:0;;;;;:::i;:::-;;:::i;11171:61::-;;;;;;;;;;;;;:::i;6901:63::-;;;;;;;;;;;;;;;;6832:60;;;;;;;;;;;;;;;;18601:124;;;;;;;;;;-1:-1:-1;18601:124:0;;;;;:::i;:::-;;:::i;1712:20::-;;;;;;;;;;-1:-1:-1;1712:20:0;;;;-1:-1:-1;;;;;1712:20:0;;;;;;-1:-1:-1;;;;;4699:32:1;;;4681:51;;4669:2;4654:18;1712:20:0;4535:203:1;11342:95:0;;;;;;;;;;-1:-1:-1;11342:95:0;;;;;:::i;:::-;;:::i;18737:214::-;;;;;;;;;;-1:-1:-1;18737:214:0;;;;;:::i;:::-;;:::i;7351:19::-;;;;;;;;;;-1:-1:-1;7351:19:0;;;;-1:-1:-1;;;;;7351:19:0;;;9983:139;;;;;;;;;;-1:-1:-1;9983:139:0;;;;;:::i;:::-;;:::i;11240:94::-;;;;;;;;;;-1:-1:-1;11240:94:0;;;;;:::i;:::-;;:::i;18363:226::-;;;;;;;;;;-1:-1:-1;18363:226:0;;;;;:::i;:::-;;:::i;2041:79::-;;;;;;;;;;-1:-1:-1;2041:79:0;;;;;:::i;:::-;;:::i;10265:89::-;;;;;;;;;;-1:-1:-1;10265:89:0;;;;;:::i;:::-;-1:-1:-1;;;;;10337:15:0;10323:4;10337:15;;;:5;:15;;;;;;;;;10265:89;17727:450;;;;;;;;;;-1:-1:-1;17727:450:0;;;;;:::i;:::-;;:::i;16056:411::-;;;;;;;;;;-1:-1:-1;16056:411:0;;;;;:::i;:::-;;:::i;10130:127::-;;;;;;;;;;-1:-1:-1;10130:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10228:18:0;;;10211:7;10228:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10130:127;11587:135;;;;;;;;;;-1:-1:-1;11587:135:0;;;;;:::i;:::-;;:::i;19780:452::-;;;;;;;;;;-1:-1:-1;19780:452:0;;;;;:::i;:::-;;:::i;2128:82::-;;;;;;;;;;-1:-1:-1;2128:82:0;;;;;:::i;:::-;;:::i;2412:108::-;;;;;;;;;;-1:-1:-1;2412:108:0;;;;;:::i;:::-;;:::i;11097:66::-;;;;;;;;;;-1:-1:-1;11097:66:0;;;;;:::i;:::-;;:::i;2313:91::-;;;;;;;;;;-1:-1:-1;2313:91:0;;;;;:::i;:::-;;:::i;10498:133::-;10573:4;10580:37;10589:10;10601:7;10610:6;10580:8;:37::i;:::-;-1:-1:-1;10625:4:0;10498:133;;;;;:::o;10883:94::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10952:15:0::1;;::::0;;;:5:::1;:15;::::0;;;;:23;;-1:-1:-1;;10952:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10883:94::o;11734:317::-;11832:4;11851:36;11861:6;11869:9;11880:6;11851:9;:36::i;:::-;11900:117;11909:6;11917:10;11929:87;11965:6;11929:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11929:19:0;;;;;;:11;:19;;;;;;;;11949:10;11929:31;;;;;;;;;:87;:35;:87::i;:::-;11900:8;:117::i;:::-;-1:-1:-1;12037:4:0;11734:317;;;;;;:::o;10639:132::-;9955:9;:18;;;;10736:4;;-1:-1:-1;;;;;10736:4:0;10692:7;9955:18;;;;;;;10709:12;;10692:7;;10709:60;;9955:18;;10709:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;10702:67;;10639:132;:::o;17206:205::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;17339:16:::1;::::0;17297:21:::1;::::0;-1:-1:-1;;;;;17339:16:0::1;17331:70;17366:34;17396:3;17366:25;17297:21:::0;17380:10;17366:13:::1;:25::i;:::-;:29:::0;::::1;:34::i;:::-;17331:70;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17264:147;17206:205:::0;:::o;11445:134::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11504:9:::1;:16:::0;;-1:-1:-1;;;;11504:16:0::1;-1:-1:-1::0;;;11504:16:0::1;::::0;;11522:5:::1;:12:::0;;-1:-1:-1;;11522:12:0::1;11504:16;11522:12;::::0;;11550:27:::1;:15;11570:6:::0;11550:19:::1;:27::i;:::-;11536:11;:41:::0;-1:-1:-1;11445:134:0:o;20244:534::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;20424:18:::1;:31:::0;;-1:-1:-1;;;;;;20424:31:0;;::::1;-1:-1:-1::0;;;;;20424:31:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;20457:25:0;;;:13:::1;:25;::::0;;;;;:32;;-1:-1:-1;;20457:32:0;;::::1;-1:-1:-1::0;20457:32:0;;::::1;::::0;;;20502:14:::1;:23:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;20527:21;;;;;;:28;;;::::1;::::0;::::1;::::0;;20568:13:::1;:21:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;20591:20;;;;;;:27;;;;::::1;::::0;;::::1;::::0;;;20631:14:::1;:23:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;20667:16:::1;:25:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;20705:14:::1;:23:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;20741:16:::1;:27:::0;;;;::::1;::::0;;;::::1;;::::0;;20244:534::o;10985:104::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11059:20:0::1;;::::0;;;:10:::1;:20;::::0;;;;:28;;-1:-1:-1;;11059:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10985:104::o;18963:303::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;19097:19:::1;:34:::0;;;;19144:15:::1;:26:::0;;;;19183:17:::1;:30:::0;19226:17:::1;:30:::0;18963:303::o;10783:92::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10845:21:0::1;;::::0;;;:11:::1;:21;::::0;;;;:28;;-1:-1:-1;;10845:28:0::1;10869:4;10845:28;::::0;;10783:92::o;11171:61::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11220:10:::1;:8;:10::i;:::-;11171:61::o:0;18601:124::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;18671:44:::1;18689:4;18696:10;18708:6;18671:9;:44::i;:::-;18601:124:::0;:::o;11342:95::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11406:18:::1;:29:::0;;-1:-1:-1;;;;;;11406:29:0::1;-1:-1:-1::0;;;;;11406:29:0;;;::::1;::::0;;;::::1;::::0;;11342:95::o;18737:214::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18829:15:0::1;18847:5;18829:15:::0;;;:5:::1;:15;::::0;;;;;;;:23;;-1:-1:-1;;18829:23:0;;::::1;::::0;;;18865:10:::1;:20:::0;;;;;:31;;;::::1;;::::0;;::::1;::::0;::::1;::::0;;18909:11:::1;:21:::0;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;18737:214::o;9983:139::-;10061:4;10068:40;10078:10;10090:9;10101:6;10068:9;:40::i;11240:94::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11306:26:::1;11323:3;11328;11306:16;:26::i;:::-;11240:94:::0;;:::o;18363:226::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;18475:38:::1;::::0;-1:-1:-1;;;18475:38:0;;18507:4:::1;18475:38;::::0;::::1;4681:51:1::0;18460:12:0::1;::::0;-1:-1:-1;;;;;18475:23:0;::::1;::::0;::::1;::::0;4654:18:1;;18475:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18460:53:::0;-1:-1:-1;;;;;;18526:22:0;::::1;;18549:4:::0;18555:23:::1;18574:3;18555:14;18460:53:::0;18564:4;18555:8:::1;:14::i;:23::-;18526:53;::::0;-1:-1:-1;;;;;;18526:53:0::1;::::0;;;;;;-1:-1:-1;;;;;7389:32:1;;;18526:53:0::1;::::0;::::1;7371:51:1::0;7438:18;;;7431:34;7344:18;;18526:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18447:142;18363:226:::0;;;:::o;2041:79::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2092:19:0::1;;::::0;;;2114:4:::1;2092:19;::::0;;;;;;;:26;;-1:-1:-1;;2092:26:0::1;::::0;;::::1;::::0;;2041:79::o;17727:450::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;17817:13:::1;17867:5;17850:12;17835;;:27;;;;:::i;:::-;17833:39;;;;:::i;:::-;17817:55;;17885:17;17934:5;17922:7;17907:12;;:22;;;;:::i;:::-;17905:34;;;;:::i;:::-;17952:12;:20:::0;;;17985:15:::1;:27:::0;;;18042:12:::1;::::0;17885:54;;-1:-1:-1;18042:29:0::1;::::0;18066:4:::1;::::0;18042:19:::1;::::0;:12;:16:::1;:19::i;:29::-;18033:5;:38;;:84;;;;;18088:29;18112:4;18088:19;18105:1;18088:12;;:16;;:19;;;;:::i;:29::-;18075:9;:42;;18033:84;18025:142;;;::::0;-1:-1:-1;;;18025:142:0;;8455:2:1;18025:142:0::1;::::0;::::1;8437:21:1::0;8494:2;8474:18;;;8467:30;8533:34;8513:18;;;8506:62;-1:-1:-1;;;8584:18:1;;;8577:43;8637:19;;18025:142:0::1;8253:409:1::0;18025:142:0::1;17804:373;;17727:450:::0;;:::o;16056:411::-;-1:-1:-1;;;;;16158:13:0;;16133:7;16158:13;;;:5;:13;;;;;;;;:51;;;;-1:-1:-1;;;;;;16175:16:0;;;;;;:8;:16;;;;;;16194:15;-1:-1:-1;16158:51:0;:60;;;;-1:-1:-1;16213:5:0;;;;;;;16158:60;:139;;;-1:-1:-1;;;;;;16222:16:0;;;;;;:5;:16;;;;;;;;:66;;;;-1:-1:-1;;;;;;16254:16:0;;;;;;:8;:16;;;;;;16273:15;-1:-1:-1;16222:66:0;:75;;;;-1:-1:-1;16292:5:0;;;;;;;16222:75;16158:172;;;;16315:15;16301:11;;:29;16158:172;16155:210;;;16339:14;;:23;;16358:3;16339:18;:23::i;:::-;16332:31;;;;16155:210;16390:4;;-1:-1:-1;;;;;16380:14:0;;;16390:4;;16380:14;16377:53;;16416:11;;16403:8;;:25;;:12;:25::i;16377:53::-;-1:-1:-1;16449:8:0;;16056:411;;;;:::o;11587:135::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11671:11:::1;:21:::0;;-1:-1:-1;;11671:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;11694:13:::1;:26:::0;11587:135::o;19780:452::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;19909:12:::1;:19:::0;;;19941:12:::1;:20:::0;;;19974:10:::1;:18:::0;;;20005:7:::1;:15:::0;;;20033:11:::1;:19:::0;;;20076:59:::1;20015:5:::0;20076:46:::1;19987:5:::0;20076:46;19924:4;19956:5;20076:16:::1;:30::i;:::-;:34:::0;::::1;:46::i;:59::-;20065:8;:70:::0;20168:14:::1;::::0;:22:::1;::::0;20187:2:::1;20168:18;:22::i;:::-;20156:8;;:34;;20148:74;;;::::0;-1:-1:-1;;;20148:74:0;;8869:2:1;20148:74:0::1;::::0;::::1;8851:21:1::0;8908:2;8888:18;;;8881:30;8947:29;8927:18;;;8920:57;8994:18;;20148:74:0::1;8667:351:1::0;2128:82:0;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2181:19:0::1;2203:5;2181:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2181:27:0::1;::::0;;2128:82::o;2412:108::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;2479:5:::1;:11:::0;;-1:-1:-1;;;;;2479:11:0;;::::1;-1:-1:-1::0;;;;;;2479:11:0;;::::1;::::0;::::1;::::0;;2492:19;;;2479:11;2492:19:::1;::::0;;;;;;;:26;;-1:-1:-1;;2492:26:0::1;::::0;;::::1;::::0;;2412:108::o;11097:66::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11148:5:::1;:13:::0;;;::::1;;;;-1:-1:-1::0;;11148:13:0;;::::1;::::0;;;::::1;::::0;;11097:66::o;2313:91::-;-1:-1:-1;;;;;2383:19:0;2369:4;2383:19;;;:14;:19;;;;;;;;;2313:91::o;12063:345::-;-1:-1:-1;;;;;12158:19:0;;12150:68;;;;-1:-1:-1;;;12150:68:0;;9225:2:1;12150:68:0;;;9207:21:1;9264:2;9244:18;;;9237:30;9303:34;9283:18;;;9276:62;-1:-1:-1;;;9354:18:1;;;9347:34;9398:19;;12150:68:0;9023:400:1;12150:68:0;-1:-1:-1;;;;;12239:21:0;;12231:68;;;;-1:-1:-1;;;12231:68:0;;9630:2:1;12231:68:0;;;9612:21:1;9669:2;9649:18;;;9642:30;9708:34;9688:18;;;9681:62;-1:-1:-1;;;9759:18:1;;;9752:32;9801:19;;12231:68:0;9428:398:1;12231:68:0;-1:-1:-1;;;;;12312:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12366:32;;1410:25:1;;;12366:32:0;;1383:18:1;12366:32:0;;;;;;;12063:345;;;:::o;12420:794::-;12511:37;12522:6;12530:9;12541:6;12511:10;:37::i;:::-;12561:33;12576:6;12584:9;12561:14;:33::i;:::-;12607:41;12622:6;12630:9;12641:6;12607:14;:41::i;:::-;12662:35;12679:6;12687:9;12662:16;:35::i;:::-;12710:39;12723:6;12731:9;12742:6;12710:12;:39::i;:::-;12763:35;12772:6;12780:9;12791:6;12763:8;:35::i;:::-;-1:-1:-1;;;;;12831:17:0;;;;;;:9;:17;;;;;;:29;;12853:6;12831:21;:29::i;:::-;-1:-1:-1;;;;;12811:17:0;;;;;;:9;:17;;;;;:49;;;;12898:32;12821:6;12920:9;12898:13;:32::i;:::-;:83;;12975:6;12898:83;;;12933:39;12946:6;12954:9;12965:6;12933:12;:39::i;:::-;-1:-1:-1;;;;;13017:20:0;;;;;;:9;:20;;;;;;12873:108;;-1:-1:-1;13017:40:0;;12873:108;13017:24;:40::i;:::-;-1:-1:-1;;;;;12994:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13075:43;;;;;;-1:-1:-1;;;;;;;;;;;13075:43:0;;;13103:14;1410:25:1;;1398:2;1383:18;;1264:177;13075:43:0;;;;;;;;13131:33;13146:9;13157:6;13131:14;:33::i;:::-;13177:27;13186:6;13194:9;13177:8;:27::i;4966:164::-;5052:7;5100:12;5092:6;;;;5084:29;;;;-1:-1:-1;;;5084:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;5122:5:0;;;4966:164::o;3739:82::-;3797:7;3814:5;3818:1;3814;:5;:::i;3829:82::-;3887:7;3904:5;3908:1;3904;:5;:::i;3919:82::-;3977:7;3994:5;3998:1;3994;:5;:::i;3649:82::-;3707:7;3724:5;3728:1;3724;:5;:::i;18189:162::-;18253:4;;18246:37;;-1:-1:-1;;;18246:37:0;;18277:4;18246:37;;;4681:51:1;18231:12:0;;-1:-1:-1;;;;;18253:4:0;;18246:22;;4654:18:1;;18246:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18303:4;;18318:16;;18296:45;;-1:-1:-1;;;18296:45:0;;-1:-1:-1;;;;;18318:16:0;;;18296:45;;;7371:51:1;7438:18;;;7431:34;;;18231:52:0;;-1:-1:-1;18303:4:0;;18296:21;;7344:18:1;;18296:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19278:490::-;19368:21;19352:13;19419:23;19438:3;19419:14;19368:21;19429:3;19419:9;:14::i;:23::-;19402:40;-1:-1:-1;19455:14:0;19472:23;19491:3;19472:14;19402:40;19483:2;19472:10;:14::i;:23::-;19455:40;-1:-1:-1;19508:14:0;19525:23;19544:3;19525:14;:6;19536:2;19525:10;:14::i;:23::-;19508:40;-1:-1:-1;19561:14:0;19578:22;19596:3;19578:13;:6;19561:14;19578:10;:13::i;:22::-;19621:14;;19613:40;;19561:39;;-1:-1:-1;;;;;;19621:14:0;;19613:40;;;;;19646:6;;19621:14;19613:40;19621:14;19613:40;19646:6;19621:14;19613:40;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19674:13:0;;19666:39;;-1:-1:-1;;;;;19674:13:0;;;;19666:39;;;;;19698:6;;19674:13;19666:39;19674:13;19666:39;19698:6;19674:13;19666:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19726:14:0;;19718:40;;-1:-1:-1;;;;;19726:14:0;;;;19718:40;;;;;19751:6;;19726:14;19718:40;19726:14;19718:40;19751:6;19726:14;19718:40;;;;;;;;;;;;;;;;;;;;;19339:429;;;;;19278:490;;:::o;13226:440::-;-1:-1:-1;;;;;13332:20:0;;13324:70;;;;-1:-1:-1;;;13324:70:0;;10296:2:1;13324:70:0;;;10278:21:1;10335:2;10315:18;;;10308:30;10374:34;10354:18;;;10347:62;-1:-1:-1;;;10425:18:1;;;10418:35;10470:19;;13324:70:0;10094:401:1;13324:70:0;-1:-1:-1;;;;;13415:23:0;;13407:71;;;;-1:-1:-1;;;13407:71:0;;10702:2:1;13407:71:0;;;10684:21:1;10741:2;10721:18;;;10714:30;10780:34;10760:18;;;10753:62;-1:-1:-1;;;10831:18:1;;;10824:33;10874:19;;13407:71:0;10500:399:1;13407:71:0;13508:1;13499:6;:10;13491:64;;;;-1:-1:-1;;;13491:64:0;;11106:2:1;13491:64:0;;;11088:21:1;11145:2;11125:18;;;11118:30;11184:34;11164:18;;;11157:62;-1:-1:-1;;;11235:18:1;;;11228:39;11284:19;;13491:64:0;10904:405:1;13491:64:0;-1:-1:-1;;;;;9955:18:0;;9938:7;9955:18;;;:9;:18;;;;;;13576:6;:27;;13568:88;;;;-1:-1:-1;;;13568:88:0;;11516:2:1;13568:88:0;;;11498:21:1;11555:2;11535:18;;;11528:30;11594:34;11574:18;;;11567:62;-1:-1:-1;;;11645:18:1;;;11638:47;11702:19;;13568:88:0;11314:413:1;13678:180:0;-1:-1:-1;;;;;13768:19:0;;;;;;:11;:19;;;;;;;;13767:20;:47;;;;-1:-1:-1;;;;;;13792:22:0;;;;;;:11;:22;;;;;;;;13791:23;13767:47;13764:85;;;13824:9;;-1:-1:-1;;;13824:9:0;;;;13816:31;;;;-1:-1:-1;;;13816:31:0;;11934:2:1;13816:31:0;;;11916:21:1;11973:1;11953:18;;;11946:29;-1:-1:-1;;;11991:18:1;;;11984:39;12040:18;;13816:31:0;11732:332:1;13874:333:0;-1:-1:-1;;;;;13980:19:0;;;;;;:11;:19;;;;;;;;13979:20;:47;;;;-1:-1:-1;;;;;;14004:22:0;;;;;;:11;:22;;;;;;;;14003:23;13979:47;:73;;;;-1:-1:-1;;;;;;14031:21:0;;;;;;:10;:21;;;;;;;;14030:22;13979:73;:103;;;;-1:-1:-1;14077:4:0;;-1:-1:-1;;;;;14056:26:0;;;14077:4;;14056:26;;13979:103;13976:222;;;14146:15;;-1:-1:-1;;;;;14109:20:0;;;;;;:9;:20;;;;;;:32;;14134:6;14109:24;:32::i;:::-;14108:53;;14100:96;;;;-1:-1:-1;;;14100:96:0;;12271:2:1;14100:96:0;;;12253:21:1;12310:2;12290:18;;;12283:30;12349:32;12329:18;;;12322:60;12399:18;;14100:96:0;12069:354:1;14219:276:0;14315:4;;-1:-1:-1;;;;;14305:14:0;;;14315:4;;14305:14;;;;:37;;-1:-1:-1;;;;;;14324:18:0;;;;;;:10;:18;;;;;;;;14323:19;14305:37;:64;;;;-1:-1:-1;;;;;;14347:22:0;;;;;;:11;:22;;;;;;;;14346:23;14305:64;14302:99;;;14383:9;;:16;;14397:1;14383:13;:16::i;:::-;14371:9;:28;14302:99;14426:4;;-1:-1:-1;;;;;14426:4:0;;;14416:14;;;;14413:73;;14474:9;;14454:30;;:15;;:19;:30::i;:::-;-1:-1:-1;;;;;14432:19:0;;;;;;:8;:19;;;;;:52;14219:276;;:::o;16479:211::-;16597:12;;16587:6;:22;;:45;;;-1:-1:-1;;;;;;16613:19:0;;;;;;:11;:19;;;;;;;;16587:45;:71;;;-1:-1:-1;;;;;;16636:22:0;;;;;;:11;:22;;;;;;;;16587:71;16579:101;;;;-1:-1:-1;;;16579:101:0;;12630:2:1;16579:101:0;;;12612:21:1;12669:2;12649:18;;;12642:30;-1:-1:-1;;;12688:18:1;;;12681:47;12745:18;;16579:101:0;12428:341:1;21211:192:0;21305:41;21320:6;21328:9;21339:6;21305:14;:41::i;:::-;21302:92;;;21348:29;21363:13;;21348:14;:29::i;:::-;21391:1;21379:9;:13;21211:192;;;:::o;14507:164::-;-1:-1:-1;;;;;14615:19:0;;14588:4;14615:19;;;:11;:19;;;;;;;;14614:20;:47;;;;-1:-1:-1;;;;;;;14639:22:0;;;;;:11;:22;;;;;;;;14638:23;;14507:164;-1:-1:-1;14507:164:0:o;14944:1100::-;15035:7;15060:31;15073:6;15081:9;15060:12;:31::i;:::-;15057:952;;;15105:17;15125:30;15137:6;15145:9;15125:11;:30::i;:::-;15105:50;;15168:17;15188:62;15235:14;;15188:42;15199:30;15211:6;15219:9;15199:11;:30::i;:::-;15188:6;;:10;:42::i;:62::-;15168:82;;15263:15;15281:37;15308:9;15281:22;15295:7;;15281:9;:13;;:22;;;;:::i;:37::-;15263:55;;15331:15;15349:40;15379:9;15349:25;15363:10;;15349:9;:13;;:25;;;;:::i;:40::-;15331:58;-1:-1:-1;15402:15:0;15420:35;15331:58;15420:22;:9;15434:7;15420:13;:22::i;:35::-;15402:53;-1:-1:-1;15471:11:0;;15468:152;;15541:4;;-1:-1:-1;;;;;15541:4:0;15523:24;;;;:9;:24;;;;;;:37;;15552:7;15523:28;:37::i;:::-;15514:4;;;-1:-1:-1;;;;;15514:4:0;;;15496:24;;;;:9;:24;;;;;;;;;:64;;;;15603:4;;15578:40;;1410:25:1;;;15603:4:0;;;;15578:40;;;;-1:-1:-1;;;;;;;;;;;15578:40:0;1383:18:1;15578:40:0;;;;;;;15468:152;15635:11;;15632:182;;15715:14;;-1:-1:-1;;;;;15715:14:0;15697:34;;;;:9;:34;;;;;;:47;;15736:7;15697:38;:47::i;:::-;15678:14;;;-1:-1:-1;;;;;15678:14:0;;;15660:34;;;;:9;:34;;;;;;;;;:84;;;;15787:14;;15762:50;;1410:25:1;;;15787:14:0;;;;15762:50;;;;-1:-1:-1;;;;;;;;;;;15762:50:0;1383:18:1;15762:50:0;;;;;;;15632:182;15829:11;;15826:152;;15899:4;15881:24;;;;:9;:24;;;;;;:37;;15910:7;15881:28;:37::i;:::-;15872:4;15854:24;;;;:9;:24;;;;;;;:64;;;;15936:40;;-1:-1:-1;;;;;15936:40:0;;;-1:-1:-1;;;;;;;;;;;15936:40:0;;;15968:7;1410:25:1;;1398:2;1383:18;;1264:177;15936:40:0;;;;;;;;15826:152;15986:21;:6;15997:9;15986:10;:21::i;:::-;15979:28;;;;;;;;;15057:952;-1:-1:-1;16028:6:0;14944:1100;-1:-1:-1;;14944:1100:0:o;17423:292::-;-1:-1:-1;;;;;17507:24:0;;;;;;:13;:24;;;;;;;;:56;;;;-1:-1:-1;17547:15:0;6686:1;17547:2;:15;:::i;:::-;17544:19;;:1;:19;:::i;:::-;17535:6;:28;17507:56;17504:84;;;17565:21;17582:1;17584;17565:16;:21::i;:::-;-1:-1:-1;;;;;17603:24:0;;;;;;:13;:24;;;;;;;;:57;;;;-1:-1:-1;17644:15:0;6686:1;17644:2;:15;:::i;:::-;17641:19;;:1;:19;:::i;:::-;17631:6;:29;;17603:57;:89;;;;-1:-1:-1;17676:15:0;6686:1;17676:2;:15;:::i;:::-;17673:19;;:1;:19;:::i;:::-;17664:6;:28;17603:89;17600:106;;;17694:10;:8;:10::i;16702:492::-;10452:17;;10479:8;;16780:37;;;;-1:-1:-1;;;;;;16799:18:0;;;;;;:10;:18;;;;;;;;16798:19;16780:37;:46;;;;-1:-1:-1;16821:5:0;;;;;;;16780:46;:134;;;-1:-1:-1;16840:4:0;;-1:-1:-1;;;;;16830:14:0;;;16840:4;;16830:14;:23;;;;-1:-1:-1;16848:5:0;;;;;;;16830:23;:57;;;;-1:-1:-1;;;;;;16869:18:0;;;;;;:10;:18;;;;;;;;16868:19;16830:57;:84;;;;-1:-1:-1;16891:10:0;16905:9;16891:23;;16830:84;16780:167;;;;16932:15;16918:11;;:29;16780:167;16777:194;;;-1:-1:-1;;;;;16949:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;16949:20:0;16965:4;16949:20;;;16777:194;10452:17;;10479:8;;16986:43;;;;-1:-1:-1;;;;;;17008:21:0;;;;;;:10;:21;;;;;;;;17007:22;16986:43;:70;;;;-1:-1:-1;;;;;;17034:22:0;;;;;;:11;:22;;;;;;;;17033:23;16986:70;:79;;;;-1:-1:-1;17060:5:0;;;;;;;16986:79;:168;;;-1:-1:-1;17091:4:0;;-1:-1:-1;;;;;17081:14:0;;;17091:4;;17081:14;:37;;;;-1:-1:-1;;;;;;17100:18:0;;;;;;:10;:18;;;;;;;;17099:19;17081:37;:64;;;;-1:-1:-1;17122:10:0;17136:9;17122:23;;17081:64;:73;;;;-1:-1:-1;17149:5:0;;;;;;;17081:73;16983:198;;;-1:-1:-1;;;;;17156:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;17156:23:0;17175:4;17156:23;;;16702:492;;:::o;20790:409::-;20933:15;;21011:13;;21001:4;20888;9955:18;;;:9;:18;;;;;;21045:8;;20888:4;;20923:25;;;;-1:-1:-1;20983:41:0;;21045:8;;21044:9;:24;;;;-1:-1:-1;21057:11:0;;;;21044:24;:36;;;;;21072:8;21044:36;:59;;;;-1:-1:-1;;;;;;21085:18:0;;;;;;:10;:18;;;;;;;;21084:19;21044:59;:102;;;;-1:-1:-1;;;;;;21124:22:0;;;;;;:11;:22;;;;;;;;21123:23;21044:102;:127;;;;;21163:8;;21150:9;;:21;;21044:127;:145;;;;;21175:14;21044:145;21037:152;20790:409;-1:-1:-1;;;;;;20790:409:0:o;21415:1124::-;7992:8;:15;;-1:-1:-1;;7992:15:0;8003:4;7992:15;;;21576:19:::1;::::0;21553:17:::1;::::0;21532:15:::1;::::0;21510:17:::1;::::0;7992:8;;21510:86:::1;::::0;21576:19;;21510:61:::1;::::0;;;:21:::1;:38::i;:86::-;21509:92;::::0;21600:1:::1;21509:92;:::i;:::-;21488:113;;21614:32;21649:46;21683:11;21649:29;21660:17;;21649:6;:10;;:29;;;;:::i;:46::-;21614:81:::0;-1:-1:-1;21708:14:0::1;21725:36;:6:::0;21614:81;21725:10:::1;:36::i;:::-;21708:53:::0;-1:-1:-1;21799:21:0::1;21833:24;21708:53:::0;21833:16:::1;:24::i;:::-;21870:20;21893:41;:21;21919:14:::0;21893:25:::1;:41::i;:::-;21870:64;;21947:19;21968:52;21985:34;22001:17;;21985:11;:15;;:34;;;;:::i;:::-;21968:12:::0;;:16:::1;:52::i;:::-;21947:73;;22033:29;22065:34;22081:17;;22065:11;:15;;:34;;;;:::i;:::-;22033:66:::0;-1:-1:-1;22115:25:0;;22112:110:::1;;22158:61;22171:24;22197:21;22158:12;:61::i;:::-;22273:17;::::0;22234:13:::1;::::0;22250:41:::1;::::0;:18:::1;:11:::0;22266:1:::1;22250:15;:18::i;:::-;:22:::0;::::1;:41::i;:::-;22234:57:::0;-1:-1:-1;22307:9:0;;22304:74:::1;;22340:18;::::0;22332:43:::1;::::0;-1:-1:-1;;;;;22340:18:0;;::::1;::::0;22332:43;::::1;;;::::0;22369:5;;22340:18:::1;22332:43:::0;22340:18;22332:43;22369:5;22340:18;22332:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22304:74;22429:15;::::0;22390:13:::1;::::0;22406:39:::1;::::0;:18:::1;:11:::0;22422:1:::1;22406:15;:18::i;:39::-;22390:55:::0;-1:-1:-1;22461:9:0;;22458:72:::1;;22494:16;::::0;22486:41:::1;::::0;-1:-1:-1;;;;;22494:16:0;;::::1;::::0;22486:41;::::1;;;::::0;22521:5;;22494:16:::1;22486:41:::0;22494:16;22486:41;22521:5;22494:16;22486:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22458:72;-1:-1:-1::0;;8012:8:0;:16;;-1:-1:-1;;8012:16:0;;;-1:-1:-1;;;;;;;;21415:1124:0:o;14683:249::-;14763:4;14800:1;14789:8;;:12;:25;;;;-1:-1:-1;14806:8:0;;;;14805:9;14789:25;:80;;;-1:-1:-1;;;;;;14818:13:0;;;;;;:5;:13;;;;;;;;:51;;;;-1:-1:-1;;;;;;14835:16:0;;;;;;:8;:16;;;;;;14854:15;-1:-1:-1;14818:51:0;14789:100;;;-1:-1:-1;;;;;;14873:16:0;;;;;;:5;:16;;;;;;;;14789:100;:133;;;;14907:15;14893:11;;:29;14782:140;;14683:249;;;;:::o;22924:456::-;23016:16;;;23030:1;23016:16;;;;;;;;22992:21;;23016:16;;;;;;;;;;-1:-1:-1;23016:16:0;22992:40;;23063:4;23045;23050:1;23045:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23045:23:0;;;:7;;;;;;;;;;:23;;;;23091:6;;:13;;;-1:-1:-1;;;23091:13:0;;;;:6;;;;;:11;;:13;;;;;23045:7;;23091:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23081:4;23086:1;23081:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23081:23:0;;;:7;;;;;;;;;:23;23149:6;;23117:53;;23134:4;;23149:6;23158:11;23117:8;:53::i;:::-;23183:6;;:187;;-1:-1:-1;;;23183:187:0;;-1:-1:-1;;;;;23183:6:0;;;;:57;;:187;;23257:11;;23183:6;;23303:4;;23332;;23354:15;;23183:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22979:401;22924:456;:::o;22551:361::-;22666:6;;22634:53;;22651:4;;-1:-1:-1;;;;;22666:6:0;22675:11;22634:8;:53::i;:::-;22700:6;;22851:18;;22700:202;;-1:-1:-1;;;22700:202:0;;22765:4;22700:202;;;16003:34:1;16053:18;;;16046:34;;;22700:6:0;16096:18:1;;;16089:34;;;16139:18;;;16132:34;-1:-1:-1;;;;;22851:18:0;;;16182:19:1;;;16175:44;22886:15:0;16235:19:1;;;16228:35;22700:6:0;;;:22;;22730:9;;15937:19:1;;22700:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:118::-;1532:5;1525:13;1518:21;1511:5;1508:32;1498:60;;1554:1;1551;1544:12;1569:382;1634:6;1642;1695:2;1683:9;1674:7;1670:23;1666:32;1663:52;;;1711:1;1708;1701:12;1663:52;1750:9;1737:23;1769:28;1791:5;1769:28;:::i;:::-;1816:5;-1:-1:-1;1873:2:1;1858:18;;1845:32;1886:33;1845:32;1886:33;:::i;:::-;1938:7;1928:17;;;1569:382;;;;;:::o;1956:456::-;2033:6;2041;2049;2102:2;2090:9;2081:7;2077:23;2073:32;2070:52;;;2118:1;2115;2108:12;2070:52;2157:9;2144:23;2176:31;2201:5;2176:31;:::i;:::-;2226:5;-1:-1:-1;2283:2:1;2268:18;;2255:32;2296:33;2255:32;2296:33;:::i;:::-;1956:456;;2348:7;;-1:-1:-1;;;2402:2:1;2387:18;;;;2374:32;;1956:456::o;2417:247::-;2476:6;2529:2;2517:9;2508:7;2504:23;2500:32;2497:52;;;2545:1;2542;2535:12;2497:52;2584:9;2571:23;2603:31;2628:5;2603:31;:::i;2669:180::-;2728:6;2781:2;2769:9;2760:7;2756:23;2752:32;2749:52;;;2797:1;2794;2787:12;2749:52;-1:-1:-1;2820:23:1;;2669:180;-1:-1:-1;2669:180:1:o;3043:1097::-;3156:6;3164;3172;3180;3188;3196;3204;3257:3;3245:9;3236:7;3232:23;3228:33;3225:53;;;3274:1;3271;3264:12;3225:53;3313:9;3300:23;3332:31;3357:5;3332:31;:::i;:::-;3382:5;-1:-1:-1;3439:2:1;3424:18;;3411:32;3452:33;3411:32;3452:33;:::i;:::-;3504:7;-1:-1:-1;3563:2:1;3548:18;;3535:32;3576:33;3535:32;3576:33;:::i;:::-;3628:7;-1:-1:-1;3687:2:1;3672:18;;3659:32;3700:33;3659:32;3700:33;:::i;:::-;3752:7;-1:-1:-1;3811:3:1;3796:19;;3783:33;3825;3783;3825;:::i;:::-;3877:7;-1:-1:-1;3936:3:1;3921:19;;3908:33;3950;3908;3950;:::i;:::-;4002:7;-1:-1:-1;4061:3:1;4046:19;;4033:33;4075;4033;4075;:::i;:::-;4127:7;4117:17;;;3043:1097;;;;;;;;;;:::o;4145:385::-;4231:6;4239;4247;4255;4308:3;4296:9;4287:7;4283:23;4279:33;4276:53;;;4325:1;4322;4315:12;4276:53;-1:-1:-1;;4348:23:1;;;4418:2;4403:18;;4390:32;;-1:-1:-1;4469:2:1;4454:18;;4441:32;;4520:2;4505:18;4492:32;;-1:-1:-1;4145:385:1;-1:-1:-1;4145:385:1:o;4743:248::-;4811:6;4819;4872:2;4860:9;4851:7;4847:23;4843:32;4840:52;;;4888:1;4885;4878:12;4840:52;-1:-1:-1;;4911:23:1;;;4981:2;4966:18;;;4953:32;;-1:-1:-1;4743:248:1:o;4996:388::-;5064:6;5072;5125:2;5113:9;5104:7;5100:23;5096:32;5093:52;;;5141:1;5138;5131:12;5093:52;5180:9;5167:23;5199:31;5224:5;5199:31;:::i;5389:309::-;5454:6;5462;5515:2;5503:9;5494:7;5490:23;5486:32;5483:52;;;5531:1;5528;5521:12;5483:52;5570:9;5557:23;5589:28;5611:5;5589:28;:::i;5703:454::-;5798:6;5806;5814;5822;5830;5883:3;5871:9;5862:7;5858:23;5854:33;5851:53;;;5900:1;5897;5890:12;5851:53;-1:-1:-1;;5923:23:1;;;5993:2;5978:18;;5965:32;;-1:-1:-1;6044:2:1;6029:18;;6016:32;;6095:2;6080:18;;6067:32;;-1:-1:-1;6146:3:1;6131:19;6118:33;;-1:-1:-1;5703:454:1;-1:-1:-1;5703:454:1:o;6422:241::-;6478:6;6531:2;6519:9;6510:7;6506:23;6502:32;6499:52;;;6547:1;6544;6537:12;6499:52;6586:9;6573:23;6605:28;6627:5;6605:28;:::i;6668:335::-;6870:2;6852:21;;;6909:2;6889:18;;;6882:30;-1:-1:-1;;;6943:2:1;6928:18;;6921:41;6994:2;6979:18;;6668:335::o;7008:184::-;7078:6;7131:2;7119:9;7110:7;7106:23;7102:32;7099:52;;;7147:1;7144;7137:12;7099:52;-1:-1:-1;7170:16:1;;7008:184;-1:-1:-1;7008:184:1:o;7476:245::-;7543:6;7596:2;7584:9;7575:7;7571:23;7567:32;7564:52;;;7612:1;7609;7602:12;7564:52;7644:9;7638:16;7663:28;7685:5;7663:28;:::i;7726:127::-;7787:10;7782:3;7778:20;7775:1;7768:31;7818:4;7815:1;7808:15;7842:4;7839:1;7832:15;7858:168;7898:7;7964:1;7960;7956:6;7952:14;7949:1;7946:21;7941:1;7934:9;7927:17;7923:45;7920:71;;;7971:18;;:::i;:::-;-1:-1:-1;8011:9:1;;7858:168::o;8031:217::-;8071:1;8097;8087:132;;8141:10;8136:3;8132:20;8129:1;8122:31;8176:4;8173:1;8166:15;8204:4;8201:1;8194:15;8087:132;-1:-1:-1;8233:9:1;;8031:217::o;9831:125::-;9871:4;9899:1;9896;9893:8;9890:34;;;9904:18;;:::i;:::-;-1:-1:-1;9941:9:1;;9831:125::o;9961:128::-;10001:3;10032:1;10028:6;10025:1;10022:13;10019:39;;;10038:18;;:::i;:::-;-1:-1:-1;10074:9:1;;9961:128::o;12774:422::-;12863:1;12906:5;12863:1;12920:270;12941:7;12931:8;12928:21;12920:270;;;13000:4;12996:1;12992:6;12988:17;12982:4;12979:27;12976:53;;;13009:18;;:::i;:::-;13059:7;13049:8;13045:22;13042:55;;;13079:16;;;;13042:55;13158:22;;;;13118:15;;;;12920:270;;;12924:3;12774:422;;;;;:::o;13201:806::-;13250:5;13280:8;13270:80;;-1:-1:-1;13321:1:1;13335:5;;13270:80;13369:4;13359:76;;-1:-1:-1;13406:1:1;13420:5;;13359:76;13451:4;13469:1;13464:59;;;;13537:1;13532:130;;;;13444:218;;13464:59;13494:1;13485:10;;13508:5;;;13532:130;13569:3;13559:8;13556:17;13553:43;;;13576:18;;:::i;:::-;-1:-1:-1;;13632:1:1;13618:16;;13647:5;;13444:218;;13746:2;13736:8;13733:16;13727:3;13721:4;13718:13;13714:36;13708:2;13698:8;13695:16;13690:2;13684:4;13681:12;13677:35;13674:77;13671:159;;;-1:-1:-1;13783:19:1;;;13815:5;;13671:159;13862:34;13887:8;13881:4;13862:34;:::i;:::-;13932:6;13928:1;13924:6;13920:19;13911:7;13908:32;13905:58;;;13943:18;;:::i;:::-;13981:20;;13201:806;-1:-1:-1;;;13201:806:1:o;14012:140::-;14070:5;14099:47;14140:4;14130:8;14126:19;14120:4;14099:47;:::i;14289:127::-;14350:10;14345:3;14341:20;14338:1;14331:31;14381:4;14378:1;14371:15;14405:4;14402:1;14395:15;14421:251;14491:6;14544:2;14532:9;14523:7;14519:23;14515:32;14512:52;;;14560:1;14557;14550:12;14512:52;14592:9;14586:16;14611:31;14636:5;14611:31;:::i;14677:980::-;14939:4;14987:3;14976:9;14972:19;15018:6;15007:9;15000:25;15044:2;15082:6;15077:2;15066:9;15062:18;15055:34;15125:3;15120:2;15109:9;15105:18;15098:31;15149:6;15184;15178:13;15215:6;15207;15200:22;15253:3;15242:9;15238:19;15231:26;;15292:2;15284:6;15280:15;15266:29;;15313:1;15323:195;15337:6;15334:1;15331:13;15323:195;;;15402:13;;-1:-1:-1;;;;;15398:39:1;15386:52;;15493:15;;;;15458:12;;;;15434:1;15352:9;15323:195;;;-1:-1:-1;;;;;;;15574:32:1;;;;15569:2;15554:18;;15547:60;-1:-1:-1;;;15638:3:1;15623:19;15616:35;15535:3;14677:980;-1:-1:-1;;;14677:980:1:o;16274:306::-;16362:6;16370;16378;16431:2;16419:9;16410:7;16406:23;16402:32;16399:52;;;16447:1;16444;16437:12;16399:52;16476:9;16470:16;16460:26;;16526:2;16515:9;16511:18;16505:25;16495:35;;16570:2;16559:9;16555:18;16549:25;16539:35;;16274:306;;;;;:::o

Swarm Source

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