ETH Price: $3,616.80 (+5.70%)

Token

Clash Of Realms (CORS)
 

Overview

Max Total Supply

10,000,000,000 CORS

Holders

133

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,999,931.344282553 CORS

Value
$0.00
0x86e5dabf6478bd9a58ca6ce3bb5d6ad1b3819c0f
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:
ClashOfRealms

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-18
*/

/*

Clash Of Realms (CORS) 

Linktree :
https://linktr.ee/ClashofRealms

Website: 
clashofrealms.net

*/

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract ClashOfRealms is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Clash Of Realms";
    string private constant _symbol = "CORS";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _marketingFeeOnBuy = 800; //100 = 1%
    uint256 private _liquidityFeeOnBuy = 100; //100 = 1%
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _marketingFeeOnSell = 800; //100 = 1%
    uint256 private _liquidityFeeOnSell = 100; //100 = 1%
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _marketingFeeOnSell.add(_liquidityFeeOnSell).div(100);
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    
    address payable private _marketingAddress = payable(0xcEBd8ea4975C56fCee8683b45B3c33F30E093521);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = _tTotal.mul(30).div(10000); //0.30%
    uint256 public _maxWalletSize = _tTotal.mul(200).div(10000); //2%
    uint256 public _swapTokensAtAmount = _tTotal.mul(10).div(10000); //0.1%

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        
        preTrader[owner()] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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 from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount) {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapDistributeAndLiquify(contractTokenBalance);
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _marketingFeeOnBuy.add(_liquidityFeeOnBuy).div(100);
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _marketingFeeOnSell.add(_liquidityFeeOnSell).div(100);
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    
    function swapDistributeAndLiquify(uint256 tokens) private {

        uint256 totalTokensFee = _marketingFeeOnSell.add(_liquidityFeeOnSell);
        uint256 halfLPFee = _liquidityFeeOnSell.div(2);

        uint256 tokensToSwapToETH = tokens.mul(_marketingFeeOnSell.add(halfLPFee)).div(totalTokensFee);

        uint256 liquidityTokens = tokens.mul(halfLPFee).div(totalTokensFee);

        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(tokensToSwapToETH);
        uint256 newETHBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethMarketingShare = newETHBalance.mul(_marketingFeeOnSell).div(totalTokensFee.sub(halfLPFee));
        uint256 ethLPShare = newETHBalance.sub(ethMarketingShare);
        
        sendETHToFee(ethMarketingShare);
        addLiquidity(liquidityTokens, ethLPShare);
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _marketingAddress || _msgSender() == owner());
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _marketingAddress || _msgSender() == owner());
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 marketingFeeOnBuy, uint256 marketingFeeOnSell, uint256 liquidityFeeOnBuy, uint256 liquidityFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        
        _marketingFeeOnBuy = marketingFeeOnBuy;
        _marketingFeeOnSell = marketingFeeOnSell;
        
        _liquidityFeeOnBuy = liquidityFeeOnBuy;
        _liquidityFeeOnSell = liquidityFeeOnSell;
    
    }
    
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set marketing wallet
    function setMarketingWallet(address payable marketingWallet) public onlyOwner {
        _marketingAddress = marketingWallet;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set MAx transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","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":"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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"marketingFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"marketingFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"liquidityFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"liquidityFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a678ac7230489e8000060001962000688565b62000028906000196200066e565b600555600060075561032060085560646009556000600a55610320600b556064600c55600a54600d5562000089606462000075600c54600b546200041a60201b62000cf21790919060201c565b6200048a60201b62000d581790919060201c565b600e819055600d54600f55601055601380546001600160a01b03191673cebd8ea4975c56fcee8683b45b3c33f30e0935211790556015805461ffff60a81b1916600160b01b179055620000fc61271062000075678ac7230489e80000601e62000d9a620004d4602090811b91909117901c565b601655620001296127106200007560c8678ac7230489e80000620004d460201b62000d9a1790919060201c565b6017556200015661271062000075600a678ac7230489e80000620004d460201b62000d9a1790919060201c565b6018553480156200016657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506005543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200021f57600080fd5b505afa15801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a919062000597565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a357600080fd5b505afa158015620002b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002de919062000597565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200032757600080fd5b505af11580156200033c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000362919062000597565b601580546001600160a01b0319166001600160a01b039283161790556000805482168152600460209081526040808320805460ff199081166001908117909255308552828520805482168317905560135486168552828520805482168317905584549095168452601283528184208054909516179093559151678ac7230489e80000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620006cb565b6000806200042983856200061a565b905083811015620004815760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b60006200048183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200055b60201b60201c565b600082620004e55750600062000484565b6000620004f383856200064c565b90508262000502858362000635565b14620004815760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840162000478565b600081836200057f5760405162461bcd60e51b8152600401620004789190620005c2565b5060006200058e848662000635565b95945050505050565b600060208284031215620005aa57600080fd5b81516001600160a01b03811681146200048157600080fd5b600060208083528351808285015260005b81811015620005f157858101830151858201604001528201620005d3565b8181111562000604576000604083870101525b50601f01601f1916929092016040019392505050565b600082198211156200063057620006306200069f565b500190565b600082620006475762000647620006b5565b500490565b60008160001904831182151516156200066957620006696200069f565b500290565b6000828210156200068357620006836200069f565b500390565b6000826200069a576200069a620006b5565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6121e880620006db6000396000f3fe6080604052600436106101e65760003560e01c806374010ece11610102578063bd9a3b6d11610095578063c492f04611610064578063c492f046146105b3578063dd62ed3e146105d3578063ea1644d514610619578063f2fde38b1461063957600080fd5b8063bd9a3b6d1461051e578063bdd795ef1461053e578063bfd792841461056e578063c3c8cd801461059e57600080fd5b80638f9a55c0116100d15780638f9a55c01461049b57806395d89b41146104b157806398a5c315146104de578063a9059cbb146104fe57600080fd5b806374010ece146104275780637d1db4a5146104475780638da5cb5b1461045d5780638f70ccf71461047b57600080fd5b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103bd5780636fc3eaec146103dd57806370a08231146103f2578063715018a61461041257600080fd5b8063313ce5671461034157806349bd5a5e1461035d5780635d098b381461037d5780636b9990531461039d57600080fd5b806318160ddd116101b657806318160ddd146102c657806323b872dd146102eb5780632f9c45691461030b5780632fd689e31461032b57600080fd5b8062b8cf2a146101f257806306fdde0314610214578063095ea7b31461025e5780631694505e1461028e57600080fd5b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021261020d366004611e3c565b610659565b005b34801561022057600080fd5b5060408051808201909152600f81526e436c617368204f66205265616c6d7360881b60208201525b6040516102559190611fad565b60405180910390f35b34801561026a57600080fd5b5061027e610279366004611d8c565b6106f8565b6040519015158152602001610255565b34801561029a57600080fd5b506014546102ae906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b3480156102d257600080fd5b50678ac7230489e800005b604051908152602001610255565b3480156102f757600080fd5b5061027e610306366004611d16565b61070f565b34801561031757600080fd5b50610212610326366004611d57565b610778565b34801561033757600080fd5b506102dd60185481565b34801561034d57600080fd5b5060405160098152602001610255565b34801561036957600080fd5b506015546102ae906001600160a01b031681565b34801561038957600080fd5b50610212610398366004611ca3565b61083c565b3480156103a957600080fd5b506102126103b8366004611ca3565b610888565b3480156103c957600080fd5b506102126103d8366004611f08565b6108d3565b3480156103e957600080fd5b5061021261091b565b3480156103fe57600080fd5b506102dd61040d366004611ca3565b61095d565b34801561041e57600080fd5b5061021261097f565b34801561043357600080fd5b50610212610442366004611f23565b6109f3565b34801561045357600080fd5b506102dd60165481565b34801561046957600080fd5b506000546001600160a01b03166102ae565b34801561048757600080fd5b50610212610496366004611f08565b610a22565b3480156104a757600080fd5b506102dd60175481565b3480156104bd57600080fd5b50604080518082019091526004815263434f525360e01b6020820152610248565b3480156104ea57600080fd5b506102126104f9366004611f23565b610a6a565b34801561050a57600080fd5b5061027e610519366004611d8c565b610a99565b34801561052a57600080fd5b50610212610539366004611f6a565b610aa6565b34801561054a57600080fd5b5061027e610559366004611ca3565b60126020526000908152604090205460ff1681565b34801561057a57600080fd5b5061027e610589366004611ca3565b60116020526000908152604090205460ff1681565b3480156105aa57600080fd5b50610212610aed565b3480156105bf57600080fd5b506102126105ce366004611db8565b610b38565b3480156105df57600080fd5b506102dd6105ee366004611cdd565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561062557600080fd5b50610212610634366004611f23565b610bd9565b34801561064557600080fd5b50610212610654366004611ca3565b610c08565b6000546001600160a01b0316331461068c5760405162461bcd60e51b815260040161068390612002565b60405180910390fd5b60005b81518110156106f4576001601160008484815181106106b0576106b0612149565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106ec81612118565b91505061068f565b5050565b6000610705338484610e19565b5060015b92915050565b600061071c848484610f3d565b61076e84336107698560405180606001604052806028815260200161218b602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906114e8565b610e19565b5060019392505050565b6000546001600160a01b031633146107a25760405162461bcd60e51b815260040161068390612002565b6001600160a01b03821660009081526012602052604090205460ff16151581151514156108115760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610683565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161068390612002565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108b25760405162461bcd60e51b815260040161068390612002565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108fd5760405162461bcd60e51b815260040161068390612002565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061094757506000546001600160a01b031633145b61095057600080fd5b4761095a81611522565b50565b6001600160a01b0381166000908152600260205260408120546107099061155c565b6000546001600160a01b031633146109a95760405162461bcd60e51b815260040161068390612002565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a1d5760405162461bcd60e51b815260040161068390612002565b601655565b6000546001600160a01b03163314610a4c5760405162461bcd60e51b815260040161068390612002565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a945760405162461bcd60e51b815260040161068390612002565b601855565b6000610705338484610f3d565b6000546001600160a01b03163314610ad05760405162461bcd60e51b815260040161068390612002565b600795909555600a93909355600891909155600b55600955600c55565b6013546001600160a01b0316336001600160a01b03161480610b1957506000546001600160a01b031633145b610b2257600080fd5b6000610b2d3061095d565b905061095a816115d9565b6000546001600160a01b03163314610b625760405162461bcd60e51b815260040161068390612002565b60005b82811015610bd3578160046000868685818110610b8457610b84612149565b9050602002016020810190610b999190611ca3565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bcb81612118565b915050610b65565b50505050565b6000546001600160a01b03163314610c035760405162461bcd60e51b815260040161068390612002565b601755565b6000546001600160a01b03163314610c325760405162461bcd60e51b815260040161068390612002565b6001600160a01b038116610c975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610683565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610cff83856120a8565b905083811015610d515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610683565b9392505050565b6000610d5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611762565b600082610da957506000610709565b6000610db583856120e2565b905082610dc285836120c0565b14610d515760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610683565b6001600160a01b038316610e7b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610683565b6001600160a01b038216610edc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610683565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fa15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610683565b6001600160a01b0382166110035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610683565b600081116110655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610683565b6000546001600160a01b0384811691161480159061109157506000546001600160a01b03838116911614155b80156110b657506001600160a01b03831660009081526012602052604090205460ff16155b80156110db57506001600160a01b03821660009081526012602052604090205460ff16155b156113b557601554600160a01b900460ff1661117f576001600160a01b03831660009081526012602052604090205460ff1661117f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610683565b6016548111156111d15760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610683565b6001600160a01b03831660009081526011602052604090205460ff1615801561121357506001600160a01b03821660009081526011602052604090205460ff16155b61126b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610683565b6015546001600160a01b038381169116146112f0576017548161128d8461095d565b61129791906120a8565b106112f05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610683565b60006112fb3061095d565b6018546016549192508210159082106113145760165491505b80801561132b5750601554600160a81b900460ff16155b801561134557506015546001600160a01b03868116911614155b801561135a5750601554600160b01b900460ff165b801561137f57506001600160a01b03851660009081526004602052604090205460ff16155b80156113a457506001600160a01b03841660009081526004602052604090205460ff16155b156113b2576113b282611790565b50505b6001600160a01b03831660009081526004602052604090205460019060ff16806113f757506001600160a01b03831660009081526004602052604090205460ff165b8061142957506015546001600160a01b0385811691161480159061142957506015546001600160a01b03848116911614155b15611436575060006114dc565b6015546001600160a01b03858116911614801561146157506014546001600160a01b03848116911614155b1561148c57600754600d556009546008546114889160649161148291610cf2565b90610d58565b600e555b6015546001600160a01b0384811691161480156114b757506014546001600160a01b03858116911614155b156114dc57600a54600d55600c54600b546114d89160649161148291610cf2565b600e555b610bd384848484611861565b6000818484111561150c5760405162461bcd60e51b81526004016106839190611fad565b5060006115198486612101565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106f4573d6000803e3d6000fd5b60006005548211156115c35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610683565b60006115cd61188f565b9050610d518382610d58565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061162157611621612149565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561167557600080fd5b505afa158015611689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ad9190611cc0565b816001815181106116c0576116c0612149565b6001600160a01b0392831660209182029290920101526014546116e69130911684610e19565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061171f908590600090869030904290600401612037565b600060405180830381600087803b15801561173957600080fd5b505af115801561174d573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b600081836117835760405162461bcd60e51b81526004016106839190611fad565b50600061151984866120c0565b60006117a9600c54600b54610cf290919063ffffffff16565b905060006117c36002600c54610d5890919063ffffffff16565b905060006117ea836114826117e385600b54610cf290919063ffffffff16565b8790610d9a565b905060006117fc846114828786610d9a565b905047611808836115d9565b600061181447836118b2565b9050600061183361182588886118b2565b600b54611482908590610d9a565b9050600061184183836118b2565b905061184c82611522565b61185685826118f4565b505050505050505050565b8061186e5761186e6119b4565b6118798484846119e2565b80610bd357610bd3600f54600d55601054600e55565b600080600061189c611ad9565b90925090506118ab8282610d58565b9250505090565b6000610d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114e8565b60145461190c9030906001600160a01b031684610e19565b60145460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561197457600080fd5b505af1158015611988573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ad9190611f3c565b5050505050565b600d541580156119c45750600e54155b156119cb57565b600d8054600f55600e805460105560009182905555565b6000806000806000806119f487611b19565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a2690876118b2565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a559086610cf2565b6001600160a01b038916600090815260026020526040902055611a7781611b76565b611a818483611bc0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ac691815260200190565b60405180910390a3505050505050505050565b6005546000908190678ac7230489e80000611af48282610d58565b821015611b1057505060055492678ac7230489e8000092509050565b90939092509050565b6000806000806000806000806000611b368a600d54600e54611be4565b9250925092506000611b4661188f565b90506000806000611b598e878787611c33565b919e509c509a509598509396509194505050505091939550919395565b6000611b8061188f565b90506000611b8e8383610d9a565b30600090815260026020526040902054909150611bab9082610cf2565b30600090815260026020526040902055505050565b600554611bcd90836118b2565b600555600654611bdd9082610cf2565b6006555050565b6000808080611bf860646114828989610d9a565b90506000611c0b60646114828a89610d9a565b90506000611c2382611c1d8b866118b2565b906118b2565b9992985090965090945050505050565b6000808080611c428886610d9a565b90506000611c508887610d9a565b90506000611c5e8888610d9a565b90506000611c7082611c1d86866118b2565b939b939a50919850919650505050505050565b8035611c8e81612175565b919050565b80358015158114611c8e57600080fd5b600060208284031215611cb557600080fd5b8135610d5181612175565b600060208284031215611cd257600080fd5b8151610d5181612175565b60008060408385031215611cf057600080fd5b8235611cfb81612175565b91506020830135611d0b81612175565b809150509250929050565b600080600060608486031215611d2b57600080fd5b8335611d3681612175565b92506020840135611d4681612175565b929592945050506040919091013590565b60008060408385031215611d6a57600080fd5b8235611d7581612175565b9150611d8360208401611c93565b90509250929050565b60008060408385031215611d9f57600080fd5b8235611daa81612175565b946020939093013593505050565b600080600060408486031215611dcd57600080fd5b833567ffffffffffffffff80821115611de557600080fd5b818601915086601f830112611df957600080fd5b813581811115611e0857600080fd5b8760208260051b8501011115611e1d57600080fd5b602092830195509350611e339186019050611c93565b90509250925092565b60006020808385031215611e4f57600080fd5b823567ffffffffffffffff80821115611e6757600080fd5b818501915085601f830112611e7b57600080fd5b813581811115611e8d57611e8d61215f565b8060051b604051601f19603f83011681018181108582111715611eb257611eb261215f565b604052828152858101935084860182860187018a1015611ed157600080fd5b600095505b83861015611efb57611ee781611c83565b855260019590950194938601938601611ed6565b5098975050505050505050565b600060208284031215611f1a57600080fd5b610d5182611c93565b600060208284031215611f3557600080fd5b5035919050565b600080600060608486031215611f5157600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215611f8357600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015611fda57858101830151858201604001528201611fbe565b81811115611fec576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120875784516001600160a01b031683529383019391830191600101612062565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156120bb576120bb612133565b500190565b6000826120dd57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120fc576120fc612133565b500290565b60008282101561211357612113612133565b500390565b600060001982141561212c5761212c612133565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461095a57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122027e3e3e8cb46f2ca79ed6df132070327d743d209c3211368a1578022fa1a23d064736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101e65760003560e01c806374010ece11610102578063bd9a3b6d11610095578063c492f04611610064578063c492f046146105b3578063dd62ed3e146105d3578063ea1644d514610619578063f2fde38b1461063957600080fd5b8063bd9a3b6d1461051e578063bdd795ef1461053e578063bfd792841461056e578063c3c8cd801461059e57600080fd5b80638f9a55c0116100d15780638f9a55c01461049b57806395d89b41146104b157806398a5c315146104de578063a9059cbb146104fe57600080fd5b806374010ece146104275780637d1db4a5146104475780638da5cb5b1461045d5780638f70ccf71461047b57600080fd5b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103bd5780636fc3eaec146103dd57806370a08231146103f2578063715018a61461041257600080fd5b8063313ce5671461034157806349bd5a5e1461035d5780635d098b381461037d5780636b9990531461039d57600080fd5b806318160ddd116101b657806318160ddd146102c657806323b872dd146102eb5780632f9c45691461030b5780632fd689e31461032b57600080fd5b8062b8cf2a146101f257806306fdde0314610214578063095ea7b31461025e5780631694505e1461028e57600080fd5b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021261020d366004611e3c565b610659565b005b34801561022057600080fd5b5060408051808201909152600f81526e436c617368204f66205265616c6d7360881b60208201525b6040516102559190611fad565b60405180910390f35b34801561026a57600080fd5b5061027e610279366004611d8c565b6106f8565b6040519015158152602001610255565b34801561029a57600080fd5b506014546102ae906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b3480156102d257600080fd5b50678ac7230489e800005b604051908152602001610255565b3480156102f757600080fd5b5061027e610306366004611d16565b61070f565b34801561031757600080fd5b50610212610326366004611d57565b610778565b34801561033757600080fd5b506102dd60185481565b34801561034d57600080fd5b5060405160098152602001610255565b34801561036957600080fd5b506015546102ae906001600160a01b031681565b34801561038957600080fd5b50610212610398366004611ca3565b61083c565b3480156103a957600080fd5b506102126103b8366004611ca3565b610888565b3480156103c957600080fd5b506102126103d8366004611f08565b6108d3565b3480156103e957600080fd5b5061021261091b565b3480156103fe57600080fd5b506102dd61040d366004611ca3565b61095d565b34801561041e57600080fd5b5061021261097f565b34801561043357600080fd5b50610212610442366004611f23565b6109f3565b34801561045357600080fd5b506102dd60165481565b34801561046957600080fd5b506000546001600160a01b03166102ae565b34801561048757600080fd5b50610212610496366004611f08565b610a22565b3480156104a757600080fd5b506102dd60175481565b3480156104bd57600080fd5b50604080518082019091526004815263434f525360e01b6020820152610248565b3480156104ea57600080fd5b506102126104f9366004611f23565b610a6a565b34801561050a57600080fd5b5061027e610519366004611d8c565b610a99565b34801561052a57600080fd5b50610212610539366004611f6a565b610aa6565b34801561054a57600080fd5b5061027e610559366004611ca3565b60126020526000908152604090205460ff1681565b34801561057a57600080fd5b5061027e610589366004611ca3565b60116020526000908152604090205460ff1681565b3480156105aa57600080fd5b50610212610aed565b3480156105bf57600080fd5b506102126105ce366004611db8565b610b38565b3480156105df57600080fd5b506102dd6105ee366004611cdd565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561062557600080fd5b50610212610634366004611f23565b610bd9565b34801561064557600080fd5b50610212610654366004611ca3565b610c08565b6000546001600160a01b0316331461068c5760405162461bcd60e51b815260040161068390612002565b60405180910390fd5b60005b81518110156106f4576001601160008484815181106106b0576106b0612149565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106ec81612118565b91505061068f565b5050565b6000610705338484610e19565b5060015b92915050565b600061071c848484610f3d565b61076e84336107698560405180606001604052806028815260200161218b602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906114e8565b610e19565b5060019392505050565b6000546001600160a01b031633146107a25760405162461bcd60e51b815260040161068390612002565b6001600160a01b03821660009081526012602052604090205460ff16151581151514156108115760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610683565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161068390612002565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108b25760405162461bcd60e51b815260040161068390612002565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108fd5760405162461bcd60e51b815260040161068390612002565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061094757506000546001600160a01b031633145b61095057600080fd5b4761095a81611522565b50565b6001600160a01b0381166000908152600260205260408120546107099061155c565b6000546001600160a01b031633146109a95760405162461bcd60e51b815260040161068390612002565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a1d5760405162461bcd60e51b815260040161068390612002565b601655565b6000546001600160a01b03163314610a4c5760405162461bcd60e51b815260040161068390612002565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a945760405162461bcd60e51b815260040161068390612002565b601855565b6000610705338484610f3d565b6000546001600160a01b03163314610ad05760405162461bcd60e51b815260040161068390612002565b600795909555600a93909355600891909155600b55600955600c55565b6013546001600160a01b0316336001600160a01b03161480610b1957506000546001600160a01b031633145b610b2257600080fd5b6000610b2d3061095d565b905061095a816115d9565b6000546001600160a01b03163314610b625760405162461bcd60e51b815260040161068390612002565b60005b82811015610bd3578160046000868685818110610b8457610b84612149565b9050602002016020810190610b999190611ca3565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bcb81612118565b915050610b65565b50505050565b6000546001600160a01b03163314610c035760405162461bcd60e51b815260040161068390612002565b601755565b6000546001600160a01b03163314610c325760405162461bcd60e51b815260040161068390612002565b6001600160a01b038116610c975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610683565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610cff83856120a8565b905083811015610d515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610683565b9392505050565b6000610d5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611762565b600082610da957506000610709565b6000610db583856120e2565b905082610dc285836120c0565b14610d515760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610683565b6001600160a01b038316610e7b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610683565b6001600160a01b038216610edc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610683565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fa15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610683565b6001600160a01b0382166110035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610683565b600081116110655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610683565b6000546001600160a01b0384811691161480159061109157506000546001600160a01b03838116911614155b80156110b657506001600160a01b03831660009081526012602052604090205460ff16155b80156110db57506001600160a01b03821660009081526012602052604090205460ff16155b156113b557601554600160a01b900460ff1661117f576001600160a01b03831660009081526012602052604090205460ff1661117f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610683565b6016548111156111d15760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610683565b6001600160a01b03831660009081526011602052604090205460ff1615801561121357506001600160a01b03821660009081526011602052604090205460ff16155b61126b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610683565b6015546001600160a01b038381169116146112f0576017548161128d8461095d565b61129791906120a8565b106112f05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610683565b60006112fb3061095d565b6018546016549192508210159082106113145760165491505b80801561132b5750601554600160a81b900460ff16155b801561134557506015546001600160a01b03868116911614155b801561135a5750601554600160b01b900460ff165b801561137f57506001600160a01b03851660009081526004602052604090205460ff16155b80156113a457506001600160a01b03841660009081526004602052604090205460ff16155b156113b2576113b282611790565b50505b6001600160a01b03831660009081526004602052604090205460019060ff16806113f757506001600160a01b03831660009081526004602052604090205460ff165b8061142957506015546001600160a01b0385811691161480159061142957506015546001600160a01b03848116911614155b15611436575060006114dc565b6015546001600160a01b03858116911614801561146157506014546001600160a01b03848116911614155b1561148c57600754600d556009546008546114889160649161148291610cf2565b90610d58565b600e555b6015546001600160a01b0384811691161480156114b757506014546001600160a01b03858116911614155b156114dc57600a54600d55600c54600b546114d89160649161148291610cf2565b600e555b610bd384848484611861565b6000818484111561150c5760405162461bcd60e51b81526004016106839190611fad565b5060006115198486612101565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106f4573d6000803e3d6000fd5b60006005548211156115c35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610683565b60006115cd61188f565b9050610d518382610d58565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061162157611621612149565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561167557600080fd5b505afa158015611689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ad9190611cc0565b816001815181106116c0576116c0612149565b6001600160a01b0392831660209182029290920101526014546116e69130911684610e19565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061171f908590600090869030904290600401612037565b600060405180830381600087803b15801561173957600080fd5b505af115801561174d573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b600081836117835760405162461bcd60e51b81526004016106839190611fad565b50600061151984866120c0565b60006117a9600c54600b54610cf290919063ffffffff16565b905060006117c36002600c54610d5890919063ffffffff16565b905060006117ea836114826117e385600b54610cf290919063ffffffff16565b8790610d9a565b905060006117fc846114828786610d9a565b905047611808836115d9565b600061181447836118b2565b9050600061183361182588886118b2565b600b54611482908590610d9a565b9050600061184183836118b2565b905061184c82611522565b61185685826118f4565b505050505050505050565b8061186e5761186e6119b4565b6118798484846119e2565b80610bd357610bd3600f54600d55601054600e55565b600080600061189c611ad9565b90925090506118ab8282610d58565b9250505090565b6000610d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114e8565b60145461190c9030906001600160a01b031684610e19565b60145460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561197457600080fd5b505af1158015611988573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ad9190611f3c565b5050505050565b600d541580156119c45750600e54155b156119cb57565b600d8054600f55600e805460105560009182905555565b6000806000806000806119f487611b19565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a2690876118b2565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a559086610cf2565b6001600160a01b038916600090815260026020526040902055611a7781611b76565b611a818483611bc0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ac691815260200190565b60405180910390a3505050505050505050565b6005546000908190678ac7230489e80000611af48282610d58565b821015611b1057505060055492678ac7230489e8000092509050565b90939092509050565b6000806000806000806000806000611b368a600d54600e54611be4565b9250925092506000611b4661188f565b90506000806000611b598e878787611c33565b919e509c509a509598509396509194505050505091939550919395565b6000611b8061188f565b90506000611b8e8383610d9a565b30600090815260026020526040902054909150611bab9082610cf2565b30600090815260026020526040902055505050565b600554611bcd90836118b2565b600555600654611bdd9082610cf2565b6006555050565b6000808080611bf860646114828989610d9a565b90506000611c0b60646114828a89610d9a565b90506000611c2382611c1d8b866118b2565b906118b2565b9992985090965090945050505050565b6000808080611c428886610d9a565b90506000611c508887610d9a565b90506000611c5e8888610d9a565b90506000611c7082611c1d86866118b2565b939b939a50919850919650505050505050565b8035611c8e81612175565b919050565b80358015158114611c8e57600080fd5b600060208284031215611cb557600080fd5b8135610d5181612175565b600060208284031215611cd257600080fd5b8151610d5181612175565b60008060408385031215611cf057600080fd5b8235611cfb81612175565b91506020830135611d0b81612175565b809150509250929050565b600080600060608486031215611d2b57600080fd5b8335611d3681612175565b92506020840135611d4681612175565b929592945050506040919091013590565b60008060408385031215611d6a57600080fd5b8235611d7581612175565b9150611d8360208401611c93565b90509250929050565b60008060408385031215611d9f57600080fd5b8235611daa81612175565b946020939093013593505050565b600080600060408486031215611dcd57600080fd5b833567ffffffffffffffff80821115611de557600080fd5b818601915086601f830112611df957600080fd5b813581811115611e0857600080fd5b8760208260051b8501011115611e1d57600080fd5b602092830195509350611e339186019050611c93565b90509250925092565b60006020808385031215611e4f57600080fd5b823567ffffffffffffffff80821115611e6757600080fd5b818501915085601f830112611e7b57600080fd5b813581811115611e8d57611e8d61215f565b8060051b604051601f19603f83011681018181108582111715611eb257611eb261215f565b604052828152858101935084860182860187018a1015611ed157600080fd5b600095505b83861015611efb57611ee781611c83565b855260019590950194938601938601611ed6565b5098975050505050505050565b600060208284031215611f1a57600080fd5b610d5182611c93565b600060208284031215611f3557600080fd5b5035919050565b600080600060608486031215611f5157600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215611f8357600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015611fda57858101830151858201604001528201611fbe565b81811115611fec576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120875784516001600160a01b031683529383019391830191600101612062565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156120bb576120bb612133565b500190565b6000826120dd57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120fc576120fc612133565b500290565b60008282101561211357612113612133565b500390565b600060001982141561212c5761212c612133565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461095a57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122027e3e3e8cb46f2ca79ed6df132070327d743d209c3211368a1578022fa1a23d064736f6c63430008070033

Deployed Bytecode Sourcemap

4177:15718:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14442:169;;;;;;;;;;-1:-1:-1;14442:169:0;;;;;:::i;:::-;;:::i;:::-;;6858:83;;;;;;;;;;-1:-1:-1;6928:5:0;;;;;;;;;;;;-1:-1:-1;;;6928:5:0;;;;6858:83;;;;;;;:::i;:::-;;;;;;;;7783:193;;;;;;;;;;-1:-1:-1;7783:193:0;;;;;:::i;:::-;;:::i;:::-;;;6605:14:1;;6598:22;6580:41;;6568:2;6553:18;7783:193:0;6440:187:1;5645:41:0;;;;;;;;;;-1:-1:-1;5645:41:0;;;;-1:-1:-1;;;;;5645:41:0;;;;;;-1:-1:-1;;;;;5784:32:1;;;5766:51;;5754:2;5739:18;5645:41:0;5620:203:1;7135:95:0;;;;;;;;;;-1:-1:-1;4690:19:0;7135:95;;;13528:25:1;;;13516:2;13501:18;7135:95:0;13382:177:1;7984:446:0;;;;;;;;;;-1:-1:-1;7984:446:0;;;;;:::i;:::-;;:::i;19696:196::-;;;;;;;;;;-1:-1:-1;19696:196:0;;;;;:::i;:::-;;:::i;5985:63::-;;;;;;;;;;;;;;;;7044:83;;;;;;;;;;-1:-1:-1;7044:83:0;;4414:1;14691:36:1;;14679:2;14664:18;7044:83:0;14549:184:1;5693:28:0;;;;;;;;;;-1:-1:-1;5693:28:0;;;;-1:-1:-1;;;;;5693:28:0;;;19124:132;;;;;;;;;;-1:-1:-1;19124:132:0;;;;;:::i;:::-;;:::i;14619:92::-;;;;;;;;;;-1:-1:-1;14619:92:0;;;;;:::i;:::-;;:::i;19312:101::-;;;;;;;;;;-1:-1:-1;19312:101:0;;;;;:::i;:::-;;:::i;14211:223::-;;;;;;;;;;;;;:::i;7238:138::-;;;;;;;;;;-1:-1:-1;7238:138:0;;;;;:::i;:::-;;:::i;1666:148::-;;;;;;;;;;;;;:::i;19452:108::-;;;;;;;;;;-1:-1:-1;19452:108:0;;;;;:::i;:::-;;:::i;5843:56::-;;;;;;;;;;;;;;;;1452:79;;;;;;;;;;-1:-1:-1;1490:7:0;1517:6;-1:-1:-1;;;;;1517:6:0;1452:79;;13870:101;;;;;;;;;;-1:-1:-1;13870:101:0;;;;;:::i;:::-;;:::i;5914:59::-;;;;;;;;;;;;;;;;6949:87;;;;;;;;;;-1:-1:-1;7021:7:0;;;;;;;;;;;;-1:-1:-1;;;7021:7:0;;;;6949:87;;18949:139;;;;;;;;;;-1:-1:-1;18949:139:0;;;;;:::i;:::-;;:::i;7384:199::-;;;;;;;;;;-1:-1:-1;7384:199:0;;;;;:::i;:::-;;:::i;18143:508::-;;;;;;;;;;-1:-1:-1;18143:508:0;;;;;:::i;:::-;;:::i;5482:42::-;;;;;;;;;;-1:-1:-1;5482:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5439:36;;;;;;;;;;-1:-1:-1;5439:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13979:224;;;;;;;;;;;;;:::i;18663:234::-;;;;;;;;;;-1:-1:-1;18663:234:0;;;;;:::i;:::-;;:::i;7591:184::-;;;;;;;;;;-1:-1:-1;7591:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7740:18:0;;;7708:7;7740:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7591:184;19572:115;;;;;;;;;;-1:-1:-1;19572:115:0;;;;;:::i;:::-;;:::i;1822:244::-;;;;;;;;;;-1:-1:-1;1822:244:0;;;;;:::i;:::-;;:::i;14442:169::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;;;;;;;;;14518:9:::1;14513:91;14537:5;:12;14533:1;:16;14513:91;;;14588:4;14571;:14;14576:5;14582:1;14576:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14571:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14571:14:0;:21;;-1:-1:-1;;14571:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14551:3;::::1;::::0;::::1;:::i;:::-;;;;14513:91;;;;14442:169:::0;:::o;7783:193::-;7885:4;7907:39;291:10;7930:7;7939:6;7907:8;:39::i;:::-;-1:-1:-1;7964:4:0;7783:193;;;;;:::o;7984:446::-;8116:4;8133:36;8143:6;8151:9;8162:6;8133:9;:36::i;:::-;8180:220;8203:6;291:10;8251:138;8307:6;8251:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8251:19:0;;;;;;:11;:19;;;;;;;;291:10;8251:33;;;;;;;;;;:37;:138::i;:::-;8180:8;:220::i;:::-;-1:-1:-1;8418:4:0;7984:446;;;;;:::o;19696:196::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19788:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;:29;;::::0;::::1;;;;19780:65;;;::::0;-1:-1:-1;;;19780:65:0;;10844:2:1;19780:65:0::1;::::0;::::1;10826:21:1::0;10883:2;10863:18;;;10856:30;10922:25;10902:18;;;10895:53;10965:18;;19780:65:0::1;10642:347:1::0;19780:65:0::1;-1:-1:-1::0;;;;;19856:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;-1:-1:-1;;19856:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19696:196::o;19124:132::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;19213:17:::1;:35:::0;;-1:-1:-1;;;;;;19213:35:0::1;-1:-1:-1::0;;;;;19213:35:0;;;::::1;::::0;;;::::1;::::0;;19124:132::o;14619:92::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14683:12:0::1;14698:5;14683:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;14683:20:0::1;::::0;;14619:92::o;19312:101::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;19379:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19379:26:0::1;-1:-1:-1::0;;;;19379:26:0;;::::1;::::0;;;::::1;::::0;;19312:101::o;14211:223::-;14277:17;;-1:-1:-1;;;;;14277:17:0;291:10;-1:-1:-1;;;;;14261:33:0;;:60;;;-1:-1:-1;1490:7:0;1517:6;-1:-1:-1;;;;;1517:6:0;291:10;14298:23;14261:60;14253:69;;;;;;14362:21;14394:32;14362:21;14394:12;:32::i;:::-;14242:192;14211:223::o;7238:138::-;-1:-1:-1;;;;;7351:16:0;;7304:7;7351:16;;;:7;:16;;;;;;7331:37;;:19;:37::i;1666:148::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;1773:1:::1;1757:6:::0;;1736:40:::1;::::0;-1:-1:-1;;;;;1757:6:0;;::::1;::::0;1736:40:::1;::::0;1773:1;;1736:40:::1;1804:1;1787:19:::0;;-1:-1:-1;;;;;;1787:19:0::1;::::0;;1666:148::o;19452:108::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;19526:12:::1;:26:::0;19452:108::o;13870:101::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;13937:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13937:26:0::1;-1:-1:-1::0;;;;13937:26:0;;::::1;::::0;;;::::1;::::0;;13870:101::o;18949:139::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;19040:19:::1;:40:::0;18949:139::o;7384:199::-;7489:4;7511:42;291:10;7535:9;7546:6;7511:9;:42::i;18143:508::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;18344:14:::1;:30:::0;;;;18385:15:::1;:32:::0;;;;18438:18:::1;:38:::0;;;;18487:19:::1;:40:::0;18548:18:::1;:38:::0;18597:19:::1;:40:::0;18143:508::o;13979:224::-;14045:17;;-1:-1:-1;;;;;14045:17:0;291:10;-1:-1:-1;;;;;14029:33:0;;:60;;;-1:-1:-1;1490:7:0;1517:6;-1:-1:-1;;;;;1517:6:0;291:10;14066:23;14029:60;14021:69;;;;;;14101:23;14127:24;14145:4;14127:9;:24::i;:::-;14101:50;;14162:33;14179:15;14162:16;:33::i;18663:234::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;18780:9:::1;18776:114;18795:19:::0;;::::1;18776:114;;;18870:8;18836:18;:31;18855:8;;18864:1;18855:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18836:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18836:31:0;:42;;-1:-1:-1;;18836:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18816:3;::::1;::::0;::::1;:::i;:::-;;;;18776:114;;;;18663:234:::0;;;:::o;19572:115::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;19649:14:::1;:30:::0;19572:115::o;1822:244::-;1579:6;;-1:-1:-1;;;;;1579:6:0;291:10;1579:22;1571:67;;;;-1:-1:-1;;;1571:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1911:22:0;::::1;1903:73;;;::::0;-1:-1:-1;;;1903:73:0;;9274:2:1;1903:73:0::1;::::0;::::1;9256:21:1::0;9313:2;9293:18;;;9286:30;9352:34;9332:18;;;9325:62;-1:-1:-1;;;9403:18:1;;;9396:36;9449:19;;1903:73:0::1;9072:402:1::0;1903:73:0::1;2013:6;::::0;;1992:38:::1;::::0;-1:-1:-1;;;;;1992:38:0;;::::1;::::0;2013:6;::::1;::::0;1992:38:::1;::::0;::::1;2041:6;:17:::0;;-1:-1:-1;;;;;;2041:17:0::1;-1:-1:-1::0;;;;;2041:17:0;;;::::1;::::0;;;::::1;::::0;;1822:244::o;2097:179::-;2155:7;;2187:5;2191:1;2187;:5;:::i;:::-;2175:17;;2216:1;2211;:6;;2203:46;;;;-1:-1:-1;;;2203:46:0;;10488:2:1;2203:46:0;;;10470:21:1;10527:2;10507:18;;;10500:30;10566:29;10546:18;;;10539:57;10613:18;;2203:46:0;10286:351:1;2203:46:0;2267:1;2097:179;-1:-1:-1;;;2097:179:0:o;2914:132::-;2972:7;2999:39;3003:1;3006;2999:39;;;;;;;;;;;;;;;;;:3;:39::i;2660:246::-;2718:7;2742:6;2738:47;;-1:-1:-1;2772:1:0;2765:8;;2738:47;2795:9;2807:5;2811:1;2807;:5;:::i;:::-;2795:17;-1:-1:-1;2840:1:0;2831:5;2835:1;2795:17;2831:5;:::i;:::-;:10;2823:56;;;;-1:-1:-1;;;2823:56:0;;11196:2:1;2823:56:0;;;11178:21:1;11235:2;11215:18;;;11208:30;11274:34;11254:18;;;11247:62;-1:-1:-1;;;11325:18:1;;;11318:31;11366:19;;2823:56:0;10994:397:1;9133:369:0;-1:-1:-1;;;;;9260:19:0;;9252:68;;;;-1:-1:-1;;;9252:68:0;;13179:2:1;9252:68:0;;;13161:21:1;13218:2;13198:18;;;13191:30;13257:34;13237:18;;;13230:62;-1:-1:-1;;;13308:18:1;;;13301:34;13352:19;;9252:68:0;12977:400:1;9252:68:0;-1:-1:-1;;;;;9339:21:0;;9331:68;;;;-1:-1:-1;;;9331:68:0;;9681:2:1;9331:68:0;;;9663:21:1;9720:2;9700:18;;;9693:30;9759:34;9739:18;;;9732:62;-1:-1:-1;;;9810:18:1;;;9803:32;9852:19;;9331:68:0;9479:398:1;9331:68:0;-1:-1:-1;;;;;9410:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9462:32;;13528:25:1;;;9462:32:0;;13501:18:1;9462:32:0;;;;;;;9133:369;;;:::o;9510:2347::-;-1:-1:-1;;;;;9632:18:0;;9624:68;;;;-1:-1:-1;;;9624:68:0;;12369:2:1;9624:68:0;;;12351:21:1;12408:2;12388:18;;;12381:30;12447:34;12427:18;;;12420:62;-1:-1:-1;;;12498:18:1;;;12491:35;12543:19;;9624:68:0;12167:401:1;9624:68:0;-1:-1:-1;;;;;9711:16:0;;9703:64;;;;-1:-1:-1;;;9703:64:0;;7670:2:1;9703:64:0;;;7652:21:1;7709:2;7689:18;;;7682:30;7748:34;7728:18;;;7721:62;-1:-1:-1;;;7799:18:1;;;7792:33;7842:19;;9703:64:0;7468:399:1;9703:64:0;9795:1;9786:6;:10;9778:64;;;;-1:-1:-1;;;9778:64:0;;11959:2:1;9778:64:0;;;11941:21:1;11998:2;11978:18;;;11971:30;12037:34;12017:18;;;12010:62;-1:-1:-1;;;12088:18:1;;;12081:39;12137:19;;9778:64:0;11757:405:1;9778:64:0;1490:7;1517:6;-1:-1:-1;;;;;9859:15:0;;;1517:6;;9859:15;;;;:32;;-1:-1:-1;1490:7:0;1517:6;-1:-1:-1;;;;;9878:13:0;;;1517:6;;9878:13;;9859:32;:52;;;;-1:-1:-1;;;;;;9896:15:0;;;;;;:9;:15;;;;;;;;9895:16;9859:52;:70;;;;-1:-1:-1;;;;;;9916:13:0;;;;;;:9;:13;;;;;;;;9915:14;9859:70;9855:1161;;;9998:11;;-1:-1:-1;;;9998:11:0;;;;9993:144;;-1:-1:-1;;;;;10038:15:0;;;;;;:9;:15;;;;;;;;10030:91;;;;-1:-1:-1;;;10030:91:0;;8074:2:1;10030:91:0;;;8056:21:1;8113:2;8093:18;;;8086:30;8152:34;8132:18;;;8125:62;8223:33;8203:18;;;8196:61;8274:19;;10030:91:0;7872:427:1;10030:91:0;10185:12;;10175:6;:22;;10167:63;;;;-1:-1:-1;;;10167:63:0;;8917:2:1;10167:63:0;;;8899:21:1;8956:2;8936:18;;;8929:30;8995;8975:18;;;8968:58;9043:18;;10167:63:0;8715:352:1;10167:63:0;-1:-1:-1;;;;;10254:10:0;;;;;;:4;:10;;;;;;;;10253:11;:24;;;;-1:-1:-1;;;;;;10269:8:0;;;;;;:4;:8;;;;;;;;10268:9;10253:24;10245:72;;;;-1:-1:-1;;;10245:72:0;;10084:2:1;10245:72:0;;;10066:21:1;10123:2;10103:18;;;10096:30;10162:34;10142:18;;;10135:62;-1:-1:-1;;;10213:18:1;;;10206:33;10256:19;;10245:72:0;9882:399:1;10245:72:0;10355:13;;-1:-1:-1;;;;;10349:19:0;;;10355:13;;10349:19;10346:146;;10422:14;;10413:6;10397:13;10407:2;10397:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10389:87;;;;-1:-1:-1;;;10389:87:0;;12775:2:1;10389:87:0;;;12757:21:1;12814:2;12794:18;;;12787:30;12853:34;12833:18;;;12826:62;-1:-1:-1;;;12904:18:1;;;12897:33;12947:19;;10389:87:0;12573:399:1;10389:87:0;10520:28;10551:24;10569:4;10551:9;:24::i;:::-;10629:19;;10692:12;;10520:55;;-1:-1:-1;10605:43:0;;;;10668:36;;10665:111;;10748:12;;10725:35;;10665:111;10808:7;:18;;;;-1:-1:-1;10820:6:0;;-1:-1:-1;;;10820:6:0;;;;10819:7;10808:18;:43;;;;-1:-1:-1;10838:13:0;;-1:-1:-1;;;;;10830:21:0;;;10838:13;;10830:21;;10808:43;:58;;;;-1:-1:-1;10855:11:0;;-1:-1:-1;;;10855:11:0;;;;10808:58;:87;;;;-1:-1:-1;;;;;;10871:24:0;;;;;;:18;:24;;;;;;;;10870:25;10808:87;:114;;;;-1:-1:-1;;;;;;10900:22:0;;;;;;:18;:22;;;;;;;;10899:23;10808:114;10804:201;;;10943:46;10968:20;10943:24;:46::i;:::-;9931:1085;;9855:1161;-1:-1:-1;;;;;11100:24:0;;11036:12;11100:24;;;:18;:24;;;;;;11051:4;;11100:24;;;:50;;-1:-1:-1;;;;;;11128:22:0;;;;;;:18;:22;;;;;;;;11100:50;11099:102;;;-1:-1:-1;11164:13:0;;-1:-1:-1;;;;;11156:21:0;;;11164:13;;11156:21;;;;:44;;-1:-1:-1;11187:13:0;;-1:-1:-1;;;;;11181:19:0;;;11187:13;;11181:19;;11156:44;11095:701;;;-1:-1:-1;11228:5:0;11095:701;;;11323:13;;-1:-1:-1;;;;;11315:21:0;;;11323:13;;11315:21;:55;;;;-1:-1:-1;11354:15:0;;-1:-1:-1;;;;;11340:30:0;;;11354:15;;11340:30;;11315:55;11312:201;;;11403:14;;11391:9;:26;11469:18;;11446;;:51;;11493:3;;11446:42;;:22;:42::i;:::-;:46;;:51::i;:::-;11436:7;:61;11312:201;11576:13;;-1:-1:-1;;;;;11570:19:0;;;11576:13;;11570:19;:55;;;;-1:-1:-1;11609:15:0;;-1:-1:-1;;;;;11593:32:0;;;11609:15;;11593:32;;11570:55;11566:205;;;11658:15;;11646:9;:27;11726:19;;11702;;:53;;11751:3;;11702:44;;:23;:44::i;:53::-;11692:7;:63;11566:205;11808:41;11823:4;11829:2;11833:6;11841:7;11808:14;:41::i;2428:224::-;2548:7;2584:12;2576:6;;;;2568:29;;;;-1:-1:-1;;;2568:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2608:9:0;2620:5;2624:1;2620;:5;:::i;:::-;2608:17;2428:224;-1:-1:-1;;;;;2428:224:0:o;13763:99::-;13820:17;;:34;;-1:-1:-1;;;;;13820:17:0;;;;:34;;;;;13847:6;;13820:17;:34;:17;:34;13847:6;13820:17;:34;;;;;;;;;;;;;;;;;;;8438:323;8533:7;8591;;8580;:18;;8558:110;;;;-1:-1:-1;;;8558:110:0;;8506:2:1;8558:110:0;;;8488:21:1;8545:2;8525:18;;;8518:30;8584:34;8564:18;;;8557:62;-1:-1:-1;;;8635:18:1;;;8628:40;8685:19;;8558:110:0;8304:406:1;8558:110:0;8679:19;8701:10;:8;:10::i;:::-;8679:32;-1:-1:-1;8729:24:0;:7;8679:32;8729:11;:24::i;11865:483::-;6149:6;:13;;-1:-1:-1;;;;6149:13:0;-1:-1:-1;;;6149:13:0;;;11967:16:::1;::::0;;11981:1:::1;11967:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11967:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11967:16:0::1;11943:40;;12012:4;11994;11999:1;11994:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11994:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12038:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12038:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11994:7;;12038:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12028:4;12033:1;12028:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12028:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12103:15:::1;::::0;12071:62:::1;::::0;12088:4:::1;::::0;12103:15:::1;12121:11:::0;12071:8:::1;:62::i;:::-;12144:15;::::0;:196:::1;::::0;-1:-1:-1;;;12144:196:0;;-1:-1:-1;;;;;12144:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12225:11;;12144:15:::1;::::0;12267:4;;12294::::1;::::0;12314:15:::1;::::0;12144:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6185:6:0;:14;;-1:-1:-1;;;;6185:14:0;;;-1:-1:-1;;;;11865:483:0:o;3054:223::-;3174:7;3209:12;3202:5;3194:28;;;;-1:-1:-1;;;3194:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3233:9:0;3245:5;3249:1;3245;:5;:::i;12360:865::-;12431:22;12456:44;12480:19;;12456;;:23;;:44;;;;:::i;:::-;12431:69;;12511:17;12531:26;12555:1;12531:19;;:23;;:26;;;;:::i;:::-;12511:46;;12570:25;12598:66;12649:14;12598:46;12609:34;12633:9;12609:19;;:23;;:34;;;;:::i;:::-;12598:6;;:10;:46::i;:66::-;12570:94;-1:-1:-1;12677:23:0;12703:41;12729:14;12703:21;:6;12714:9;12703:10;:21::i;:41::-;12677:67;-1:-1:-1;12785:21:0;12817:35;12834:17;12817:16;:35::i;:::-;12863:21;12887:44;:21;12913:17;12887:25;:44::i;:::-;12863:68;-1:-1:-1;12944:25:0;12972:73;13015:29;:14;13034:9;13015:18;:29::i;:::-;12990:19;;12972:38;;:13;;:17;:38::i;:73::-;12944:101;-1:-1:-1;13056:18:0;13077:36;:13;12944:101;13077:17;:36::i;:::-;13056:57;;13134:31;13147:17;13134:12;:31::i;:::-;13176:41;13189:15;13206:10;13176:12;:41::i;:::-;12418:807;;;;;;;;12360:865;:::o;14719:282::-;14875:7;14870:28;;14884:14;:12;:14::i;:::-;14909:44;14927:6;14935:9;14946:6;14909:17;:44::i;:::-;14969:7;14964:29;;14978:15;9064:17;;9052:9;:29;9102:15;;9092:7;:25;9008:117;17694:166;17736:7;17757:15;17774;17793:19;:17;:19::i;:::-;17756:56;;-1:-1:-1;17756:56:0;-1:-1:-1;17832:20:0;17756:56;;17832:11;:20::i;:::-;17825:27;;;;17694:166;:::o;2284:136::-;2342:7;2369:43;2373:1;2376;2369:43;;;;;;;;;;;;;;;;;:3;:43::i;13237:518::-;13419:15;;13387:62;;13404:4;;-1:-1:-1;;;;;13419:15:0;13437:11;13387:8;:62::i;:::-;13492:15;;:255;;-1:-1:-1;;;13492:255:0;;13564:4;13492:255;;;6169:34:1;6219:18;;;6212:34;;;13492:15:0;6262:18:1;;;6255:34;;;6305:18;;;6298:34;;;6348:19;;;6341:44;13721:15:0;6401:19:1;;;6394:35;-1:-1:-1;;;;;13492:15:0;;;;:31;;13531:9;;6103:19:1;;13492:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13237:518;;:::o;8769:231::-;8816:9;;:14;:30;;;;-1:-1:-1;8834:7:0;;:12;8816:30;8812:43;;;8769:231::o;8812:43::-;8891:9;;;8871:17;:29;8929:7;;;8911:15;:25;-1:-1:-1;8957:13:0;;;;8981:11;8769:231::o;15009:610::-;15156:15;15186:23;15224:12;15251:23;15289:12;15316:13;15343:19;15354:7;15343:10;:19::i;:::-;-1:-1:-1;;;;;15391:15:0;;;;;;:7;:15;;;;;;15141:221;;-1:-1:-1;15141:221:0;;-1:-1:-1;15141:221:0;;-1:-1:-1;15141:221:0;-1:-1:-1;15141:221:0;-1:-1:-1;15141:221:0;-1:-1:-1;15391:28:0;;15141:221;15391:19;:28::i;:::-;-1:-1:-1;;;;;15373:15:0;;;;;;;:7;:15;;;;;;:46;;;;15451:18;;;;;;;:39;;15474:15;15451:22;:39::i;:::-;-1:-1:-1;;;;;15430:18:0;;;;;;:7;:18;;;;;:60;15501:16;15511:5;15501:9;:16::i;:::-;15528:23;15540:4;15546;15528:11;:23::i;:::-;15584:9;-1:-1:-1;;;;;15567:44:0;15576:6;-1:-1:-1;;;;;15567:44:0;;15595:15;15567:44;;;;13528:25:1;;13516:2;13501:18;;13382:177;15567:44:0;;;;;;;;15130:489;;;;;;15009:610;;;:::o;17868:263::-;17966:7;;17919;;;;4690:19;18034:20;17966:7;4690:19;18034:11;:20::i;:::-;18024:7;:30;18020:61;;;-1:-1:-1;;18064:7:0;;;4690:19;;-1:-1:-1;17868:263:0;-1:-1:-1;17868:263:0:o;18020:61::-;18106:7;;18115;;-1:-1:-1;17868:263:0;-1:-1:-1;17868:263:0:o;16038:625::-;16138:7;16160;16182;16204;16226;16248;16284:23;16309:12;16323:13;16353:40;16365:7;16374:9;;16385:7;;16353:11;:40::i;:::-;16283:110;;;;;;16404:19;16426:10;:8;:10::i;:::-;16404:32;;16448:15;16465:23;16490:12;16519:46;16531:7;16540:4;16546:5;16553:11;16519;:46::i;:::-;16447:118;;-1:-1:-1;16447:118:0;-1:-1:-1;16447:118:0;-1:-1:-1;16626:15:0;;-1:-1:-1;16643:4:0;;-1:-1:-1;16649:5:0;;-1:-1:-1;;;;;16038:625:0;;;;;;;:::o;15627:211::-;15680:19;15702:10;:8;:10::i;:::-;15680:32;-1:-1:-1;15723:13:0;15739:22;:5;15680:32;15739:9;:22::i;:::-;15813:4;15797:22;;;;:7;:22;;;;;;15723:38;;-1:-1:-1;15797:33:0;;15723:38;15797:26;:33::i;:::-;15788:4;15772:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15627:211:0:o;15846:147::-;15924:7;;:17;;15936:4;15924:11;:17::i;:::-;15914:7;:27;15965:10;;:20;;15980:4;15965:14;:20::i;:::-;15952:10;:33;-1:-1:-1;;15846:147:0:o;16671:471::-;16840:7;;;;16934:30;16960:3;16934:21;:7;16946:8;16934:11;:21::i;:30::-;16919:45;-1:-1:-1;16975:13:0;16991:28;17015:3;16991:19;:7;17003:6;16991:11;:19::i;:28::-;16975:44;-1:-1:-1;17030:23:0;17056:28;16975:44;17056:17;:7;17068:4;17056:11;:17::i;:::-;:21;;:28::i;:::-;17030:54;17122:4;;-1:-1:-1;17128:5:0;;-1:-1:-1;16671:471:0;;-1:-1:-1;;;;;16671:471:0:o;17150:536::-;17344:7;;;;17441:24;:7;17453:11;17441;:24::i;:::-;17423:42;-1:-1:-1;17476:12:0;17491:21;:4;17500:11;17491:8;:21::i;:::-;17476:36;-1:-1:-1;17523:13:0;17539:22;:5;17549:11;17539:9;:22::i;:::-;17523:38;-1:-1:-1;17572:23:0;17598:28;17523:38;17598:17;:7;17610:4;17598:11;:17::i;:28::-;17647:7;;;;-1:-1:-1;17673:4:0;;-1:-1:-1;17150:536:0;;-1:-1:-1;;;;;;;17150:536:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:60;;303:1;300;293:12;318:247;377:6;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;485:9;472:23;504:31;529:5;504:31;:::i;570:251::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;760:31;785:5;760:31;:::i;1086:388::-;1154:6;1162;1215:2;1203:9;1194:7;1190:23;1186:32;1183:52;;;1231:1;1228;1221:12;1183:52;1270:9;1257:23;1289:31;1314:5;1289:31;:::i;:::-;1339:5;-1:-1:-1;1396:2:1;1381:18;;1368:32;1409:33;1368:32;1409:33;:::i;:::-;1461:7;1451:17;;;1086:388;;;;;:::o;1479:456::-;1556:6;1564;1572;1625:2;1613:9;1604:7;1600:23;1596:32;1593:52;;;1641:1;1638;1631:12;1593:52;1680:9;1667:23;1699:31;1724:5;1699:31;:::i;:::-;1749:5;-1:-1:-1;1806:2:1;1791:18;;1778:32;1819:33;1778:32;1819:33;:::i;:::-;1479:456;;1871:7;;-1:-1:-1;;;1925:2:1;1910:18;;;;1897:32;;1479:456::o;1940:315::-;2005:6;2013;2066:2;2054:9;2045:7;2041:23;2037:32;2034:52;;;2082:1;2079;2072:12;2034:52;2121:9;2108:23;2140:31;2165:5;2140:31;:::i;:::-;2190:5;-1:-1:-1;2214:35:1;2245:2;2230:18;;2214:35;:::i;:::-;2204:45;;1940:315;;;;;:::o;2260:::-;2328:6;2336;2389:2;2377:9;2368:7;2364:23;2360:32;2357:52;;;2405:1;2402;2395:12;2357:52;2444:9;2431:23;2463:31;2488:5;2463:31;:::i;:::-;2513:5;2565:2;2550:18;;;;2537:32;;-1:-1:-1;;;2260:315:1:o;2580:689::-;2672:6;2680;2688;2741:2;2729:9;2720:7;2716:23;2712:32;2709:52;;;2757:1;2754;2747:12;2709:52;2797:9;2784:23;2826:18;2867:2;2859:6;2856:14;2853:34;;;2883:1;2880;2873:12;2853:34;2921:6;2910:9;2906:22;2896:32;;2966:7;2959:4;2955:2;2951:13;2947:27;2937:55;;2988:1;2985;2978:12;2937:55;3028:2;3015:16;3054:2;3046:6;3043:14;3040:34;;;3070:1;3067;3060:12;3040:34;3125:7;3118:4;3108:6;3105:1;3101:14;3097:2;3093:23;3089:34;3086:47;3083:67;;;3146:1;3143;3136:12;3083:67;3177:4;3169:13;;;;-1:-1:-1;3201:6:1;-1:-1:-1;3226:37:1;;3242:20;;;-1:-1:-1;3226:37:1;:::i;:::-;3216:47;;2580:689;;;;;:::o;3274:1132::-;3358:6;3389:2;3432;3420:9;3411:7;3407:23;3403:32;3400:52;;;3448:1;3445;3438:12;3400:52;3488:9;3475:23;3517:18;3558:2;3550:6;3547:14;3544:34;;;3574:1;3571;3564:12;3544:34;3612:6;3601:9;3597:22;3587:32;;3657:7;3650:4;3646:2;3642:13;3638:27;3628:55;;3679:1;3676;3669:12;3628:55;3715:2;3702:16;3737:2;3733;3730:10;3727:36;;;3743:18;;:::i;:::-;3789:2;3786:1;3782:10;3821:2;3815:9;3884:2;3880:7;3875:2;3871;3867:11;3863:25;3855:6;3851:38;3939:6;3927:10;3924:22;3919:2;3907:10;3904:18;3901:46;3898:72;;;3950:18;;:::i;:::-;3986:2;3979:22;4036:18;;;4070:15;;;;-1:-1:-1;4105:11:1;;;4135;;;4131:20;;4128:33;-1:-1:-1;4125:53:1;;;4174:1;4171;4164:12;4125:53;4196:1;4187:10;;4206:169;4220:2;4217:1;4214:9;4206:169;;;4277:23;4296:3;4277:23;:::i;:::-;4265:36;;4238:1;4231:9;;;;;4321:12;;;;4353;;4206:169;;;-1:-1:-1;4394:6:1;3274:1132;-1:-1:-1;;;;;;;;3274:1132:1:o;4411:180::-;4467:6;4520:2;4508:9;4499:7;4495:23;4491:32;4488:52;;;4536:1;4533;4526:12;4488:52;4559:26;4575:9;4559:26;:::i;4596:180::-;4655:6;4708:2;4696:9;4687:7;4683:23;4679:32;4676:52;;;4724:1;4721;4714:12;4676:52;-1:-1:-1;4747:23:1;;4596:180;-1:-1:-1;4596:180:1:o;4781:306::-;4869:6;4877;4885;4938:2;4926:9;4917:7;4913:23;4909:32;4906:52;;;4954:1;4951;4944:12;4906:52;4983:9;4977:16;4967:26;;5033:2;5022:9;5018:18;5012:25;5002:35;;5077:2;5066:9;5062:18;5056:25;5046:35;;4781:306;;;;;:::o;5092:523::-;5196:6;5204;5212;5220;5228;5236;5289:3;5277:9;5268:7;5264:23;5260:33;5257:53;;;5306:1;5303;5296:12;5257:53;-1:-1:-1;;5329:23:1;;;5399:2;5384:18;;5371:32;;-1:-1:-1;5450:2:1;5435:18;;5422:32;;5501:2;5486:18;;5473:32;;-1:-1:-1;5552:3:1;5537:19;;5524:33;;-1:-1:-1;5604:3:1;5589:19;5576:33;;-1:-1:-1;5092:523:1;-1:-1:-1;5092:523:1:o;6866:597::-;6978:4;7007:2;7036;7025:9;7018:21;7068:6;7062:13;7111:6;7106:2;7095:9;7091:18;7084:34;7136:1;7146:140;7160:6;7157:1;7154:13;7146:140;;;7255:14;;;7251:23;;7245:30;7221:17;;;7240:2;7217:26;7210:66;7175:10;;7146:140;;;7304:6;7301:1;7298:13;7295:91;;;7374:1;7369:2;7360:6;7349:9;7345:22;7341:31;7334:42;7295:91;-1:-1:-1;7447:2:1;7426:15;-1:-1:-1;;7422:29:1;7407:45;;;;7454:2;7403:54;;6866:597;-1:-1:-1;;;6866:597:1:o;11396:356::-;11598:2;11580:21;;;11617:18;;;11610:30;11676:34;11671:2;11656:18;;11649:62;11743:2;11728:18;;11396:356::o;13564:980::-;13826:4;13874:3;13863:9;13859:19;13905:6;13894:9;13887:25;13931:2;13969:6;13964:2;13953:9;13949:18;13942:34;14012:3;14007:2;13996:9;13992:18;13985:31;14036:6;14071;14065:13;14102:6;14094;14087:22;14140:3;14129:9;14125:19;14118:26;;14179:2;14171:6;14167:15;14153:29;;14200:1;14210:195;14224:6;14221:1;14218:13;14210:195;;;14289:13;;-1:-1:-1;;;;;14285:39:1;14273:52;;14380:15;;;;14345:12;;;;14321:1;14239:9;14210:195;;;-1:-1:-1;;;;;;;14461:32:1;;;;14456:2;14441:18;;14434:60;-1:-1:-1;;;14525:3:1;14510:19;14503:35;14422:3;13564:980;-1:-1:-1;;;13564:980:1:o;14738:128::-;14778:3;14809:1;14805:6;14802:1;14799:13;14796:39;;;14815:18;;:::i;:::-;-1:-1:-1;14851:9:1;;14738:128::o;14871:217::-;14911:1;14937;14927:132;;14981:10;14976:3;14972:20;14969:1;14962:31;15016:4;15013:1;15006:15;15044:4;15041:1;15034:15;14927:132;-1:-1:-1;15073:9:1;;14871:217::o;15093:168::-;15133:7;15199:1;15195;15191:6;15187:14;15184:1;15181:21;15176:1;15169:9;15162:17;15158:45;15155:71;;;15206:18;;:::i;:::-;-1:-1:-1;15246:9:1;;15093:168::o;15266:125::-;15306:4;15334:1;15331;15328:8;15325:34;;;15339:18;;:::i;:::-;-1:-1:-1;15376:9:1;;15266:125::o;15396:135::-;15435:3;-1:-1:-1;;15456:17:1;;15453:43;;;15476:18;;:::i;:::-;-1:-1:-1;15523:1:1;15512:13;;15396:135::o;15536:127::-;15597:10;15592:3;15588:20;15585:1;15578:31;15628:4;15625:1;15618:15;15652:4;15649:1;15642:15;15668:127;15729:10;15724:3;15720:20;15717:1;15710:31;15760:4;15757:1;15750:15;15784:4;15781:1;15774:15;15800:127;15861:10;15856:3;15852:20;15849:1;15842:31;15892:4;15889:1;15882:15;15916:4;15913:1;15906:15;15932:131;-1:-1:-1;;;;;16007:31:1;;15997:42;;15987:70;;16053:1;16050;16043:12

Swarm Source

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