ETH Price: $3,504.58 (+2.45%)
Gas: 2 Gwei

Token

Zenithra (ZTF)
 

Overview

Max Total Supply

1,000,000 ZTF

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,993.158690328404497699 ZTF

Value
$0.00
0xb486e3572ec7052e2bb4f82232de70c264d5786d
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:
Zenithra

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-10
*/

/**
Zenithra - Insure, Interact, Invest

https://zenithra.finance/
https://t.me/ZenithraFinance
https://docs.zenithra.finance/
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

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

/**
 * Basic access control mechanism
 */

abstract contract Ownable {
    address internal owner;
    address private _previousOwner;

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

    constructor(address _owner) {
        owner = _owner;
    }

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

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

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

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

/**
 * Router Interfaces
 */

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

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

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

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

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

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

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

/**
 * Token Contract Code
 */

contract Zenithra is ERC20, Ownable {
    // -- Mappings --
    mapping(address => bool) public _blacklisted;
    mapping(address => bool) private _whitelisted;
    mapping(address => bool) public _automatedMarketMakers;
    mapping(address => bool) private _isLimitless;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    // -- Basic Token Information --
    string constant _name = "Zenithra";
    string constant _symbol = "ZTF";
    uint8 constant _decimals = 18;
    uint256 private _totalSupply = 1_000_000 * 10 ** _decimals;


    // -- Transaction & Wallet Limits --
    uint256 public maxBuyPercentage;
    uint256 public maxSellPercentage;
    uint256 public maxWalletPercentage;

    uint256 private maxBuyAmount;
    uint256 private maxSellAmount;
    uint256 private maxWalletAmount;

    // -- Contract Variables --
    address[] private sniperList;
    uint256 tokenTax;
    uint256 transferFee;
    uint256 private targetLiquidity = 50;

    // -- Fee Structs --
    struct BuyFee {
        uint256 liquidityFee;
        uint256 insurancefee;
        uint256 marketingfee;
        uint256 total;
    }

    struct SellFee {
        uint256 liquidityFee;
        uint256 insurancefee;
        uint256 marketingfee;
        uint256 total;
    }

    BuyFee public buyFee;
    SellFee public sellFee;

    // -- Addresses --
    address public _exchangeRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    address public insuranceReciever = 0x8371572FFc59Ae42fF6840A4295f8c94711D30aA;
    address public marketingReceiver = 0x8371572FFc59Ae42fF6840A4295f8c94711D30aA;

    IDEXRouter public router;
    address public pair;

    // -- Misc Variables --
    bool public antiSniperMode = true;  // AntiSniper active at launch by default
    bool private _addingLP;
    bool private inSwap;
    bool private _initialDistributionFinished;

    // -- Swap Variables --
    bool public swapEnabled = true;
    uint256 private swapThreshold = _totalSupply / 1000;
    
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () Ownable(msg.sender) {

        // Initialize Pancake Pair
        router = IDEXRouter(_exchangeRouterAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _automatedMarketMakers[pair]=true;
        
        // Set Initial Buy Fees -- Base 1000 Set 10 for 1%
        buyFee.liquidityFee = 0; buyFee.insurancefee = 30; buyFee.marketingfee = 20;
        buyFee.total = buyFee.liquidityFee + buyFee.insurancefee + buyFee.marketingfee;

        // Set Initial Sell Fees -- Base 1000 Set 10 for 1%
        sellFee.liquidityFee = 30; sellFee.insurancefee = 30; sellFee.marketingfee = 20;
        sellFee.total = sellFee.liquidityFee + sellFee.insurancefee + sellFee.marketingfee;

        // Set Initial Buy, Sell & Wallet Limits -- Base 1000 Set 10 for 1%
        maxBuyPercentage = 20; maxBuyAmount = _totalSupply /1000 * maxBuyPercentage;
        maxSellPercentage = 10; maxSellAmount = _totalSupply /1000 * maxSellPercentage;
        maxWalletPercentage = 20; maxWalletAmount = _totalSupply /1000 * maxWalletPercentage;

        // Exclude from fees & limits
        _isLimitless[owner] = _isLimitless[address(this)] = true;

        // Mint _totalSupply to owner address
        _balances[owner] = _totalSupply;
        emit Transfer(address(0x0), owner, _totalSupply);
    }


    ///////////////////////////////////////// -- Setter Functions -- /////////////////////////////////////////

        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerSetLimits(uint256 _maxBuyPercentage, uint256 _maxSellPercentage, uint256 _maxWalletPercentage) external onlyOwner {
        maxBuyAmount = _totalSupply /1000 * _maxBuyPercentage;
        maxSellAmount = _totalSupply /1000 * _maxSellPercentage;
        maxWalletAmount = _totalSupply /1000 * _maxWalletPercentage;
    }

    function ownerSetInitialDistributionFinished() external onlyOwner {
        _initialDistributionFinished = true;
    }

    function ownerSetLimitlessAddress(address _addr, bool _status) external onlyOwner {
        _isLimitless[_addr] = _status;
    }

    function ownerSetSwapBackSettings(bool _enabled, uint256 _percentageBase1000) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / 1000 * _percentageBase1000;
    }

    function ownerSetTargetLiquidity(uint256 target) external onlyOwner {
        targetLiquidity = target;
    }
       // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateBuyFees (uint256 _liquidityFee, uint256 _insurancefee, uint256 _marketingfee) external onlyOwner {
        buyFee.liquidityFee = _liquidityFee;
        buyFee.insurancefee = _insurancefee;
        buyFee.marketingfee = _marketingfee;
        buyFee.total = buyFee.liquidityFee + buyFee.insurancefee + buyFee.marketingfee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateSellFees (uint256 _liquidityFee, uint256 _insurancefee, uint256 _marketingfee) external onlyOwner {
        sellFee.liquidityFee = _liquidityFee;
        sellFee.insurancefee = _insurancefee;
        sellFee.marketingfee = _marketingfee;
        sellFee.total = sellFee.liquidityFee + sellFee.insurancefee + sellFee.marketingfee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateTransferFee (uint256 _transferFee) external onlyOwner {
        transferFee = _transferFee;
    }

    function ownerSetReceivers (address _insurance, address _marketing) external onlyOwner {
        insuranceReciever = _insurance;
        marketingReceiver = _marketing;
    }

    function reverseSniper(address sniper) external onlyOwner {
        _blacklisted[sniper] = false;
    }

    function addNewMarketMaker(address newAMM) external onlyOwner {
        _automatedMarketMakers[newAMM]=true;
        _isLimitless[newAMM]=true;
    }

    function controlAntiSniperMode(bool value) external onlyOwner {
        antiSniperMode = value;
    }

    function clearStuckBalance() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner).transfer(contractETHBalance);
    }
    ///////////////////////////////////////// -- Getter Functions -- /////////////////////////////////////////

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

    function showSniperList() public view returns(address[] memory){
        return sniperList;
    }

    function showSniperListLength() public view returns(uint256){
        return sniperList.length;
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy * (balanceOf(pair) * (2)) / (getCirculatingSupply());
    }

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

    ///////////////////////////////////////// -- Internal Functions -- /////////////////////////////////////////

    function _transfer(address sender,address recipient,uint256 amount) private {
        require(sender!=address(0)&&recipient!=address(0),"Cannot be address(0).");
        bool isBuy=_automatedMarketMakers[sender];
        bool isSell=_automatedMarketMakers[recipient];
        bool isExcluded=_isLimitless[sender]||_isLimitless[recipient]||_addingLP;

        if(isExcluded)_transferExcluded(sender,recipient,amount);
        else { require(_initialDistributionFinished);
            // Punish for Snipers
            if(antiSniperMode)_punishSnipers(sender,recipient,amount);
            // Buy Tokens
            else if(isBuy)_buyTokens(sender,recipient,amount);
            // Sell Tokens
            else if(isSell) {
                // Swap & Liquify
                if (shouldSwapBack()) {swapBack();}
                _sellTokens(sender,recipient,amount);
            } else {
                // P2P Transfer
                require(!_blacklisted[sender]&&!_blacklisted[recipient]);
                require(balanceOf(recipient)+amount<=maxWalletAmount);
                _P2PTransfer(sender,recipient,amount);
            }
        }
    }

    function _punishSnipers(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        tokenTax = amount*90/100;
        _blacklisted[recipient]=true;
        sniperList.push(address(recipient));
        _transferIncluded(sender,recipient,amount,tokenTax);
    }

    function _buyTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        if(!_whitelisted[recipient]){
        tokenTax = amount*buyFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }
    function _sellTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[sender]);
        require(amount <= maxSellAmount);
        if(!_whitelisted[sender]){
        tokenTax = amount*sellFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }

    function _P2PTransfer(address sender,address recipient,uint256 amount) private {
        tokenTax = amount * transferFee/1000;
        if( tokenTax > 0) {_transferIncluded(sender,recipient,amount,tokenTax);}
        else {_transferExcluded(sender,recipient,amount);}
    }

    function _transferExcluded(address sender,address recipient,uint256 amount) private {
        _updateBalance(sender,_balances[sender]-amount);
        _updateBalance(recipient,_balances[recipient]+amount);
        emit Transfer(sender,recipient,amount);
    }

    function _transferIncluded(address sender,address recipient,uint256 amount,uint256 taxAmount) private {
        uint256 newAmount = amount-tokenTax;
        _updateBalance(sender,_balances[sender]-amount);
        _updateBalance(address(this),_balances[address(this)]+taxAmount);
        _updateBalance(recipient,_balances[recipient]+newAmount);
        emit Transfer(sender,recipient,newAmount);
        emit Transfer(sender,address(this),taxAmount);
    }

    function _updateBalance(address account,uint256 newBalance) private {
        _balances[account] = newBalance;
    }

    function shouldSwapBack() private view returns (bool) {
        return
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }   

    function swapBack() private swapping {
        uint256 toSwap = balanceOf(address(this));

        uint256 totalLPTokens=toSwap*(sellFee.liquidityFee + buyFee.liquidityFee)/(sellFee.total + buyFee.total);
        uint256 tokensLeft=toSwap-totalLPTokens;
        uint256 LPTokens=totalLPTokens/2;
        uint256 LPETHTokens=totalLPTokens-LPTokens;
        toSwap=tokensLeft+LPETHTokens;
        uint256 oldETH=address(this).balance;
        _swapTokensForETH(toSwap);
        uint256 newETH=address(this).balance-oldETH;
        uint256 LPETH=(newETH*LPETHTokens)/toSwap;
        _addLiquidity(LPTokens,LPETH);
        uint256 remainingETH=address(this).balance-oldETH;
        _distributeETH(remainingETH);
    }

    function _distributeETH(uint256 remainingETH) private {
        uint256 marketingfee = (buyFee.marketingfee + sellFee.marketingfee);
        uint256 insurancefee = (buyFee.insurancefee + sellFee.insurancefee);
        uint256 totalFee = (marketingfee + insurancefee);

        uint256 amountETHmarketing = remainingETH * (marketingfee) / (totalFee);
        uint256 amountETHinsurance = remainingETH * (insurancefee) / (totalFee);

        if(amountETHinsurance > 0){
        (bool insuranceSuccess, /* bytes memory data */) = payable(insuranceReciever).call{value: amountETHinsurance, gas: 30000}("");
        require(insuranceSuccess, "receiver rejected ETH transfer"); }
        
        if(amountETHmarketing > 0){
        (bool marketingSuccess, /* bytes memory data */) = payable(marketingReceiver).call{value: amountETHmarketing, gas: 30000}("");
        require(marketingSuccess, "receiver rejected ETH transfer"); }
    }

    function _swapTokensForETH(uint256 amount) private {
        address[] memory path=new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _addLiquidity(uint256 amountTokens,uint256 amountETH) private {
        _addingLP=true;
        router.addLiquidityETH{value: amountETH}(
            address(this),
            amountTokens,
            0,
            0,
            marketingReceiver,
            block.timestamp
        );
        _addingLP=false;
    }

/**
 * IERC20
 */

    receive() external payable { }

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        uint256 allowance_ = _allowances[sender][msg.sender];
        require(allowance_ >= amount);
        
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        _transfer(sender, recipient, amount);
        return true;
    }
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_automatedMarketMakers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_exchangeRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAMM","type":"address"}],"name":"addNewMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiSniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"insurancefee","type":"uint256"},{"internalType":"uint256","name":"marketingfee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"controlAntiSniperMode","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"insuranceReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"ownerSetInitialDistributionFinished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ownerSetLimitlessAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxSellPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxWalletPercentage","type":"uint256"}],"name":"ownerSetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_insurance","type":"address"},{"internalType":"address","name":"_marketing","type":"address"}],"name":"ownerSetReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentageBase1000","type":"uint256"}],"name":"ownerSetSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"}],"name":"ownerSetTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_insurancefee","type":"uint256"},{"internalType":"uint256","name":"_marketingfee","type":"uint256"}],"name":"ownerUpdateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_insurancefee","type":"uint256"},{"internalType":"uint256","name":"_marketingfee","type":"uint256"}],"name":"ownerUpdateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"ownerUpdateTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"reverseSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"insurancefee","type":"uint256"},{"internalType":"uint256","name":"marketingfee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000523565b6200002190620f42406200053b565b60088190556032601255601b8054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031991821617909155601c8054738371572ffc59ae42ff6840a4295f8c94711d30aa9083168117909155601d8054909216179055601f805464ff000000ff60a01b19167801000000010000000000000000000000000000000000000000179055620000ba906103e8906200055d565b602055348015620000ca57600080fd5b5060008054336001600160a01b031991821617909155601b54601e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000137573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015d919062000580565b6001600160a01b031663c9c65396601e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e5919062000580565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000232573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000258919062000580565b601f80546001600160a01b0319166001600160a01b03928316178155306000908152600760209081526040808320601e80548716855290835281842060001990559354909416825260049052918220805460ff1916600117905560138290556014818155601581905591620002ce9190620005ab565b620002da9190620005ab565b601655601e601781905560188190556014601981905590620002fd9080620005ab565b620003099190620005ab565b601a556014600981905560085462000325906103e8906200055d565b6200033191906200053b565b600c55600a8080556008546200034b906103e8906200055d565b6200035791906200053b565b600d556014600b81905560085462000373906103e8906200055d565b6200037f91906200053b565b600e553060009081526005602090815260408083208054600160ff19918216811790925584546001600160a01b039081168652838620805490921690921790556008548454821685526006845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005c6565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004655781600019048211156200044957620004496200040e565b808516156200045757918102915b93841c939080029062000429565b509250929050565b6000826200047e575060016200051d565b816200048d575060006200051d565b8160018114620004a65760028114620004b157620004d1565b60019150506200051d565b60ff841115620004c557620004c56200040e565b50506001821b6200051d565b5060208310610133831016604e8410600b8410161715620004f6575081810a6200051d565b62000502838362000424565b80600019048211156200051957620005196200040e565b0290505b92915050565b60006200053460ff8416836200046d565b9392505050565b60008160001904831182151516156200055857620005586200040e565b500290565b6000826200057b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200059357600080fd5b81516001600160a01b03811681146200053457600080fd5b60008219821115620005c157620005c16200040e565b500190565b61201d80620005d66000396000f3fe6080604052600436106102765760003560e01c80636390aeeb1161014f578063a5949bcf116100c1578063dca3cef11161007a578063dca3cef1146107d8578063dd62ed3e146107f8578063e06509971461083e578063e5a772d214610854578063f2fde38b14610874578063f887ea401461089457600080fd5b8063a5949bcf14610722578063a8aa1b3114610742578063a9059cbb14610762578063b46ba24b14610782578063b704a9f6146107a2578063d51ed1c8146107b857600080fd5b806383bd84851161011357806383bd84851461065857806387cfc49314610678578063893d20e8146106985780638ca42e4e146106b65780638ee41ca8146106d657806395d89b41146106f657600080fd5b80636390aeeb146105a75780636ddd1713146105bc57806370a08231146105dd578063715018a6146106135780637a6d69b41461062857600080fd5b80632d3b4047116101e857806347375a37116101ac57806347375a37146104fb5780634c5d87101461051057806352aae9dd1461053057806353cd621014610550578063599ca3971461057157806359d3cac21461058757600080fd5b80632d3b4047146104585780632f54bf6e14610478578063313ce567146104a7578063364333f4146104c357806347062402146104d857600080fd5b806318160ddd1161023a57806318160ddd146103675780631ad79535146103865780631ca0b1d0146103be57806323b872dd146103e05780632b112e49146104005780632b14ca561461041557600080fd5b806306fdde0314610282578063095ea7b3146102c55780630c5b1d93146102f55780630cb23d86146103175780631161ae391461034757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b506040805180820190915260088152675a656e697468726160c01b60208201525b6040516102bc9190611c1e565b60405180910390f35b3480156102d157600080fd5b506102e56102e0366004611c8b565b6108b4565b60405190151581526020016102bc565b34801561030157600080fd5b50610315610310366004611ccc565b610920565b005b34801561032357600080fd5b506102e5610332366004611d01565b60046020526000908152604090205460ff1681565b34801561035357600080fd5b506102e5610362366004611d25565b61097e565b34801561037357600080fd5b506008545b6040519081526020016102bc565b34801561039257600080fd5b50601c546103a6906001600160a01b031681565b6040516001600160a01b0390911681526020016102bc565b3480156103ca57600080fd5b506103d3610992565b6040516102bc9190611d8b565b3480156103ec57600080fd5b506102e56103fb366004611d9e565b6109f4565b34801561040c57600080fd5b50610378610abb565b34801561042157600080fd5b50601754601854601954601a546104389392919084565b6040805194855260208501939093529183015260608201526080016102bc565b34801561046457600080fd5b50601b546103a6906001600160a01b031681565b34801561048457600080fd5b506102e5610493366004611d01565b6000546001600160a01b0391821691161490565b3480156104b357600080fd5b50604051601281526020016102bc565b3480156104cf57600080fd5b50610315610b2b565b3480156104e457600080fd5b506013546014546015546016546104389392919084565b34801561050757600080fd5b50610315610b94565b34801561051c57600080fd5b5061031561052b366004611ddf565b610bd3565b34801561053c57600080fd5b5061031561054b366004611e0b565b610c5e565b34801561055c57600080fd5b50601f546102e590600160a01b900460ff1681565b34801561057d57600080fd5b50610378600b5481565b34801561059357600080fd5b506103156105a2366004611ddf565b610c8d565b3480156105b357600080fd5b50600f54610378565b3480156105c857600080fd5b50601f546102e590600160c01b900460ff1681565b3480156105e957600080fd5b506103786105f8366004611d01565b6001600160a01b031660009081526006602052604090205490565b34801561061f57600080fd5b50610315610ce3565b34801561063457600080fd5b506102e5610643366004611d01565b60026020526000908152604090205460ff1681565b34801561066457600080fd5b50610315610673366004611e24565b610d57565b34801561068457600080fd5b50610315610693366004611d01565b610d9f565b3480156106a457600080fd5b506000546001600160a01b03166103a6565b3480156106c257600080fd5b506103156106d1366004611e0b565b610dea565b3480156106e257600080fd5b506103156106f1366004611e3f565b610e19565b34801561070257600080fd5b506040805180820190915260038152622d2a2360e91b60208201526102af565b34801561072e57600080fd5b50601d546103a6906001600160a01b031681565b34801561074e57600080fd5b50601f546103a6906001600160a01b031681565b34801561076e57600080fd5b506102e561077d366004611c8b565b610e7d565b34801561078e57600080fd5b5061031561079d366004611ddf565b610e93565b3480156107ae57600080fd5b50610378600a5481565b3480156107c457600080fd5b506103786107d3366004611e0b565b610ee9565b3480156107e457600080fd5b506103156107f3366004611e5b565b610f33565b34801561080457600080fd5b50610378610813366004611e5b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561084a57600080fd5b5061037860095481565b34801561086057600080fd5b5061031561086f366004611d01565b610f8b565b34801561088057600080fd5b5061031561088f366004611d01565b610ff1565b3480156108a057600080fd5b50601e546103a6906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061090f9086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146109535760405162461bcd60e51b815260040161094a90611e94565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60008261098a83610ee9565b119392505050565b6060600f8054806020026020016040519081016040528092919081815260200182805480156109ea57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109cc575b5050505050905090565b6001600160a01b038316600090815260076020908152604080832033845290915281205482811015610a2557600080fd5b6001600160a01b038516600090815260076020908152604080832033845290915290205460001914610aa5576001600160a01b0385166000908152600760209081526040808320338452909152902054610a80908490611eda565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b610ab08585856110db565b506001949350505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600854919291610b1c9190611eda565b610b269190611eda565b905090565b6000546001600160a01b03163314610b555760405162461bcd60e51b815260040161094a90611e94565b6000805460405147926001600160a01b039092169183156108fc02918491818181858888f19350505050158015610b90573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610bbe5760405162461bcd60e51b815260040161094a90611e94565b601f805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040161094a90611e94565b826103e8600854610c0e9190611ef1565b610c189190611f13565b600c556008548290610c2d906103e890611ef1565b610c379190611f13565b600d556008548190610c4c906103e890611ef1565b610c569190611f13565b600e55505050565b6000546001600160a01b03163314610c885760405162461bcd60e51b815260040161094a90611e94565b601255565b6000546001600160a01b03163314610cb75760405162461bcd60e51b815260040161094a90611e94565b60178390556018829055601981905580610cd18385611f32565b610cdb9190611f32565b601a55505050565b6000546001600160a01b03163314610d0d5760405162461bcd60e51b815260040161094a90611e94565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d815760405162461bcd60e51b815260040161094a90611e94565b601f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610dc95760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b03163314610e145760405162461bcd60e51b815260040161094a90611e94565b601155565b6000546001600160a01b03163314610e435760405162461bcd60e51b815260040161094a90611e94565b601f805460ff60c01b1916600160c01b841515021790556008548190610e6c906103e890611ef1565b610e769190611f13565b6020555050565b6000610e8a3384846110db565b50600192915050565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b815260040161094a90611e94565b60138390556014829055601581905580610ed78385611f32565b610ee19190611f32565b601655505050565b6000610ef3610abb565b601f546001600160a01b0316600090815260066020526040902054610f19906002611f13565b610f239084611f13565b610f2d9190611ef1565b92915050565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b815260040161094a90611e94565b601c80546001600160a01b039384166001600160a01b031991821617909155601d8054929093169116179055565b6000546001600160a01b03163314610fb55760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b031660009081526004602090815260408083208054600160ff1991821681179092556005909352922080549091169091179055565b6000546001600160a01b0316331461101b5760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b0381166110805760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161094a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316158015906110fb57506001600160a01b03821615155b61113f5760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba1031329030b2323932b9b99418149760591b604482015260640161094a565b6001600160a01b03808416600081815260046020908152604080832054948716835280832054938352600590915281205460ff9384169392831692168061119e57506001600160a01b03851660009081526005602052604090205460ff165b806111b25750601f54600160a81b900460ff165b905080156111ca576111c58686866112ca565b6112c2565b601f54600160b81b900460ff166111e057600080fd5b601f54600160a01b900460ff16156111fd576111c586868661138c565b821561120e576111c586868661148e565b81156112345761121c611551565b1561122957611229611599565b6111c5868686611699565b6001600160a01b03861660009081526002602052604090205460ff1615801561127657506001600160a01b03851660009081526002602052604090205460ff16155b61127f57600080fd5b600e54846112a2876001600160a01b031660009081526006602052604090205490565b6112ac9190611f32565b11156112b757600080fd5b6112c28686866116ff565b505050505050565b6001600160a01b0383166000908152600660205260409020546113109084906112f4908490611eda565b6001600160a01b03909116600090815260066020526040902055565b6001600160a01b03821660009081526006602052604090205461133a9083906112f4908490611f32565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137f91815260200190565b60405180910390a3505050565b6001600160a01b03821660009081526002602052604090205460ff16156113b257600080fd5b600c548111156113f85760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161094a565b606461140582605a611f13565b61140f9190611ef1565b60109081556001600160a01b0383166000818152600260205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055546114899084908490849061173d565b505050565b6001600160a01b03821660009081526002602052604090205460ff16156114b457600080fd5b600c548111156114fa5760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161094a565b6001600160a01b03821660009081526003602052604090205460ff1661153d576016546103e89061152b9083611f13565b6115359190611ef1565b601055611543565b60006010555b61148983838360105461173d565b601f54600090600160b01b900460ff161580156115775750601f54600160c01b900460ff165b8015610b26575050602080543060009081526006909252604090912054101590565b601f805460ff60b01b1916600160b01b17905530600090815260066020526040812054601654601a549192506000916115d29190611f32565b6013546017546115e29190611f32565b6115ec9084611f13565b6115f69190611ef1565b905060006116048284611eda565b90506000611613600284611ef1565b905060006116218285611eda565b905061162d8184611f32565b94504761163986611858565b60006116458247611eda565b90506000876116548584611f13565b61165e9190611ef1565b905061166a8582611991565b60006116768447611eda565b905061168181611a4d565b5050601f805460ff60b01b1916905550505050505050565b6001600160a01b03831660009081526002602052604090205460ff16156116bf57600080fd5b600d548111156116ce57600080fd5b6001600160a01b03831660009081526003602052604090205460ff1661153d57601a546103e89061152b9083611f13565b6103e8601154826117109190611f13565b61171a9190611ef1565b6010819055156117325761148983838360105461173d565b6114898383836112ca565b60006010548361174d9190611eda565b6001600160a01b03861660009081526006602052604090205490915061177a9086906112f4908690611eda565b3060008181526006602052604090205461179a91906112f4908590611f32565b6001600160a01b0384166000908152600660205260409020546117c49085906112f4908490611f32565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161180991815260200190565b60405180910390a360405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061188d5761188d611f4a565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190a9190611f60565b8160018151811061191d5761191d611f4a565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac94790611963908590600090869030904290600401611f7d565b600060405180830381600087803b15801561197d57600080fd5b505af11580156112c2573d6000803e3d6000fd5b601f805460ff60a81b1916600160a81b179055601e54601d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611a14573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a399190611fb9565b5050601f805460ff60a81b19169055505050565b601954601554600091611a5f91611f32565b601854601454919250600091611a759190611f32565b90506000611a838284611f32565b9050600081611a928587611f13565b611a9c9190611ef1565b9050600082611aab8588611f13565b611ab59190611ef1565b90508015611b6757601c546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611b0f576040519150601f19603f3d011682016040523d82523d6000602084013e611b14565b606091505b5050905080611b655760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161094a565b505b81156112c257601d546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114611bbf576040519150601f19603f3d011682016040523d82523d6000602084013e611bc4565b606091505b5050905080611c155760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161094a565b50505050505050565b600060208083528351808285015260005b81811015611c4b57858101830151858201604001528201611c2f565b81811115611c5d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c8857600080fd5b50565b60008060408385031215611c9e57600080fd5b8235611ca981611c73565b946020939093013593505050565b80358015158114611cc757600080fd5b919050565b60008060408385031215611cdf57600080fd5b8235611cea81611c73565b9150611cf860208401611cb7565b90509250929050565b600060208284031215611d1357600080fd5b8135611d1e81611c73565b9392505050565b60008060408385031215611d3857600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015611d805781516001600160a01b031687529582019590820190600101611d5b565b509495945050505050565b602081526000611d1e6020830184611d47565b600080600060608486031215611db357600080fd5b8335611dbe81611c73565b92506020840135611dce81611c73565b929592945050506040919091013590565b600080600060608486031215611df457600080fd5b505081359360208301359350604090920135919050565b600060208284031215611e1d57600080fd5b5035919050565b600060208284031215611e3657600080fd5b611d1e82611cb7565b60008060408385031215611e5257600080fd5b611ca983611cb7565b60008060408385031215611e6e57600080fd5b8235611e7981611c73565b91506020830135611e8981611c73565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015611eec57611eec611ec4565b500390565b600082611f0e57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f2d57611f2d611ec4565b500290565b60008219821115611f4557611f45611ec4565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f7257600080fd5b8151611d1e81611c73565b85815284602082015260a060408201526000611f9c60a0830186611d47565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215611fce57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212207414dbfd6925cc8bae780a2f837de22853e4d31505394625ade06051359e896664736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80636390aeeb1161014f578063a5949bcf116100c1578063dca3cef11161007a578063dca3cef1146107d8578063dd62ed3e146107f8578063e06509971461083e578063e5a772d214610854578063f2fde38b14610874578063f887ea401461089457600080fd5b8063a5949bcf14610722578063a8aa1b3114610742578063a9059cbb14610762578063b46ba24b14610782578063b704a9f6146107a2578063d51ed1c8146107b857600080fd5b806383bd84851161011357806383bd84851461065857806387cfc49314610678578063893d20e8146106985780638ca42e4e146106b65780638ee41ca8146106d657806395d89b41146106f657600080fd5b80636390aeeb146105a75780636ddd1713146105bc57806370a08231146105dd578063715018a6146106135780637a6d69b41461062857600080fd5b80632d3b4047116101e857806347375a37116101ac57806347375a37146104fb5780634c5d87101461051057806352aae9dd1461053057806353cd621014610550578063599ca3971461057157806359d3cac21461058757600080fd5b80632d3b4047146104585780632f54bf6e14610478578063313ce567146104a7578063364333f4146104c357806347062402146104d857600080fd5b806318160ddd1161023a57806318160ddd146103675780631ad79535146103865780631ca0b1d0146103be57806323b872dd146103e05780632b112e49146104005780632b14ca561461041557600080fd5b806306fdde0314610282578063095ea7b3146102c55780630c5b1d93146102f55780630cb23d86146103175780631161ae391461034757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b506040805180820190915260088152675a656e697468726160c01b60208201525b6040516102bc9190611c1e565b60405180910390f35b3480156102d157600080fd5b506102e56102e0366004611c8b565b6108b4565b60405190151581526020016102bc565b34801561030157600080fd5b50610315610310366004611ccc565b610920565b005b34801561032357600080fd5b506102e5610332366004611d01565b60046020526000908152604090205460ff1681565b34801561035357600080fd5b506102e5610362366004611d25565b61097e565b34801561037357600080fd5b506008545b6040519081526020016102bc565b34801561039257600080fd5b50601c546103a6906001600160a01b031681565b6040516001600160a01b0390911681526020016102bc565b3480156103ca57600080fd5b506103d3610992565b6040516102bc9190611d8b565b3480156103ec57600080fd5b506102e56103fb366004611d9e565b6109f4565b34801561040c57600080fd5b50610378610abb565b34801561042157600080fd5b50601754601854601954601a546104389392919084565b6040805194855260208501939093529183015260608201526080016102bc565b34801561046457600080fd5b50601b546103a6906001600160a01b031681565b34801561048457600080fd5b506102e5610493366004611d01565b6000546001600160a01b0391821691161490565b3480156104b357600080fd5b50604051601281526020016102bc565b3480156104cf57600080fd5b50610315610b2b565b3480156104e457600080fd5b506013546014546015546016546104389392919084565b34801561050757600080fd5b50610315610b94565b34801561051c57600080fd5b5061031561052b366004611ddf565b610bd3565b34801561053c57600080fd5b5061031561054b366004611e0b565b610c5e565b34801561055c57600080fd5b50601f546102e590600160a01b900460ff1681565b34801561057d57600080fd5b50610378600b5481565b34801561059357600080fd5b506103156105a2366004611ddf565b610c8d565b3480156105b357600080fd5b50600f54610378565b3480156105c857600080fd5b50601f546102e590600160c01b900460ff1681565b3480156105e957600080fd5b506103786105f8366004611d01565b6001600160a01b031660009081526006602052604090205490565b34801561061f57600080fd5b50610315610ce3565b34801561063457600080fd5b506102e5610643366004611d01565b60026020526000908152604090205460ff1681565b34801561066457600080fd5b50610315610673366004611e24565b610d57565b34801561068457600080fd5b50610315610693366004611d01565b610d9f565b3480156106a457600080fd5b506000546001600160a01b03166103a6565b3480156106c257600080fd5b506103156106d1366004611e0b565b610dea565b3480156106e257600080fd5b506103156106f1366004611e3f565b610e19565b34801561070257600080fd5b506040805180820190915260038152622d2a2360e91b60208201526102af565b34801561072e57600080fd5b50601d546103a6906001600160a01b031681565b34801561074e57600080fd5b50601f546103a6906001600160a01b031681565b34801561076e57600080fd5b506102e561077d366004611c8b565b610e7d565b34801561078e57600080fd5b5061031561079d366004611ddf565b610e93565b3480156107ae57600080fd5b50610378600a5481565b3480156107c457600080fd5b506103786107d3366004611e0b565b610ee9565b3480156107e457600080fd5b506103156107f3366004611e5b565b610f33565b34801561080457600080fd5b50610378610813366004611e5b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561084a57600080fd5b5061037860095481565b34801561086057600080fd5b5061031561086f366004611d01565b610f8b565b34801561088057600080fd5b5061031561088f366004611d01565b610ff1565b3480156108a057600080fd5b50601e546103a6906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061090f9086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146109535760405162461bcd60e51b815260040161094a90611e94565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60008261098a83610ee9565b119392505050565b6060600f8054806020026020016040519081016040528092919081815260200182805480156109ea57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109cc575b5050505050905090565b6001600160a01b038316600090815260076020908152604080832033845290915281205482811015610a2557600080fd5b6001600160a01b038516600090815260076020908152604080832033845290915290205460001914610aa5576001600160a01b0385166000908152600760209081526040808320338452909152902054610a80908490611eda565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b610ab08585856110db565b506001949350505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600854919291610b1c9190611eda565b610b269190611eda565b905090565b6000546001600160a01b03163314610b555760405162461bcd60e51b815260040161094a90611e94565b6000805460405147926001600160a01b039092169183156108fc02918491818181858888f19350505050158015610b90573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610bbe5760405162461bcd60e51b815260040161094a90611e94565b601f805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040161094a90611e94565b826103e8600854610c0e9190611ef1565b610c189190611f13565b600c556008548290610c2d906103e890611ef1565b610c379190611f13565b600d556008548190610c4c906103e890611ef1565b610c569190611f13565b600e55505050565b6000546001600160a01b03163314610c885760405162461bcd60e51b815260040161094a90611e94565b601255565b6000546001600160a01b03163314610cb75760405162461bcd60e51b815260040161094a90611e94565b60178390556018829055601981905580610cd18385611f32565b610cdb9190611f32565b601a55505050565b6000546001600160a01b03163314610d0d5760405162461bcd60e51b815260040161094a90611e94565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d815760405162461bcd60e51b815260040161094a90611e94565b601f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610dc95760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b03163314610e145760405162461bcd60e51b815260040161094a90611e94565b601155565b6000546001600160a01b03163314610e435760405162461bcd60e51b815260040161094a90611e94565b601f805460ff60c01b1916600160c01b841515021790556008548190610e6c906103e890611ef1565b610e769190611f13565b6020555050565b6000610e8a3384846110db565b50600192915050565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b815260040161094a90611e94565b60138390556014829055601581905580610ed78385611f32565b610ee19190611f32565b601655505050565b6000610ef3610abb565b601f546001600160a01b0316600090815260066020526040902054610f19906002611f13565b610f239084611f13565b610f2d9190611ef1565b92915050565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b815260040161094a90611e94565b601c80546001600160a01b039384166001600160a01b031991821617909155601d8054929093169116179055565b6000546001600160a01b03163314610fb55760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b031660009081526004602090815260408083208054600160ff1991821681179092556005909352922080549091169091179055565b6000546001600160a01b0316331461101b5760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b0381166110805760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161094a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316158015906110fb57506001600160a01b03821615155b61113f5760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba1031329030b2323932b9b99418149760591b604482015260640161094a565b6001600160a01b03808416600081815260046020908152604080832054948716835280832054938352600590915281205460ff9384169392831692168061119e57506001600160a01b03851660009081526005602052604090205460ff165b806111b25750601f54600160a81b900460ff165b905080156111ca576111c58686866112ca565b6112c2565b601f54600160b81b900460ff166111e057600080fd5b601f54600160a01b900460ff16156111fd576111c586868661138c565b821561120e576111c586868661148e565b81156112345761121c611551565b1561122957611229611599565b6111c5868686611699565b6001600160a01b03861660009081526002602052604090205460ff1615801561127657506001600160a01b03851660009081526002602052604090205460ff16155b61127f57600080fd5b600e54846112a2876001600160a01b031660009081526006602052604090205490565b6112ac9190611f32565b11156112b757600080fd5b6112c28686866116ff565b505050505050565b6001600160a01b0383166000908152600660205260409020546113109084906112f4908490611eda565b6001600160a01b03909116600090815260066020526040902055565b6001600160a01b03821660009081526006602052604090205461133a9083906112f4908490611f32565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137f91815260200190565b60405180910390a3505050565b6001600160a01b03821660009081526002602052604090205460ff16156113b257600080fd5b600c548111156113f85760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161094a565b606461140582605a611f13565b61140f9190611ef1565b60109081556001600160a01b0383166000818152600260205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055546114899084908490849061173d565b505050565b6001600160a01b03821660009081526002602052604090205460ff16156114b457600080fd5b600c548111156114fa5760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161094a565b6001600160a01b03821660009081526003602052604090205460ff1661153d576016546103e89061152b9083611f13565b6115359190611ef1565b601055611543565b60006010555b61148983838360105461173d565b601f54600090600160b01b900460ff161580156115775750601f54600160c01b900460ff165b8015610b26575050602080543060009081526006909252604090912054101590565b601f805460ff60b01b1916600160b01b17905530600090815260066020526040812054601654601a549192506000916115d29190611f32565b6013546017546115e29190611f32565b6115ec9084611f13565b6115f69190611ef1565b905060006116048284611eda565b90506000611613600284611ef1565b905060006116218285611eda565b905061162d8184611f32565b94504761163986611858565b60006116458247611eda565b90506000876116548584611f13565b61165e9190611ef1565b905061166a8582611991565b60006116768447611eda565b905061168181611a4d565b5050601f805460ff60b01b1916905550505050505050565b6001600160a01b03831660009081526002602052604090205460ff16156116bf57600080fd5b600d548111156116ce57600080fd5b6001600160a01b03831660009081526003602052604090205460ff1661153d57601a546103e89061152b9083611f13565b6103e8601154826117109190611f13565b61171a9190611ef1565b6010819055156117325761148983838360105461173d565b6114898383836112ca565b60006010548361174d9190611eda565b6001600160a01b03861660009081526006602052604090205490915061177a9086906112f4908690611eda565b3060008181526006602052604090205461179a91906112f4908590611f32565b6001600160a01b0384166000908152600660205260409020546117c49085906112f4908490611f32565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161180991815260200190565b60405180910390a360405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061188d5761188d611f4a565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190a9190611f60565b8160018151811061191d5761191d611f4a565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac94790611963908590600090869030904290600401611f7d565b600060405180830381600087803b15801561197d57600080fd5b505af11580156112c2573d6000803e3d6000fd5b601f805460ff60a81b1916600160a81b179055601e54601d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611a14573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a399190611fb9565b5050601f805460ff60a81b19169055505050565b601954601554600091611a5f91611f32565b601854601454919250600091611a759190611f32565b90506000611a838284611f32565b9050600081611a928587611f13565b611a9c9190611ef1565b9050600082611aab8588611f13565b611ab59190611ef1565b90508015611b6757601c546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611b0f576040519150601f19603f3d011682016040523d82523d6000602084013e611b14565b606091505b5050905080611b655760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161094a565b505b81156112c257601d546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114611bbf576040519150601f19603f3d011682016040523d82523d6000602084013e611bc4565b606091505b5050905080611c155760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161094a565b50505050505050565b600060208083528351808285015260005b81811015611c4b57858101830151858201604001528201611c2f565b81811115611c5d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c8857600080fd5b50565b60008060408385031215611c9e57600080fd5b8235611ca981611c73565b946020939093013593505050565b80358015158114611cc757600080fd5b919050565b60008060408385031215611cdf57600080fd5b8235611cea81611c73565b9150611cf860208401611cb7565b90509250929050565b600060208284031215611d1357600080fd5b8135611d1e81611c73565b9392505050565b60008060408385031215611d3857600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015611d805781516001600160a01b031687529582019590820190600101611d5b565b509495945050505050565b602081526000611d1e6020830184611d47565b600080600060608486031215611db357600080fd5b8335611dbe81611c73565b92506020840135611dce81611c73565b929592945050506040919091013590565b600080600060608486031215611df457600080fd5b505081359360208301359350604090920135919050565b600060208284031215611e1d57600080fd5b5035919050565b600060208284031215611e3657600080fd5b611d1e82611cb7565b60008060408385031215611e5257600080fd5b611ca983611cb7565b60008060408385031215611e6e57600080fd5b8235611e7981611c73565b91506020830135611e8981611c73565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015611eec57611eec611ec4565b500390565b600082611f0e57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f2d57611f2d611ec4565b500290565b60008219821115611f4557611f45611ec4565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f7257600080fd5b8151611d1e81611c73565b85815284602082015260a060408201526000611f9c60a0830186611d47565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215611fce57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212207414dbfd6925cc8bae780a2f837de22853e4d31505394625ade06051359e896664736f6c634300080d0033

Deployed Bytecode Sourcemap

3586:15351:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17654:80;;;;;;;;;;-1:-1:-1;17726:5:0;;;;;;;;;;;;-1:-1:-1;;;17726:5:0;;;;17654:80;;;;;;;:::i;:::-;;;;;;;;18074:216;;;;;;;;;;-1:-1:-1;18074:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;18074:216:0;1072:187:1;8088:130:0;;;;;;;;;;-1:-1:-1;8088:130:0;;;;;:::i;:::-;;:::i;:::-;;3755:54;;;;;;;;;;-1:-1:-1;3755:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10996:150;;;;;;;;;;-1:-1:-1;10996:150:0;;;;;:::i;:::-;;:::i;17384:88::-;;;;;;;;;;-1:-1:-1;17457:12:0;;17384:88;;;2400:25:1;;;2388:2;2373:18;17384:88:0;2254:177:1;5315:77:0;;;;;;;;;;-1:-1:-1;5315:77:0;;;;-1:-1:-1;;;;;5315:77:0;;;;;;-1:-1:-1;;;;;2600:32:1;;;2582:51;;2570:2;2555:18;5315:77:0;2436:203:1;10606:99:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18471:463::-;;;;;;;;;;-1:-1:-1;18471:463:0;;;;;:::i;:::-;;:::i;10462:136::-;;;;;;;;;;;;;:::i;5001:22::-;;;;;;;;;;-1:-1:-1;5001:22:0;;;;;;;;;;;;;;;;;;;4068:25:1;;;4124:2;4109:18;;4102:34;;;;4152:18;;;4145:34;4210:2;4195:18;;4188:34;4055:3;4040:19;5001:22:0;3837:391:1;5056:82:0;;;;;;;;;;-1:-1:-1;5056:82:0;;;;-1:-1:-1;;;;;5056:82:0;;;1527:103;;;;;;;;;;-1:-1:-1;1527:103:0;;;;;:::i;:::-;1582:4;1617:5;-1:-1:-1;;;;;1606:16:0;;;1617:5;;1606:16;;1527:103;17478:80;;;;;;;;;;-1:-1:-1;17478:80:0;;4140:2;4375:36:1;;4363:2;4348:18;17478:80:0;4233:184:1;10171:171:0;;;;;;;;;;;;;:::i;4974:20::-;;;;;;;;;;-1:-1:-1;4974:20:0;;;;;;;;;;;;;;;7960:120;;;;;;;;;;;;;:::i;7616:336::-;;;;;;;;;;-1:-1:-1;7616:336:0;;;;;:::i;:::-;;:::i;8440:111::-;;;;;;;;;;-1:-1:-1;8440:111:0;;;;;:::i;:::-;;:::i;5573:33::-;;;;;;;;;;-1:-1:-1;5573:33:0;;;;-1:-1:-1;;;5573:33:0;;;;;;4337:34;;;;;;;;;;;;;;;;9044:360;;;;;;;;;;-1:-1:-1;9044:360:0;;;;;:::i;:::-;;:::i;10713:103::-;;;;;;;;;;-1:-1:-1;10791:10:0;:17;10713:103;;5790:30;;;;;;;;;;-1:-1:-1;5790:30:0;;;;-1:-1:-1;;;5790:30:0;;;;;;17824:104;;;;;;;;;;-1:-1:-1;17824:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;17908:18:0;17890:7;17908:18;;;:9;:18;;;;;;;17824:104;1888:146;;;;;;;;;;;;;:::i;3652:44::-;;;;;;;;;;-1:-1:-1;3652:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10060:103;;;;;;;;;;-1:-1:-1;10060:103:0;;;;;:::i;:::-;;:::i;9787:105::-;;;;;;;;;;-1:-1:-1;9787:105:0;;;;;:::i;:::-;;:::i;17740:78::-;;;;;;;;;;-1:-1:-1;17792:7:0;17810:5;-1:-1:-1;;;;;17810:5:0;17740:78;;9475:119;;;;;;;;;;-1:-1:-1;9475:119:0;;;;;:::i;:::-;;:::i;8226:206::-;;;;;;;;;;-1:-1:-1;8226:206:0;;;;;:::i;:::-;;:::i;17564:84::-;;;;;;;;;;-1:-1:-1;17638:7:0;;;;;;;;;;;;-1:-1:-1;;;17638:7:0;;;;17564:84;;5399:77;;;;;;;;;;-1:-1:-1;5399:77:0;;;;-1:-1:-1;;;;;5399:77:0;;;5516:19;;;;;;;;;;-1:-1:-1;5516:19:0;;;;-1:-1:-1;;;;;5516:19:0;;;18298:165;;;;;;;;;;-1:-1:-1;18298:165:0;;;;;:::i;:::-;;:::i;8621:352::-;;;;;;;;;;-1:-1:-1;8621:352:0;;;;;:::i;:::-;;:::i;4298:32::-;;;;;;;;;;;;;;;;10824:164;;;;;;;;;;-1:-1:-1;10824:164:0;;;;;:::i;:::-;;:::i;9602:177::-;;;;;;;;;;-1:-1:-1;9602:177:0;;;;;:::i;:::-;;:::i;17934:132::-;;;;;;;;;;-1:-1:-1;17934:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;18036:19:0;;;18018:7;18036:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17934:132;4260:31;;;;;;;;;;;;;;;;9900:152;;;;;;;;;;-1:-1:-1;9900:152:0;;;;;:::i;:::-;;:::i;1638:242::-;;;;;;;;;;-1:-1:-1;1638:242:0;;;;;:::i;:::-;;:::i;5485:24::-;;;;;;;;;;-1:-1:-1;5485:24:0;;;;-1:-1:-1;;;;;5485:24:0;;;18074:216;18178:10;18149:4;18166:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18166:32:0;;;;;;;;;;:41;;;18223:37;18149:4;;18166:32;;18223:37;;;;18201:6;2400:25:1;;2388:2;2373:18;;2254:177;18223:37:0;;;;;;;;-1:-1:-1;18278:4:0;18074:216;;;;:::o;8088:130::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8181:19:0;;;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;8181:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8088:130::o;10996:150::-;11076:4;11132:6;11100:29;11120:8;11100:19;:29::i;:::-;:38;;10996:150;-1:-1:-1;;;10996:150:0:o;10606:99::-;10652:16;10687:10;10680:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10680:17:0;;;;;;;;;;;;;;;;;;;;;;;10606:99;:::o;18471:463::-;-1:-1:-1;;;;;18607:19:0;;18569:4;18607:19;;;:11;:19;;;;;;;;18627:10;18607:31;;;;;;;;18657:20;;;;18649:29;;;;;;-1:-1:-1;;;;;18703:19:0;;;;;;:11;:19;;;;;;;;18723:10;18703:31;;;;;;;;-1:-1:-1;;18703:52:0;18699:159;;-1:-1:-1;;;;;18806:19:0;;;;;;:11;:19;;;;;;;;18826:10;18806:31;;;;;;;;:40;;18840:6;;18806:40;:::i;:::-;-1:-1:-1;;;;;18772:19:0;;;;;;:11;:19;;;;;;;;18792:10;18772:31;;;;;;;:74;18699:159;18868:36;18878:6;18886:9;18897:6;18868:9;:36::i;:::-;-1:-1:-1;18922:4:0;;18471:463;-1:-1:-1;;;;18471:463:0:o;10462:136::-;17908:9;:18;;;;5183:42;10515:7;17908:18;;;;;10542:12;;10515:7;;17908:18;10542:30;;17908:18;10542:30;:::i;:::-;:48;;;;:::i;:::-;10535:55;;10462:136;:::o;10171:171::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;10230:26:::1;10299:5:::0;;10291:43:::1;::::0;10259:21:::1;::::0;-1:-1:-1;;;;;10299:5:0;;::::1;::::0;10291:43;::::1;;;::::0;10259:21;;10291:43;10230:26;10291:43;10259:21;10299:5;10291:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10219:123;10171:171::o:0;7960:120::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;8037:28:::1;:35:::0;;-1:-1:-1;;;;8037:35:0::1;-1:-1:-1::0;;;8037:35:0::1;::::0;;7960:120::o;7616:336::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;7791:17:::1;7784:4;7770:12;;:18;;;;:::i;:::-;:38;;;;:::i;:::-;7755:12;:53:::0;7835:12:::1;::::0;7856:18;;7835::::1;::::0;7849:4:::1;::::0;7835:18:::1;:::i;:::-;:39;;;;:::i;:::-;7819:13;:55:::0;7903:12:::1;::::0;7924:20;;7903:18:::1;::::0;7917:4:::1;::::0;7903:18:::1;:::i;:::-;:41;;;;:::i;:::-;7885:15;:59:::0;-1:-1:-1;;;7616:336:0:o;8440:111::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;8519:15:::1;:24:::0;8440:111::o;9044:360::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;9173:7:::1;:36:::0;;;9220:20;:36;;;9267:20;:36;;;9290:13;9330:43:::1;9243:13:::0;9196;9330:43:::1;:::i;:::-;:66;;;;:::i;:::-;9314:13:::0;:82;-1:-1:-1;;;9044:360:0:o;1888:146::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;1994:1:::1;1979:5:::0;;1958:39:::1;::::0;-1:-1:-1;;;;;1979:5:0;;::::1;::::0;1958:39:::1;::::0;1994:1;;1958:39:::1;2024:1;2008:18:::0;;-1:-1:-1;;;;;;2008:18:0::1;::::0;;1888:146::o;10060:103::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;10133:14:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;10133:22:0::1;-1:-1:-1::0;;;;10133:22:0;;::::1;::::0;;;::::1;::::0;;10060:103::o;9787:105::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9856:20:0::1;9879:5;9856:20:::0;;;:12:::1;:20;::::0;;;;:28;;-1:-1:-1;;9856:28:0::1;::::0;;9787:105::o;9475:119::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;9560:11:::1;:26:::0;9475:119::o;8226:206::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;8334:11:::1;:22:::0;;-1:-1:-1;;;;8334:22:0::1;-1:-1:-1::0;;;8334:22:0;::::1;;;;::::0;;8383:12:::1;::::0;8405:19;;8383::::1;::::0;8398:4:::1;::::0;8383:19:::1;:::i;:::-;:41;;;;:::i;:::-;8367:13;:57:::0;-1:-1:-1;;8226:206:0:o;18298:165::-;18376:4;18393:40;18403:10;18415:9;18426:6;18393:9;:40::i;:::-;-1:-1:-1;18451:4:0;18298:165;;;;:::o;8621:352::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;8749:6:::1;:35:::0;;;8795:19;:35;;;8841:19;:35;;;8863:13;8902:41:::1;8817:13:::0;8771;8902:41:::1;:::i;:::-;:63;;;;:::i;:::-;8887:12:::0;:78;-1:-1:-1;;;8621:352:0:o;10824:164::-;10892:7;10957:22;:20;:22::i;:::-;10941:4;;-1:-1:-1;;;;;10941:4:0;17890:7;17908:18;;;:9;:18;;;;;;10931:21;;10950:1;10931:21;:::i;:::-;10919:34;;:8;:34;:::i;:::-;:61;;;;:::i;:::-;10912:68;10824:164;-1:-1:-1;;10824:164:0:o;9602:177::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;9700:17:::1;:30:::0;;-1:-1:-1;;;;;9700:30:0;;::::1;-1:-1:-1::0;;;;;;9700:30:0;;::::1;;::::0;;;9741:17:::1;:30:::0;;;;;::::1;::::0;::::1;;::::0;;9602:177::o;9900:152::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9973:30:0::1;;::::0;;;:22:::1;:30;::::0;;;;;;;:35;;10004:4:::1;-1:-1:-1::0;;9973:35:0;;::::1;::::0;::::1;::::0;;;10019:12:::1;:20:::0;;;;;:25;;;;::::1;::::0;;::::1;::::0;;9900:152::o;1638:242::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1727:22:0;::::1;1719:73;;;::::0;-1:-1:-1;;;1719:73:0;;7328:2:1;1719:73:0::1;::::0;::::1;7310:21:1::0;7367:2;7347:18;;;7340:30;7406:34;7386:18;;;7379:62;-1:-1:-1;;;7457:18:1;;;7450:36;7503:19;;1719:73:0::1;7126:402:1::0;1719:73:0::1;1829:5;::::0;;1808:37:::1;::::0;-1:-1:-1;;;;;1808:37:0;;::::1;::::0;1829:5;::::1;::::0;1808:37:::1;::::0;::::1;1856:5;:16:::0;;-1:-1:-1;;;;;;1856:16:0::1;-1:-1:-1::0;;;;;1856:16:0;;;::::1;::::0;;;::::1;::::0;;1638:242::o;11270:1168::-;-1:-1:-1;;;;;11365:18:0;;;;;;:41;;-1:-1:-1;;;;;;11385:21:0;;;;11365:41;11357:74;;;;-1:-1:-1;;;11357:74:0;;7735:2:1;11357:74:0;;;7717:21:1;7774:2;7754:18;;;7747:30;-1:-1:-1;;;7793:18:1;;;7786:51;7854:18;;11357:74:0;7533:345:1;11357:74:0;-1:-1:-1;;;;;11453:30:0;;;11442:10;11453:30;;;:22;:30;;;;;;;;;11506:33;;;;;;;;;11566:20;;;:12;:20;;;;;;11453:30;;;;;11506:33;;;;11566:20;;:45;;-1:-1:-1;;;;;;11588:23:0;;;;;;:12;:23;;;;;;;;11566:45;:56;;;-1:-1:-1;11613:9:0;;-1:-1:-1;;;11613:9:0;;;;11566:56;11550:72;;11638:10;11635:796;;;11649:42;11667:6;11674:9;11684:6;11649:17;:42::i;:::-;11635:796;;;11717:28;;-1:-1:-1;;;11717:28:0;;;;11709:37;;;;;;11799:14;;-1:-1:-1;;;11799:14:0;;;;11796:624;;;11814:39;11829:6;11836:9;11846:6;11814:14;:39::i;11796:624::-;11903:5;11900:520;;;11909:35;11920:6;11927:9;11937:6;11909:10;:35::i;11900:520::-;11995:6;11992:428;;;12061:16;:14;:16::i;:::-;12057:35;;;12080:10;:8;:10::i;:::-;12110:36;12122:6;12129:9;12139:6;12110:11;:36::i;11992:428::-;-1:-1:-1;;;;;12229:20:0;;;;;;:12;:20;;;;;;;;12228:21;:47;;;;-1:-1:-1;;;;;;12252:23:0;;;;;;:12;:23;;;;;;;;12251:24;12228:47;12220:56;;;;;;12332:15;;12324:6;12303:20;12313:9;-1:-1:-1;;;;;17908:18:0;17890:7;17908:18;;;:9;:18;;;;;;;17824:104;12303:20;:27;;;;:::i;:::-;:44;;12295:53;;;;;;12367:37;12380:6;12387:9;12397:6;12367:12;:37::i;:::-;11346:1092;;;11270:1168;;;:::o;13842:263::-;-1:-1:-1;;;;;13959:17:0;;;;;;:9;:17;;;;;;13937:47;;13952:6;;13959:24;;13977:6;;13959:24;:::i;:::-;-1:-1:-1;;;;;14664:18:0;;;;;;;:9;:18;;;;;:31;14585:118;13937:47;-1:-1:-1;;;;;14020:20:0;;;;;;:9;:20;;;;;;13995:53;;14010:9;;14020:27;;14041:6;;14020:27;:::i;13995:53::-;14080:9;-1:-1:-1;;;;;14064:33:0;14073:6;-1:-1:-1;;;;;14064:33:0;;14090:6;14064:33;;;;2400:25:1;;2388:2;2373:18;;2254:177;14064:33:0;;;;;;;;13842:263;;;:::o;12446:378::-;-1:-1:-1;;;;;12547:23:0;;;;;;:12;:23;;;;;;;;12546:24;12538:33;;;;;;12600:12;;12590:6;:22;;12582:52;;;;-1:-1:-1;;;12582:52:0;;8085:2:1;12582:52:0;;;8067:21:1;8124:2;8104:18;;;8097:30;-1:-1:-1;;;8143:18:1;;;8136:47;8200:18;;12582:52:0;7883:341:1;12582:52:0;12666:3;12656:9;:6;12663:2;12656:9;:::i;:::-;:13;;;;:::i;:::-;12645:8;:24;;;-1:-1:-1;;;;;12680:23:0;;;;;;:12;:23;;;;;:28;;-1:-1:-1;;12680:28:0;12704:4;12680:28;;;;;;12719:10;:35;;;;;;;;;;;;;;-1:-1:-1;;;;;;12719:35:0;;;;;;12807:8;12765:51;;12783:6;;12693:9;;12800:6;;12765:17;:51::i;:::-;12446:378;;;:::o;12832:368::-;-1:-1:-1;;;;;12929:23:0;;;;;;:12;:23;;;;;;;;12928:24;12920:33;;;;;;12982:12;;12972:6;:22;;12964:52;;;;-1:-1:-1;;;12964:52:0;;8085:2:1;12964:52:0;;;8067:21:1;8124:2;8104:18;;;8097:30;-1:-1:-1;;;8143:18:1;;;8136:47;8200:18;;12964:52:0;7883:341:1;12964:52:0;-1:-1:-1;;;;;13031:23:0;;;;;;:12;:23;;;;;;;;13027:103;;13084:12;;13097:4;;13077:19;;:6;:19;:::i;:::-;:24;;;;:::i;:::-;13066:8;:35;13027:103;;;13129:1;13118:8;:12;13027:103;13141:51;13159:6;13166:9;13176:6;13183:8;;13141:17;:51::i;14711:186::-;14797:6;;14759:4;;-1:-1:-1;;;14797:6:0;;;;14796:7;:35;;;;-1:-1:-1;14820:11:0;;-1:-1:-1;;;14820:11:0;;;;14796:35;:93;;;;-1:-1:-1;;14876:13:0;;;14866:4;14848:24;;;;:9;:24;;;;;;;;:41;;;14711:186::o;14908:728::-;5922:6;:13;;-1:-1:-1;;;;5922:13:0;-1:-1:-1;;;5922:13:0;;;14991:4:::1;-1:-1:-1::0;17908:18:0;;;:9;:18;;;;;;15101:12;;15085:13;;14956:41;;-1:-1:-1;15010:21:0::1;::::0;15085:28:::1;::::0;15101:12;15085:28:::1;:::i;:::-;15063:6;:19:::0;15040:7:::1;:20:::0;:42:::1;::::0;15063:19;15040:42:::1;:::i;:::-;15032:51;::::0;:6;:51:::1;:::i;:::-;:82;;;;:::i;:::-;15010:104:::0;-1:-1:-1;15125:18:0::1;15144:20;15010:104:::0;15144:6;:20:::1;:::i;:::-;15125:39:::0;-1:-1:-1;15175:16:0::1;15192:15;15206:1;15192:13:::0;:15:::1;:::i;:::-;15175:32:::0;-1:-1:-1;15218:19:0::1;15238:22;15175:32:::0;15238:13;:22:::1;:::i;:::-;15218:42:::0;-1:-1:-1;15278:22:0::1;15218:42:::0;15278:10;:22:::1;:::i;:::-;15271:29:::0;-1:-1:-1;15326:21:0::1;15358:25;15271:29:::0;15358:17:::1;:25::i;:::-;15394:14;15409:28;15431:6:::0;15409:21:::1;:28;:::i;:::-;15394:43:::0;-1:-1:-1;15448:13:0::1;15483:6:::0;15463:18:::1;15470:11:::0;15394:43;15463:18:::1;:::i;:::-;15462:27;;;;:::i;:::-;15448:41;;15500:29;15514:8;15523:5;15500:13;:29::i;:::-;15540:20;15561:28;15583:6:::0;15561:21:::1;:28;:::i;:::-;15540:49;;15600:28;15615:12;15600:14;:28::i;:::-;-1:-1:-1::0;;5958:6:0;:14;;-1:-1:-1;;;;5958:14:0;;;-1:-1:-1;;;;;;;14908:728:0:o;13206:344::-;-1:-1:-1;;;;;13304:20:0;;;;;;:12;:20;;;;;;;;13303:21;13295:30;;;;;;13354:13;;13344:6;:23;;13336:32;;;;;;-1:-1:-1;;;;;13383:20:0;;;;;;:12;:20;;;;;;;;13379:101;;13433:13;;13447:4;;13426:20;;:6;:20;:::i;13558:276::-;13680:4;13668:11;;13659:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;13648:8;:36;;;13699:12;13695:132;;13714:51;13732:6;13739:9;13749:6;13756:8;;13714:17;:51::i;13695:132::-;13783:42;13801:6;13808:9;13818:6;13783:17;:42::i;14113:464::-;14226:17;14253:8;;14246:6;:15;;;;:::i;:::-;-1:-1:-1;;;;;14294:17:0;;;;;;:9;:17;;;;;;14226:35;;-1:-1:-1;14272:47:0;;14287:6;;14294:24;;14312:6;;14294:24;:::i;14272:47::-;14353:4;14359:24;;;;:9;:24;;;;;;14330:64;;14353:4;14359:34;;14384:9;;14359:34;:::i;14330:64::-;-1:-1:-1;;;;;14430:20:0;;;;;;:9;:20;;;;;;14405:56;;14420:9;;14430:30;;14451:9;;14430:30;:::i;14405:56::-;14493:9;-1:-1:-1;;;;;14477:36:0;14486:6;-1:-1:-1;;;;;14477:36:0;;14503:9;14477:36;;;;2400:25:1;;2388:2;2373:18;;2254:177;14477:36:0;;;;;;;;14529:40;;2400:25:1;;;14553:4:0;;-1:-1:-1;;;;;14529:40:0;;;;;2388:2:1;2373:18;14529:40:0;;;;;;;14215:362;14113:464;;;;:::o;16597:369::-;16681:16;;;16695:1;16681:16;;;;;;;;16659:21;;16681:16;;;;;;;;;;-1:-1:-1;16681:16:0;16659:38;;16726:4;16708;16713:1;16708:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16708:23:0;;;:7;;;;;;;;;;:23;;;;16752:6;;:13;;;-1:-1:-1;;;16752:13:0;;;;:6;;;;;:11;;:13;;;;;16708:7;;16752:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16742:4;16747:1;16742:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16742:23:0;;;:7;;;;;;;;;:23;16776:6;;:182;;-1:-1:-1;;;16776:182:0;;:6;;;:57;;:182;;16848:6;;16776;;16885:4;;16912;;16932:15;;16776:182;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16974:341;17056:9;:14;;-1:-1:-1;;;;17056:14:0;-1:-1:-1;;;17056:14:0;;;17081:6;;17223:17;;17081:200;;-1:-1:-1;;;17081:200:0;;17144:4;17081:200;;;9677:34:1;9727:18;;;9720:34;;;-1:-1:-1;9770:18:1;;;9763:34;;;9813:18;;;9806:34;-1:-1:-1;;;;;17223:17:0;;;9856:19:1;;;9849:44;17255:15:0;9909:19:1;;;9902:35;17081:6:0;;;:22;;17111:9;;9611:19:1;;17081:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;17292:9:0;:15;;-1:-1:-1;;;;17292:15:0;;;-1:-1:-1;;;16974:341:0:o;15644:945::-;15755:20;;15733:19;;15709:20;;15733:42;;;:::i;:::-;15833:20;;15811:19;;15709:67;;-1:-1:-1;15787:20:0;;15811:42;;15833:20;15811:42;:::i;:::-;15787:67;-1:-1:-1;15865:16:0;15885:27;15787:67;15885:12;:27;:::i;:::-;15865:48;-1:-1:-1;15926:26:0;15865:48;15955:29;15971:12;15955;:29;:::i;:::-;:42;;;;:::i;:::-;15926:71;-1:-1:-1;16008:26:0;16070:8;16037:29;16053:12;16037;:29;:::i;:::-;:42;;;;:::i;:::-;16008:71;-1:-1:-1;16095:22:0;;16092:235;;16188:17;;16180:74;;16130:21;;-1:-1:-1;;;;;16188:17:0;;16244:5;;16219:18;;16130:21;16180:74;16130:21;16180:74;16219:18;16188:17;16244:5;16180:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16129:125;;;16273:16;16265:59;;;;-1:-1:-1;;;16265:59:0;;10671:2:1;16265:59:0;;;10653:21:1;10710:2;10690:18;;;10683:30;10749:32;10729:18;;;10722:60;10799:18;;16265:59:0;10469:354:1;16265:59:0;16118:209;16092:235;16350:22;;16347:235;;16443:17;;16435:74;;16385:21;;-1:-1:-1;;;;;16443:17:0;;16499:5;;16474:18;;16385:21;16435:74;16385:21;16435:74;16474:18;16443:17;16499:5;16435:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16384:125;;;16528:16;16520:59;;;;-1:-1:-1;;;16520:59:0;;10671:2:1;16520:59:0;;;10653:21:1;10710:2;10690:18;;;10683:30;10749:32;10729:18;;;10722:60;10799:18;;16520:59:0;10469:354:1;16520:59:0;16373:209;15698:891;;;;;15644:945;:::o;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;671:70;616:131;:::o;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;1264:160::-;1329:20;;1385:13;;1378:21;1368:32;;1358:60;;1414:1;1411;1404:12;1358:60;1264:160;;;:::o;1429:315::-;1494:6;1502;1555:2;1543:9;1534:7;1530:23;1526:32;1523:52;;;1571:1;1568;1561:12;1523:52;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;-1:-1:-1;1703:35:1;1734:2;1719:18;;1703:35;:::i;:::-;1693:45;;1429:315;;;;;:::o;1749:247::-;1808:6;1861:2;1849:9;1840:7;1836:23;1832:32;1829:52;;;1877:1;1874;1867:12;1829:52;1916:9;1903:23;1935:31;1960:5;1935:31;:::i;:::-;1985:5;1749:247;-1:-1:-1;;;1749:247:1:o;2001:248::-;2069:6;2077;2130:2;2118:9;2109:7;2105:23;2101:32;2098:52;;;2146:1;2143;2136:12;2098:52;-1:-1:-1;;2169:23:1;;;2239:2;2224:18;;;2211:32;;-1:-1:-1;2001:248:1:o;2644:461::-;2697:3;2735:5;2729:12;2762:6;2757:3;2750:19;2788:4;2817:2;2812:3;2808:12;2801:19;;2854:2;2847:5;2843:14;2875:1;2885:195;2899:6;2896:1;2893:13;2885:195;;;2964:13;;-1:-1:-1;;;;;2960:39:1;2948:52;;3020:12;;;;3055:15;;;;2996:1;2914:9;2885:195;;;-1:-1:-1;3096:3:1;;2644:461;-1:-1:-1;;;;;2644:461:1:o;3110:261::-;3289:2;3278:9;3271:21;3252:4;3309:56;3361:2;3350:9;3346:18;3338:6;3309:56;:::i;3376:456::-;3453:6;3461;3469;3522:2;3510:9;3501:7;3497:23;3493:32;3490:52;;;3538:1;3535;3528:12;3490:52;3577:9;3564:23;3596:31;3621:5;3596:31;:::i;:::-;3646:5;-1:-1:-1;3703:2:1;3688:18;;3675:32;3716:33;3675:32;3716:33;:::i;:::-;3376:456;;3768:7;;-1:-1:-1;;;3822:2:1;3807:18;;;;3794:32;;3376:456::o;4422:316::-;4499:6;4507;4515;4568:2;4556:9;4547:7;4543:23;4539:32;4536:52;;;4584:1;4581;4574:12;4536:52;-1:-1:-1;;4607:23:1;;;4677:2;4662:18;;4649:32;;-1:-1:-1;4728:2:1;4713:18;;;4700:32;;4422:316;-1:-1:-1;4422:316:1:o;4743:180::-;4802:6;4855:2;4843:9;4834:7;4830:23;4826:32;4823:52;;;4871:1;4868;4861:12;4823:52;-1:-1:-1;4894:23:1;;4743:180;-1:-1:-1;4743:180:1:o;4928:::-;4984:6;5037:2;5025:9;5016:7;5012:23;5008:32;5005:52;;;5053:1;5050;5043:12;5005:52;5076:26;5092:9;5076:26;:::i;5113:248::-;5178:6;5186;5239:2;5227:9;5218:7;5214:23;5210:32;5207:52;;;5255:1;5252;5245:12;5207:52;5278:26;5294:9;5278:26;:::i;5366:388::-;5434:6;5442;5495:2;5483:9;5474:7;5470:23;5466:32;5463:52;;;5511:1;5508;5501:12;5463:52;5550:9;5537:23;5569:31;5594:5;5569:31;:::i;:::-;5619:5;-1:-1:-1;5676:2:1;5661:18;;5648:32;5689:33;5648:32;5689:33;:::i;:::-;5741:7;5731:17;;;5366:388;;;;;:::o;5985:346::-;6187:2;6169:21;;;6226:2;6206:18;;;6199:30;-1:-1:-1;;;6260:2:1;6245:18;;6238:52;6322:2;6307:18;;5985:346::o;6336:127::-;6397:10;6392:3;6388:20;6385:1;6378:31;6428:4;6425:1;6418:15;6452:4;6449:1;6442:15;6468:125;6508:4;6536:1;6533;6530:8;6527:34;;;6541:18;;:::i;:::-;-1:-1:-1;6578:9:1;;6468:125::o;6598:217::-;6638:1;6664;6654:132;;6708:10;6703:3;6699:20;6696:1;6689:31;6743:4;6740:1;6733:15;6771:4;6768:1;6761:15;6654:132;-1:-1:-1;6800:9:1;;6598:217::o;6820:168::-;6860:7;6926:1;6922;6918:6;6914:14;6911:1;6908:21;6903:1;6896:9;6889:17;6885:45;6882:71;;;6933:18;;:::i;:::-;-1:-1:-1;6973:9:1;;6820:168::o;6993:128::-;7033:3;7064:1;7060:6;7057:1;7054:13;7051:39;;;7070:18;;:::i;:::-;-1:-1:-1;7106:9:1;;6993:128::o;8361:127::-;8422:10;8417:3;8413:20;8410:1;8403:31;8453:4;8450:1;8443:15;8477:4;8474:1;8467:15;8493:251;8563:6;8616:2;8604:9;8595:7;8591:23;8587:32;8584:52;;;8632:1;8629;8622:12;8584:52;8664:9;8658:16;8683:31;8708:5;8683:31;:::i;8749:582::-;9048:6;9037:9;9030:25;9091:6;9086:2;9075:9;9071:18;9064:34;9134:3;9129:2;9118:9;9114:18;9107:31;9011:4;9155:57;9207:3;9196:9;9192:19;9184:6;9155:57;:::i;:::-;-1:-1:-1;;;;;9248:32:1;;;;9243:2;9228:18;;9221:60;-1:-1:-1;9312:3:1;9297:19;9290:35;9147:65;8749:582;-1:-1:-1;;;8749:582:1:o;9948:306::-;10036:6;10044;10052;10105:2;10093:9;10084:7;10080:23;10076:32;10073:52;;;10121:1;10118;10111:12;10073:52;10150:9;10144:16;10134:26;;10200:2;10189:9;10185:18;10179:25;10169:35;;10244:2;10233:9;10229:18;10223:25;10213:35;;9948:306;;;;;:::o

Swarm Source

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