ETH Price: $2,437.40 (-0.74%)
 

Overview

Max Total Supply

46,500,000,000 S3XY

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 S3XY

Value
$0.00
0x4e4468bd073c9c8f22ccf738fa718c2fd6f0955c
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:
S3XYTWITT3R

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-04-23
*/

/*

S3XY TWITT3R (S3XY) 

Telegram :
https://t.me/S3XYTwitt3r

Twitter : 
https://twitter.com/s3xytwitt3r

Website: 
S3xytwitt3r.com

*/

// 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 S3XYTWITT3R is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "S3XY TWITT3R";
    string private constant _symbol = "S3XY";
    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 = 46500000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _marketingFeeOnBuy = 600; //100 = 1%
    uint256 private _liquidityFeeOnBuy = 300; //100 = 1%
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _marketingFeeOnSell = 600; //100 = 1%
    uint256 private _liquidityFeeOnSell = 300; //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 _taxWallet1 = payable(0x770d59467036325d0f8FDE184FE57f74FcB1ef41);
    address payable private _taxWallet2 = payable(0xD795c0f54CCFB0a0aB9E2e323F4C591AFcce3c63);
    
    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(50).div(10000); //0.50%
    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[_taxWallet1] = true;
        _isExcludedFromFee[_taxWallet2] = 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 {
        _taxWallet1.transfer(amount.div(2));
        _taxWallet2.transfer(amount.div(2));
    }

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

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

    function manualsend() external {
        require(_msgSender() == _taxWallet1 || _msgSender() == _taxWallet2 || _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 tax wallet
    function setTaxWallet(address payable taxWallet1, address payable taxWallet2) public onlyOwner {
        _taxWallet1 = taxWallet1;
        _taxWallet2 = taxWallet2;
    }
    
    //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":"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":"address payable","name":"taxWallet1","type":"address"},{"internalType":"address payable","name":"taxWallet2","type":"address"}],"name":"setTaxWallet","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"}]

60806040526200001b680285512fa1e7aa0000600019620006c3565b6200002990600019620006a9565b600555600060075561025860085561012c6009556000600a55610258600b5561012c600c55600a54600d556200008c606462000078600c54600b546200045560201b62000d381790919060201c565b620004c560201b62000d9e1790919060201c565b600e819055600d54600f55601055601380546001600160a01b031990811673770d59467036325d0f8fde184fe57f74fcb1ef41179091556014805490911673d795c0f54ccfb0a0ab9e2e323f4c591afcce3c631790556016805461ffff60a81b1916600160b01b1790556200012261271062000078680285512fa1e7aa0000601e62000de06200050f602090811b91909117901c565b60175562000150612710620000786032680285512fa1e7aa00006200050f60201b62000de01790919060201c565b6018556200017e61271062000078600a680285512fa1e7aa00006200050f60201b62000de01790919060201c565b6019553480156200018e57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506005543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200024757600080fd5b505afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620005d2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002cb57600080fd5b505afa158015620002e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003069190620005d2565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200034f57600080fd5b505af115801562000364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038a9190620005d2565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600460209081526040808320805460ff199081166001908117909255308552828520805482168317905560135486168552828520805482168317905560145486168552828520805482168317905584549095168452601283528184208054909516179093559151680285512fa1e7aa0000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000706565b60008062000464838562000655565b905083811015620004bc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b6000620004bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059660201b60201c565b6000826200052057506000620004bf565b60006200052e838562000687565b9050826200053d858362000670565b14620004bc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401620004b3565b60008183620005ba5760405162461bcd60e51b8152600401620004b39190620005fd565b506000620005c9848662000670565b95945050505050565b600060208284031215620005e557600080fd5b81516001600160a01b0381168114620004bc57600080fd5b600060208083528351808285015260005b818110156200062c578581018301518582016040015282016200060e565b818111156200063f576000604083870101525b50601f01601f1916929092016040019392505050565b600082198211156200066b576200066b620006da565b500190565b600082620006825762000682620006f0565b500490565b6000816000190483118215151615620006a457620006a4620006da565b500290565b600082821015620006be57620006be620006da565b500390565b600082620006d557620006d5620006f0565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b61227b80620007166000396000f3fe6080604052600436106101e65760003560e01c80637d1db4a511610102578063bdd795ef11610095578063dd62ed3e11610064578063dd62ed3e146105b1578063e6b0ed02146105f7578063ea1644d514610617578063f2fde38b1461063757600080fd5b8063bdd795ef1461051c578063bfd792841461054c578063c3c8cd801461057c578063c492f0461461059157600080fd5b806395d89b41116100d157806395d89b411461048f57806398a5c315146104bc578063a9059cbb146104dc578063bd9a3b6d146104fc57600080fd5b80637d1db4a5146104255780638da5cb5b1461043b5780638f70ccf7146104595780638f9a55c01461047957600080fd5b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103bb57806370a08231146103d0578063715018a6146103f057806374010ece1461040557600080fd5b8063313ce5671461033f57806349bd5a5e1461035b5780636b9990531461037b5780636d8aa8f81461039b57600080fd5b806318160ddd116101b657806318160ddd146102c357806323b872dd146102e95780632f9c4569146103095780632fd689e31461032957600080fd5b8062b8cf2a146101f257806306fdde0314610214578063095ea7b31461025b5780631694505e1461028b57600080fd5b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021261020d366004611ecf565b610657565b005b34801561022057600080fd5b5060408051808201909152600c81526b2999ac2c902a2ba4aa2a19a960a11b60208201525b6040516102529190612040565b60405180910390f35b34801561026757600080fd5b5061027b610276366004611e1f565b6106f6565b6040519015158152602001610252565b34801561029757600080fd5b506015546102ab906001600160a01b031681565b6040516001600160a01b039091168152602001610252565b3480156102cf57600080fd5b50680285512fa1e7aa00005b604051908152602001610252565b3480156102f557600080fd5b5061027b610304366004611da9565b61070d565b34801561031557600080fd5b50610212610324366004611dea565b610776565b34801561033557600080fd5b506102db60195481565b34801561034b57600080fd5b5060405160098152602001610252565b34801561036757600080fd5b506016546102ab906001600160a01b031681565b34801561038757600080fd5b50610212610396366004611d36565b61083a565b3480156103a757600080fd5b506102126103b6366004611f9b565b610885565b3480156103c757600080fd5b506102126108cd565b3480156103dc57600080fd5b506102db6103eb366004611d36565b61092d565b3480156103fc57600080fd5b5061021261094f565b34801561041157600080fd5b50610212610420366004611fb6565b6109c3565b34801561043157600080fd5b506102db60175481565b34801561044757600080fd5b506000546001600160a01b03166102ab565b34801561046557600080fd5b50610212610474366004611f9b565b6109f2565b34801561048557600080fd5b506102db60185481565b34801561049b57600080fd5b506040805180820190915260048152635333585960e01b6020820152610245565b3480156104c857600080fd5b506102126104d7366004611fb6565b610a3a565b3480156104e857600080fd5b5061027b6104f7366004611e1f565b610a69565b34801561050857600080fd5b50610212610517366004611ffd565b610a76565b34801561052857600080fd5b5061027b610537366004611d36565b60126020526000908152604090205460ff1681565b34801561055857600080fd5b5061027b610567366004611d36565b60116020526000908152604090205460ff1681565b34801561058857600080fd5b50610212610abd565b34801561059d57600080fd5b506102126105ac366004611e4b565b610b26565b3480156105bd57600080fd5b506102db6105cc366004611d70565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561060357600080fd5b50610212610612366004611d70565b610bc7565b34801561062357600080fd5b50610212610632366004611fb6565b610c1f565b34801561064357600080fd5b50610212610652366004611d36565b610c4e565b6000546001600160a01b0316331461068a5760405162461bcd60e51b815260040161068190612095565b60405180910390fd5b60005b81518110156106f2576001601160008484815181106106ae576106ae6121dc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106ea816121ab565b91505061068d565b5050565b6000610703338484610e5f565b5060015b92915050565b600061071a848484610f83565b61076c84336107678560405180606001604052806028815260200161221e602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061152e565b610e5f565b5060019392505050565b6000546001600160a01b031633146107a05760405162461bcd60e51b815260040161068190612095565b6001600160a01b03821660009081526012602052604090205460ff161515811515141561080f5760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610681565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108645760405162461bcd60e51b815260040161068190612095565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108af5760405162461bcd60e51b815260040161068190612095565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061090257506014546001600160a01b0316336001600160a01b0316145b8061091757506000546001600160a01b031633145b61092057600080fd5b4761092a81611568565b50565b6001600160a01b038116600090815260026020526040812054610707906115ed565b6000546001600160a01b031633146109795760405162461bcd60e51b815260040161068190612095565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109ed5760405162461bcd60e51b815260040161068190612095565b601755565b6000546001600160a01b03163314610a1c5760405162461bcd60e51b815260040161068190612095565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a645760405162461bcd60e51b815260040161068190612095565b601955565b6000610703338484610f83565b6000546001600160a01b03163314610aa05760405162461bcd60e51b815260040161068190612095565b600795909555600a93909355600891909155600b55600955600c55565b6013546001600160a01b0316336001600160a01b03161480610af257506014546001600160a01b0316336001600160a01b0316145b80610b0757506000546001600160a01b031633145b610b1057600080fd5b6000610b1b3061092d565b905061092a8161166a565b6000546001600160a01b03163314610b505760405162461bcd60e51b815260040161068190612095565b60005b82811015610bc1578160046000868685818110610b7257610b726121dc565b9050602002016020810190610b879190611d36565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bb9816121ab565b915050610b53565b50505050565b6000546001600160a01b03163314610bf15760405162461bcd60e51b815260040161068190612095565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000546001600160a01b03163314610c495760405162461bcd60e51b815260040161068190612095565b601855565b6000546001600160a01b03163314610c785760405162461bcd60e51b815260040161068190612095565b6001600160a01b038116610cdd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610681565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610d45838561213b565b905083811015610d975760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610681565b9392505050565b6000610d9783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117f3565b600082610def57506000610707565b6000610dfb8385612175565b905082610e088583612153565b14610d975760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610681565b6001600160a01b038316610ec15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610681565b6001600160a01b038216610f225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610681565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fe75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610681565b6001600160a01b0382166110495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610681565b600081116110ab5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610681565b6000546001600160a01b038481169116148015906110d757506000546001600160a01b03838116911614155b80156110fc57506001600160a01b03831660009081526012602052604090205460ff16155b801561112157506001600160a01b03821660009081526012602052604090205460ff16155b156113fb57601654600160a01b900460ff166111c5576001600160a01b03831660009081526012602052604090205460ff166111c55760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610681565b6017548111156112175760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610681565b6001600160a01b03831660009081526011602052604090205460ff1615801561125957506001600160a01b03821660009081526011602052604090205460ff16155b6112b15760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610681565b6016546001600160a01b0383811691161461133657601854816112d38461092d565b6112dd919061213b565b106113365760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610681565b60006113413061092d565b60195460175491925082101590821061135a5760175491505b8080156113715750601654600160a81b900460ff16155b801561138b57506016546001600160a01b03868116911614155b80156113a05750601654600160b01b900460ff165b80156113c557506001600160a01b03851660009081526004602052604090205460ff16155b80156113ea57506001600160a01b03841660009081526004602052604090205460ff16155b156113f8576113f882611821565b50505b6001600160a01b03831660009081526004602052604090205460019060ff168061143d57506001600160a01b03831660009081526004602052604090205460ff165b8061146f57506016546001600160a01b0385811691161480159061146f57506016546001600160a01b03848116911614155b1561147c57506000611522565b6016546001600160a01b0385811691161480156114a757506015546001600160a01b03848116911614155b156114d257600754600d556009546008546114ce916064916114c891610d38565b90610d9e565b600e555b6016546001600160a01b0384811691161480156114fd57506015546001600160a01b03858116911614155b1561152257600a54600d55600c54600b5461151e916064916114c891610d38565b600e555b610bc1848484846118f2565b600081848411156115525760405162461bcd60e51b81526004016106819190612040565b50600061155f8486612194565b95945050505050565b6013546001600160a01b03166108fc611582836002610d9e565b6040518115909202916000818181858888f193505050501580156115aa573d6000803e3d6000fd5b506014546001600160a01b03166108fc6115c5836002610d9e565b6040518115909202916000818181858888f193505050501580156106f2573d6000803e3d6000fd5b60006005548211156116545760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610681565b600061165e611920565b9050610d978382610d9e565b6016805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106116b2576116b26121dc565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561170657600080fd5b505afa15801561171a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173e9190611d53565b81600181518110611751576117516121dc565b6001600160a01b0392831660209182029290920101526015546117779130911684610e5f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906117b09085906000908690309042906004016120ca565b600060405180830381600087803b1580156117ca57600080fd5b505af11580156117de573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b600081836118145760405162461bcd60e51b81526004016106819190612040565b50600061155f8486612153565b600061183a600c54600b54610d3890919063ffffffff16565b905060006118546002600c54610d9e90919063ffffffff16565b9050600061187b836114c861187485600b54610d3890919063ffffffff16565b8790610de0565b9050600061188d846114c88786610de0565b9050476118998361166a565b60006118a54783611943565b905060006118c46118b68888611943565b600b546114c8908590610de0565b905060006118d28383611943565b90506118dd82611568565b6118e78582611985565b505050505050505050565b806118ff576118ff611a45565b61190a848484611a73565b80610bc157610bc1600f54600d55601054600e55565b600080600061192d611b6a565b909250905061193c8282610d9e565b9250505090565b6000610d9783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061152e565b60155461199d9030906001600160a01b031684610e5f565b60155460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b158015611a0557600080fd5b505af1158015611a19573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a3e9190611fcf565b5050505050565b600d54158015611a555750600e54155b15611a5c57565b600d8054600f55600e805460105560009182905555565b600080600080600080611a8587611bac565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611ab79087611943565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611ae69086610d38565b6001600160a01b038916600090815260026020526040902055611b0881611c09565b611b128483611c53565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b5791815260200190565b60405180910390a3505050505050505050565b6005546000908190680285512fa1e7aa0000611b868282610d9e565b821015611ba357505060055492680285512fa1e7aa000092509050565b90939092509050565b6000806000806000806000806000611bc98a600d54600e54611c77565b9250925092506000611bd9611920565b90506000806000611bec8e878787611cc6565b919e509c509a509598509396509194505050505091939550919395565b6000611c13611920565b90506000611c218383610de0565b30600090815260026020526040902054909150611c3e9082610d38565b30600090815260026020526040902055505050565b600554611c609083611943565b600555600654611c709082610d38565b6006555050565b6000808080611c8b60646114c88989610de0565b90506000611c9e60646114c88a89610de0565b90506000611cb682611cb08b86611943565b90611943565b9992985090965090945050505050565b6000808080611cd58886610de0565b90506000611ce38887610de0565b90506000611cf18888610de0565b90506000611d0382611cb08686611943565b939b939a50919850919650505050505050565b8035611d2181612208565b919050565b80358015158114611d2157600080fd5b600060208284031215611d4857600080fd5b8135610d9781612208565b600060208284031215611d6557600080fd5b8151610d9781612208565b60008060408385031215611d8357600080fd5b8235611d8e81612208565b91506020830135611d9e81612208565b809150509250929050565b600080600060608486031215611dbe57600080fd5b8335611dc981612208565b92506020840135611dd981612208565b929592945050506040919091013590565b60008060408385031215611dfd57600080fd5b8235611e0881612208565b9150611e1660208401611d26565b90509250929050565b60008060408385031215611e3257600080fd5b8235611e3d81612208565b946020939093013593505050565b600080600060408486031215611e6057600080fd5b833567ffffffffffffffff80821115611e7857600080fd5b818601915086601f830112611e8c57600080fd5b813581811115611e9b57600080fd5b8760208260051b8501011115611eb057600080fd5b602092830195509350611ec69186019050611d26565b90509250925092565b60006020808385031215611ee257600080fd5b823567ffffffffffffffff80821115611efa57600080fd5b818501915085601f830112611f0e57600080fd5b813581811115611f2057611f206121f2565b8060051b604051601f19603f83011681018181108582111715611f4557611f456121f2565b604052828152858101935084860182860187018a1015611f6457600080fd5b600095505b83861015611f8e57611f7a81611d16565b855260019590950194938601938601611f69565b5098975050505050505050565b600060208284031215611fad57600080fd5b610d9782611d26565b600060208284031215611fc857600080fd5b5035919050565b600080600060608486031215611fe457600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561201657600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b8181101561206d57858101830151858201604001528201612051565b8181111561207f576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561211a5784516001600160a01b0316835293830193918301916001016120f5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561214e5761214e6121c6565b500190565b60008261217057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561218f5761218f6121c6565b500290565b6000828210156121a6576121a66121c6565b500390565b60006000198214156121bf576121bf6121c6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461092a57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e6f636a1f33b9166a7163def1cc12381504d703b8cca2e4121454b183a7d5e9264736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101e65760003560e01c80637d1db4a511610102578063bdd795ef11610095578063dd62ed3e11610064578063dd62ed3e146105b1578063e6b0ed02146105f7578063ea1644d514610617578063f2fde38b1461063757600080fd5b8063bdd795ef1461051c578063bfd792841461054c578063c3c8cd801461057c578063c492f0461461059157600080fd5b806395d89b41116100d157806395d89b411461048f57806398a5c315146104bc578063a9059cbb146104dc578063bd9a3b6d146104fc57600080fd5b80637d1db4a5146104255780638da5cb5b1461043b5780638f70ccf7146104595780638f9a55c01461047957600080fd5b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103bb57806370a08231146103d0578063715018a6146103f057806374010ece1461040557600080fd5b8063313ce5671461033f57806349bd5a5e1461035b5780636b9990531461037b5780636d8aa8f81461039b57600080fd5b806318160ddd116101b657806318160ddd146102c357806323b872dd146102e95780632f9c4569146103095780632fd689e31461032957600080fd5b8062b8cf2a146101f257806306fdde0314610214578063095ea7b31461025b5780631694505e1461028b57600080fd5b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021261020d366004611ecf565b610657565b005b34801561022057600080fd5b5060408051808201909152600c81526b2999ac2c902a2ba4aa2a19a960a11b60208201525b6040516102529190612040565b60405180910390f35b34801561026757600080fd5b5061027b610276366004611e1f565b6106f6565b6040519015158152602001610252565b34801561029757600080fd5b506015546102ab906001600160a01b031681565b6040516001600160a01b039091168152602001610252565b3480156102cf57600080fd5b50680285512fa1e7aa00005b604051908152602001610252565b3480156102f557600080fd5b5061027b610304366004611da9565b61070d565b34801561031557600080fd5b50610212610324366004611dea565b610776565b34801561033557600080fd5b506102db60195481565b34801561034b57600080fd5b5060405160098152602001610252565b34801561036757600080fd5b506016546102ab906001600160a01b031681565b34801561038757600080fd5b50610212610396366004611d36565b61083a565b3480156103a757600080fd5b506102126103b6366004611f9b565b610885565b3480156103c757600080fd5b506102126108cd565b3480156103dc57600080fd5b506102db6103eb366004611d36565b61092d565b3480156103fc57600080fd5b5061021261094f565b34801561041157600080fd5b50610212610420366004611fb6565b6109c3565b34801561043157600080fd5b506102db60175481565b34801561044757600080fd5b506000546001600160a01b03166102ab565b34801561046557600080fd5b50610212610474366004611f9b565b6109f2565b34801561048557600080fd5b506102db60185481565b34801561049b57600080fd5b506040805180820190915260048152635333585960e01b6020820152610245565b3480156104c857600080fd5b506102126104d7366004611fb6565b610a3a565b3480156104e857600080fd5b5061027b6104f7366004611e1f565b610a69565b34801561050857600080fd5b50610212610517366004611ffd565b610a76565b34801561052857600080fd5b5061027b610537366004611d36565b60126020526000908152604090205460ff1681565b34801561055857600080fd5b5061027b610567366004611d36565b60116020526000908152604090205460ff1681565b34801561058857600080fd5b50610212610abd565b34801561059d57600080fd5b506102126105ac366004611e4b565b610b26565b3480156105bd57600080fd5b506102db6105cc366004611d70565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561060357600080fd5b50610212610612366004611d70565b610bc7565b34801561062357600080fd5b50610212610632366004611fb6565b610c1f565b34801561064357600080fd5b50610212610652366004611d36565b610c4e565b6000546001600160a01b0316331461068a5760405162461bcd60e51b815260040161068190612095565b60405180910390fd5b60005b81518110156106f2576001601160008484815181106106ae576106ae6121dc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106ea816121ab565b91505061068d565b5050565b6000610703338484610e5f565b5060015b92915050565b600061071a848484610f83565b61076c84336107678560405180606001604052806028815260200161221e602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061152e565b610e5f565b5060019392505050565b6000546001600160a01b031633146107a05760405162461bcd60e51b815260040161068190612095565b6001600160a01b03821660009081526012602052604090205460ff161515811515141561080f5760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610681565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108645760405162461bcd60e51b815260040161068190612095565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108af5760405162461bcd60e51b815260040161068190612095565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061090257506014546001600160a01b0316336001600160a01b0316145b8061091757506000546001600160a01b031633145b61092057600080fd5b4761092a81611568565b50565b6001600160a01b038116600090815260026020526040812054610707906115ed565b6000546001600160a01b031633146109795760405162461bcd60e51b815260040161068190612095565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109ed5760405162461bcd60e51b815260040161068190612095565b601755565b6000546001600160a01b03163314610a1c5760405162461bcd60e51b815260040161068190612095565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a645760405162461bcd60e51b815260040161068190612095565b601955565b6000610703338484610f83565b6000546001600160a01b03163314610aa05760405162461bcd60e51b815260040161068190612095565b600795909555600a93909355600891909155600b55600955600c55565b6013546001600160a01b0316336001600160a01b03161480610af257506014546001600160a01b0316336001600160a01b0316145b80610b0757506000546001600160a01b031633145b610b1057600080fd5b6000610b1b3061092d565b905061092a8161166a565b6000546001600160a01b03163314610b505760405162461bcd60e51b815260040161068190612095565b60005b82811015610bc1578160046000868685818110610b7257610b726121dc565b9050602002016020810190610b879190611d36565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bb9816121ab565b915050610b53565b50505050565b6000546001600160a01b03163314610bf15760405162461bcd60e51b815260040161068190612095565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000546001600160a01b03163314610c495760405162461bcd60e51b815260040161068190612095565b601855565b6000546001600160a01b03163314610c785760405162461bcd60e51b815260040161068190612095565b6001600160a01b038116610cdd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610681565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610d45838561213b565b905083811015610d975760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610681565b9392505050565b6000610d9783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117f3565b600082610def57506000610707565b6000610dfb8385612175565b905082610e088583612153565b14610d975760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610681565b6001600160a01b038316610ec15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610681565b6001600160a01b038216610f225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610681565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fe75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610681565b6001600160a01b0382166110495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610681565b600081116110ab5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610681565b6000546001600160a01b038481169116148015906110d757506000546001600160a01b03838116911614155b80156110fc57506001600160a01b03831660009081526012602052604090205460ff16155b801561112157506001600160a01b03821660009081526012602052604090205460ff16155b156113fb57601654600160a01b900460ff166111c5576001600160a01b03831660009081526012602052604090205460ff166111c55760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610681565b6017548111156112175760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610681565b6001600160a01b03831660009081526011602052604090205460ff1615801561125957506001600160a01b03821660009081526011602052604090205460ff16155b6112b15760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610681565b6016546001600160a01b0383811691161461133657601854816112d38461092d565b6112dd919061213b565b106113365760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610681565b60006113413061092d565b60195460175491925082101590821061135a5760175491505b8080156113715750601654600160a81b900460ff16155b801561138b57506016546001600160a01b03868116911614155b80156113a05750601654600160b01b900460ff165b80156113c557506001600160a01b03851660009081526004602052604090205460ff16155b80156113ea57506001600160a01b03841660009081526004602052604090205460ff16155b156113f8576113f882611821565b50505b6001600160a01b03831660009081526004602052604090205460019060ff168061143d57506001600160a01b03831660009081526004602052604090205460ff165b8061146f57506016546001600160a01b0385811691161480159061146f57506016546001600160a01b03848116911614155b1561147c57506000611522565b6016546001600160a01b0385811691161480156114a757506015546001600160a01b03848116911614155b156114d257600754600d556009546008546114ce916064916114c891610d38565b90610d9e565b600e555b6016546001600160a01b0384811691161480156114fd57506015546001600160a01b03858116911614155b1561152257600a54600d55600c54600b5461151e916064916114c891610d38565b600e555b610bc1848484846118f2565b600081848411156115525760405162461bcd60e51b81526004016106819190612040565b50600061155f8486612194565b95945050505050565b6013546001600160a01b03166108fc611582836002610d9e565b6040518115909202916000818181858888f193505050501580156115aa573d6000803e3d6000fd5b506014546001600160a01b03166108fc6115c5836002610d9e565b6040518115909202916000818181858888f193505050501580156106f2573d6000803e3d6000fd5b60006005548211156116545760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610681565b600061165e611920565b9050610d978382610d9e565b6016805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106116b2576116b26121dc565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561170657600080fd5b505afa15801561171a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173e9190611d53565b81600181518110611751576117516121dc565b6001600160a01b0392831660209182029290920101526015546117779130911684610e5f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906117b09085906000908690309042906004016120ca565b600060405180830381600087803b1580156117ca57600080fd5b505af11580156117de573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b600081836118145760405162461bcd60e51b81526004016106819190612040565b50600061155f8486612153565b600061183a600c54600b54610d3890919063ffffffff16565b905060006118546002600c54610d9e90919063ffffffff16565b9050600061187b836114c861187485600b54610d3890919063ffffffff16565b8790610de0565b9050600061188d846114c88786610de0565b9050476118998361166a565b60006118a54783611943565b905060006118c46118b68888611943565b600b546114c8908590610de0565b905060006118d28383611943565b90506118dd82611568565b6118e78582611985565b505050505050505050565b806118ff576118ff611a45565b61190a848484611a73565b80610bc157610bc1600f54600d55601054600e55565b600080600061192d611b6a565b909250905061193c8282610d9e565b9250505090565b6000610d9783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061152e565b60155461199d9030906001600160a01b031684610e5f565b60155460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b158015611a0557600080fd5b505af1158015611a19573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a3e9190611fcf565b5050505050565b600d54158015611a555750600e54155b15611a5c57565b600d8054600f55600e805460105560009182905555565b600080600080600080611a8587611bac565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611ab79087611943565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611ae69086610d38565b6001600160a01b038916600090815260026020526040902055611b0881611c09565b611b128483611c53565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b5791815260200190565b60405180910390a3505050505050505050565b6005546000908190680285512fa1e7aa0000611b868282610d9e565b821015611ba357505060055492680285512fa1e7aa000092509050565b90939092509050565b6000806000806000806000806000611bc98a600d54600e54611c77565b9250925092506000611bd9611920565b90506000806000611bec8e878787611cc6565b919e509c509a509598509396509194505050505091939550919395565b6000611c13611920565b90506000611c218383610de0565b30600090815260026020526040902054909150611c3e9082610d38565b30600090815260026020526040902055505050565b600554611c609083611943565b600555600654611c709082610d38565b6006555050565b6000808080611c8b60646114c88989610de0565b90506000611c9e60646114c88a89610de0565b90506000611cb682611cb08b86611943565b90611943565b9992985090965090945050505050565b6000808080611cd58886610de0565b90506000611ce38887610de0565b90506000611cf18888610de0565b90506000611d0382611cb08686611943565b939b939a50919850919650505050505050565b8035611d2181612208565b919050565b80358015158114611d2157600080fd5b600060208284031215611d4857600080fd5b8135610d9781612208565b600060208284031215611d6557600080fd5b8151610d9781612208565b60008060408385031215611d8357600080fd5b8235611d8e81612208565b91506020830135611d9e81612208565b809150509250929050565b600080600060608486031215611dbe57600080fd5b8335611dc981612208565b92506020840135611dd981612208565b929592945050506040919091013590565b60008060408385031215611dfd57600080fd5b8235611e0881612208565b9150611e1660208401611d26565b90509250929050565b60008060408385031215611e3257600080fd5b8235611e3d81612208565b946020939093013593505050565b600080600060408486031215611e6057600080fd5b833567ffffffffffffffff80821115611e7857600080fd5b818601915086601f830112611e8c57600080fd5b813581811115611e9b57600080fd5b8760208260051b8501011115611eb057600080fd5b602092830195509350611ec69186019050611d26565b90509250925092565b60006020808385031215611ee257600080fd5b823567ffffffffffffffff80821115611efa57600080fd5b818501915085601f830112611f0e57600080fd5b813581811115611f2057611f206121f2565b8060051b604051601f19603f83011681018181108582111715611f4557611f456121f2565b604052828152858101935084860182860187018a1015611f6457600080fd5b600095505b83861015611f8e57611f7a81611d16565b855260019590950194938601938601611f69565b5098975050505050505050565b600060208284031215611fad57600080fd5b610d9782611d26565b600060208284031215611fc857600080fd5b5035919050565b600080600060608486031215611fe457600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561201657600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b8181101561206d57858101830151858201604001528201612051565b8181111561207f576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561211a5784516001600160a01b0316835293830193918301916001016120f5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561214e5761214e6121c6565b500190565b60008261217057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561218f5761218f6121c6565b500290565b6000828210156121a6576121a66121c6565b500390565b60006000198214156121bf576121bf6121c6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461092a57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e6f636a1f33b9166a7163def1cc12381504d703b8cca2e4121454b183a7d5e9264736f6c63430008070033

Deployed Bytecode Sourcemap

4212:15990:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14704:169;;;;;;;;;;-1:-1:-1;14704:169:0;;;;;:::i;:::-;;:::i;:::-;;7023:83;;;;;;;;;;-1:-1:-1;7093:5:0;;;;;;;;;;;;-1:-1:-1;;;7093:5:0;;;;7023:83;;;;;;;:::i;:::-;;;;;;;;7948:193;;;;;;;;;;-1:-1:-1;7948:193:0;;;;;:::i;:::-;;:::i;:::-;;;6754:14:1;;6747:22;6729:41;;6717:2;6702:18;7948:193:0;6589:187:1;5765:41:0;;;;;;;;;;-1:-1:-1;5765:41:0;;;;-1:-1:-1;;;;;5765:41:0;;;;;;-1:-1:-1;;;;;5933:32:1;;;5915:51;;5903:2;5888:18;5765:41:0;5769:203:1;7300:95:0;;;;;;;;;;-1:-1:-1;4720:19:0;7300:95;;;13677:25:1;;;13665:2;13650:18;7300:95:0;13531:177:1;8149:446:0;;;;;;;;;;-1:-1:-1;8149:446:0;;;;;:::i;:::-;;:::i;20003:196::-;;;;;;;;;;-1:-1:-1;20003:196:0;;;;;:::i;:::-;;:::i;6107:63::-;;;;;;;;;;;;;;;;7209:83;;;;;;;;;;-1:-1:-1;7209:83:0;;4444:1;14840:36:1;;14828:2;14813:18;7209:83:0;14698:184:1;5813:28:0;;;;;;;;;;-1:-1:-1;5813:28:0;;;;-1:-1:-1;;;;;5813:28:0;;;14881:92;;;;;;;;;;-1:-1:-1;14881:92:0;;;;;:::i;:::-;;:::i;19619:101::-;;;;;;;;;;-1:-1:-1;19619:101:0;;;;;:::i;:::-;;:::i;14448:248::-;;;;;;;;;;;;;:::i;7403:138::-;;;;;;;;;;-1:-1:-1;7403:138:0;;;;;:::i;:::-;;:::i;1701:148::-;;;;;;;;;;;;;:::i;19759:108::-;;;;;;;;;;-1:-1:-1;19759:108:0;;;;;:::i;:::-;;:::i;5963:56::-;;;;;;;;;;;;;;;;1487:79;;;;;;;;;;-1:-1:-1;1525:7:0;1552:6;-1:-1:-1;;;;;1552:6:0;1487:79;;14082:101;;;;;;;;;;-1:-1:-1;14082:101:0;;;;;:::i;:::-;;:::i;6034:58::-;;;;;;;;;;;;;;;;7114:87;;;;;;;;;;-1:-1:-1;7186:7:0;;;;;;;;;;;;-1:-1:-1;;;7186:7:0;;;;7114:87;;19211:139;;;;;;;;;;-1:-1:-1;19211:139:0;;;;;:::i;:::-;;:::i;7549:199::-;;;;;;;;;;-1:-1:-1;7549:199:0;;;;;:::i;:::-;;:::i;18405:508::-;;;;;;;;;;-1:-1:-1;18405:508:0;;;;;:::i;:::-;;:::i;5512:42::-;;;;;;;;;;-1:-1:-1;5512:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5469:36;;;;;;;;;;-1:-1:-1;5469:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14191:249;;;;;;;;;;;;;:::i;18925:234::-;;;;;;;;;;-1:-1:-1;18925:234:0;;;;;:::i;:::-;;:::i;7756:184::-;;;;;;;;;;-1:-1:-1;7756:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7905:18:0;;;7873:7;7905:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7756:184;19390:173;;;;;;;;;;-1:-1:-1;19390:173:0;;;;;:::i;:::-;;:::i;19879:115::-;;;;;;;;;;-1:-1:-1;19879:115:0;;;;;:::i;:::-;;:::i;1857:244::-;;;;;;;;;;-1:-1:-1;1857:244:0;;;;;:::i;:::-;;:::i;14704:169::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;;;;;;;;;14780:9:::1;14775:91;14799:5;:12;14795:1;:16;14775:91;;;14850:4;14833;:14;14838:5;14844:1;14838:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14833:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14833:14:0;:21;;-1:-1:-1;;14833:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14813:3;::::1;::::0;::::1;:::i;:::-;;;;14775:91;;;;14704:169:::0;:::o;7948:193::-;8050:4;8072:39;326:10;8095:7;8104:6;8072:8;:39::i;:::-;-1:-1:-1;8129:4:0;7948:193;;;;;:::o;8149:446::-;8281:4;8298:36;8308:6;8316:9;8327:6;8298:9;:36::i;:::-;8345:220;8368:6;326:10;8416:138;8472:6;8416:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8416:19:0;;;;;;:11;:19;;;;;;;;326:10;8416:33;;;;;;;;;;:37;:138::i;:::-;8345:8;:220::i;:::-;-1:-1:-1;8583:4:0;8149:446;;;;;:::o;20003:196::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20095:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;:29;;::::0;::::1;;;;20087:65;;;::::0;-1:-1:-1;;;20087:65:0;;10993:2:1;20087:65:0::1;::::0;::::1;10975:21:1::0;11032:2;11012:18;;;11005:30;11071:25;11051:18;;;11044:53;11114:18;;20087:65:0::1;10791:347:1::0;20087:65:0::1;-1:-1:-1::0;;;;;20163:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;-1:-1:-1;;20163:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20003:196::o;14881:92::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14945:12:0::1;14960:5;14945:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;14945:20:0::1;::::0;;14881:92::o;19619:101::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;19686:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19686:26:0::1;-1:-1:-1::0;;;;19686:26:0;;::::1;::::0;;;::::1;::::0;;19619:101::o;14448:248::-;14514:11;;-1:-1:-1;;;;;14514:11:0;326:10;-1:-1:-1;;;;;14498:27:0;;:58;;;-1:-1:-1;14545:11:0;;-1:-1:-1;;;;;14545:11:0;326:10;-1:-1:-1;;;;;14529:27:0;;14498:58;:85;;;-1:-1:-1;1525:7:0;1552:6;-1:-1:-1;;;;;1552:6:0;326:10;14560:23;14498:85;14490:94;;;;;;14624:21;14656:32;14624:21;14656:12;:32::i;:::-;14479:217;14448:248::o;7403:138::-;-1:-1:-1;;;;;7516:16:0;;7469:7;7516:16;;;:7;:16;;;;;;7496:37;;:19;:37::i;1701:148::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;1808:1:::1;1792:6:::0;;1771:40:::1;::::0;-1:-1:-1;;;;;1792:6:0;;::::1;::::0;1771:40:::1;::::0;1808:1;;1771:40:::1;1839:1;1822:19:::0;;-1:-1:-1;;;;;;1822:19:0::1;::::0;;1701:148::o;19759:108::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;19833:12:::1;:26:::0;19759:108::o;14082:101::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;14149:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;14149:26:0::1;-1:-1:-1::0;;;;14149:26:0;;::::1;::::0;;;::::1;::::0;;14082:101::o;19211:139::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;19302:19:::1;:40:::0;19211:139::o;7549:199::-;7654:4;7676:42;326:10;7700:9;7711:6;7676:9;:42::i;18405:508::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;18606:14:::1;:30:::0;;;;18647:15:::1;:32:::0;;;;18700:18:::1;:38:::0;;;;18749:19:::1;:40:::0;18810:18:::1;:38:::0;18859:19:::1;:40:::0;18405:508::o;14191:249::-;14257:11;;-1:-1:-1;;;;;14257:11:0;326:10;-1:-1:-1;;;;;14241:27:0;;:58;;;-1:-1:-1;14288:11:0;;-1:-1:-1;;;;;14288:11:0;326:10;-1:-1:-1;;;;;14272:27:0;;14241:58;:85;;;-1:-1:-1;1525:7:0;1552:6;-1:-1:-1;;;;;1552:6:0;326:10;14303:23;14241:85;14233:94;;;;;;14338:23;14364:24;14382:4;14364:9;:24::i;:::-;14338:50;;14399:33;14416:15;14399:16;:33::i;18925:234::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;19042:9:::1;19038:114;19057:19:::0;;::::1;19038:114;;;19132:8;19098:18;:31;19117:8;;19126:1;19117:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19098:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19098:31:0;:42;;-1:-1:-1;;19098:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19078:3;::::1;::::0;::::1;:::i;:::-;;;;19038:114;;;;18925:234:::0;;;:::o;19390:173::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;19496:11:::1;:24:::0;;-1:-1:-1;;;;;19496:24:0;;::::1;-1:-1:-1::0;;;;;;19496:24:0;;::::1;;::::0;;;19531:11:::1;:24:::0;;;;;::::1;::::0;::::1;;::::0;;19390:173::o;19879:115::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;19956:14:::1;:30:::0;19879:115::o;1857:244::-;1614:6;;-1:-1:-1;;;;;1614:6:0;326:10;1614:22;1606:67;;;;-1:-1:-1;;;1606:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1946:22:0;::::1;1938:73;;;::::0;-1:-1:-1;;;1938:73:0;;9423:2:1;1938:73:0::1;::::0;::::1;9405:21:1::0;9462:2;9442:18;;;9435:30;9501:34;9481:18;;;9474:62;-1:-1:-1;;;9552:18:1;;;9545:36;9598:19;;1938:73:0::1;9221:402:1::0;1938:73:0::1;2048:6;::::0;;2027:38:::1;::::0;-1:-1:-1;;;;;2027:38:0;;::::1;::::0;2048:6;::::1;::::0;2027:38:::1;::::0;::::1;2076:6;:17:::0;;-1:-1:-1;;;;;;2076:17:0::1;-1:-1:-1::0;;;;;2076:17:0;;;::::1;::::0;;;::::1;::::0;;1857:244::o;2132:179::-;2190:7;;2222:5;2226:1;2222;:5;:::i;:::-;2210:17;;2251:1;2246;:6;;2238:46;;;;-1:-1:-1;;;2238:46:0;;10637:2:1;2238:46:0;;;10619:21:1;10676:2;10656:18;;;10649:30;10715:29;10695:18;;;10688:57;10762:18;;2238:46:0;10435:351:1;2238:46:0;2302:1;2132:179;-1:-1:-1;;;2132:179:0:o;2949:132::-;3007:7;3034:39;3038:1;3041;3034:39;;;;;;;;;;;;;;;;;:3;:39::i;2695:246::-;2753:7;2777:6;2773:47;;-1:-1:-1;2807:1:0;2800:8;;2773:47;2830:9;2842:5;2846:1;2842;:5;:::i;:::-;2830:17;-1:-1:-1;2875:1:0;2866:5;2870:1;2830:17;2866:5;:::i;:::-;:10;2858:56;;;;-1:-1:-1;;;2858:56:0;;11345:2:1;2858:56:0;;;11327:21:1;11384:2;11364:18;;;11357:30;11423:34;11403:18;;;11396:62;-1:-1:-1;;;11474:18:1;;;11467:31;11515:19;;2858:56:0;11143:397:1;9298:369:0;-1:-1:-1;;;;;9425:19:0;;9417:68;;;;-1:-1:-1;;;9417:68:0;;13328:2:1;9417:68:0;;;13310:21:1;13367:2;13347:18;;;13340:30;13406:34;13386:18;;;13379:62;-1:-1:-1;;;13457:18:1;;;13450:34;13501:19;;9417:68:0;13126:400:1;9417:68:0;-1:-1:-1;;;;;9504:21:0;;9496:68;;;;-1:-1:-1;;;9496:68:0;;9830:2:1;9496:68:0;;;9812:21:1;9869:2;9849:18;;;9842:30;9908:34;9888:18;;;9881:62;-1:-1:-1;;;9959:18:1;;;9952:32;10001:19;;9496:68:0;9628:398:1;9496:68:0;-1:-1:-1;;;;;9575:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9627:32;;13677:25:1;;;9627:32:0;;13650:18:1;9627:32:0;;;;;;;9298:369;;;:::o;9675:2347::-;-1:-1:-1;;;;;9797:18:0;;9789:68;;;;-1:-1:-1;;;9789:68:0;;12518:2:1;9789:68:0;;;12500:21:1;12557:2;12537:18;;;12530:30;12596:34;12576:18;;;12569:62;-1:-1:-1;;;12647:18:1;;;12640:35;12692:19;;9789:68:0;12316:401:1;9789:68:0;-1:-1:-1;;;;;9876:16:0;;9868:64;;;;-1:-1:-1;;;9868:64:0;;7819:2:1;9868:64:0;;;7801:21:1;7858:2;7838:18;;;7831:30;7897:34;7877:18;;;7870:62;-1:-1:-1;;;7948:18:1;;;7941:33;7991:19;;9868:64:0;7617:399:1;9868:64:0;9960:1;9951:6;:10;9943:64;;;;-1:-1:-1;;;9943:64:0;;12108:2:1;9943:64:0;;;12090:21:1;12147:2;12127:18;;;12120:30;12186:34;12166:18;;;12159:62;-1:-1:-1;;;12237:18:1;;;12230:39;12286:19;;9943:64:0;11906:405:1;9943:64:0;1525:7;1552:6;-1:-1:-1;;;;;10024:15:0;;;1552:6;;10024:15;;;;:32;;-1:-1:-1;1525:7:0;1552:6;-1:-1:-1;;;;;10043:13:0;;;1552:6;;10043:13;;10024:32;:52;;;;-1:-1:-1;;;;;;10061:15:0;;;;;;:9;:15;;;;;;;;10060:16;10024:52;:70;;;;-1:-1:-1;;;;;;10081:13:0;;;;;;:9;:13;;;;;;;;10080:14;10024:70;10020:1161;;;10163:11;;-1:-1:-1;;;10163:11:0;;;;10158:144;;-1:-1:-1;;;;;10203:15:0;;;;;;:9;:15;;;;;;;;10195:91;;;;-1:-1:-1;;;10195:91:0;;8223:2:1;10195:91:0;;;8205:21:1;8262:2;8242:18;;;8235:30;8301:34;8281:18;;;8274:62;8372:33;8352:18;;;8345:61;8423:19;;10195:91:0;8021:427:1;10195:91:0;10350:12;;10340:6;:22;;10332:63;;;;-1:-1:-1;;;10332:63:0;;9066:2:1;10332:63:0;;;9048:21:1;9105:2;9085:18;;;9078:30;9144;9124:18;;;9117:58;9192:18;;10332:63:0;8864:352:1;10332:63:0;-1:-1:-1;;;;;10419:10:0;;;;;;:4;:10;;;;;;;;10418:11;:24;;;;-1:-1:-1;;;;;;10434:8:0;;;;;;:4;:8;;;;;;;;10433:9;10418:24;10410:72;;;;-1:-1:-1;;;10410:72:0;;10233:2:1;10410:72:0;;;10215:21:1;10272:2;10252:18;;;10245:30;10311:34;10291:18;;;10284:62;-1:-1:-1;;;10362:18:1;;;10355:33;10405:19;;10410:72:0;10031:399:1;10410:72:0;10520:13;;-1:-1:-1;;;;;10514:19:0;;;10520:13;;10514:19;10511:146;;10587:14;;10578:6;10562:13;10572:2;10562:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10554:87;;;;-1:-1:-1;;;10554:87:0;;12924:2:1;10554:87:0;;;12906:21:1;12963:2;12943:18;;;12936:30;13002:34;12982:18;;;12975:62;-1:-1:-1;;;13053:18:1;;;13046:33;13096:19;;10554:87:0;12722:399:1;10554:87:0;10685:28;10716:24;10734:4;10716:9;:24::i;:::-;10794:19;;10857:12;;10685:55;;-1:-1:-1;10770:43:0;;;;10833:36;;10830:111;;10913:12;;10890:35;;10830:111;10973:7;:18;;;;-1:-1:-1;10985:6:0;;-1:-1:-1;;;10985:6:0;;;;10984:7;10973:18;:43;;;;-1:-1:-1;11003:13:0;;-1:-1:-1;;;;;10995:21:0;;;11003:13;;10995:21;;10973:43;:58;;;;-1:-1:-1;11020:11:0;;-1:-1:-1;;;11020:11:0;;;;10973:58;:87;;;;-1:-1:-1;;;;;;11036:24:0;;;;;;:18;:24;;;;;;;;11035:25;10973:87;:114;;;;-1:-1:-1;;;;;;11065:22:0;;;;;;:18;:22;;;;;;;;11064:23;10973:114;10969:201;;;11108:46;11133:20;11108:24;:46::i;:::-;10096:1085;;10020:1161;-1:-1:-1;;;;;11265:24:0;;11201:12;11265:24;;;:18;:24;;;;;;11216:4;;11265:24;;;:50;;-1:-1:-1;;;;;;11293:22:0;;;;;;:18;:22;;;;;;;;11265:50;11264:102;;;-1:-1:-1;11329:13:0;;-1:-1:-1;;;;;11321:21:0;;;11329:13;;11321:21;;;;:44;;-1:-1:-1;11352:13:0;;-1:-1:-1;;;;;11346:19:0;;;11352:13;;11346:19;;11321:44;11260:701;;;-1:-1:-1;11393:5:0;11260:701;;;11488:13;;-1:-1:-1;;;;;11480:21:0;;;11488:13;;11480:21;:55;;;;-1:-1:-1;11519:15:0;;-1:-1:-1;;;;;11505:30:0;;;11519:15;;11505:30;;11480:55;11477:201;;;11568:14;;11556:9;:26;11634:18;;11611;;:51;;11658:3;;11611:42;;:22;:42::i;:::-;:46;;:51::i;:::-;11601:7;:61;11477:201;11741:13;;-1:-1:-1;;;;;11735:19:0;;;11741:13;;11735:19;:55;;;;-1:-1:-1;11774:15:0;;-1:-1:-1;;;;;11758:32:0;;;11774:15;;11758:32;;11735:55;11731:205;;;11823:15;;11811:9;:27;11891:19;;11867;;:53;;11916:3;;11867:44;;:23;:44::i;:53::-;11857:7;:63;11731:205;11973:41;11988:4;11994:2;11998:6;12006:7;11973:14;:41::i;2463:224::-;2583:7;2619:12;2611:6;;;;2603:29;;;;-1:-1:-1;;;2603:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2643:9:0;2655:5;2659:1;2655;:5;:::i;:::-;2643:17;2463:224;-1:-1:-1;;;;;2463:224:0:o;13928:146::-;13985:11;;-1:-1:-1;;;;;13985:11:0;:35;14006:13;:6;14017:1;14006:10;:13::i;:::-;13985:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14031:11:0;;-1:-1:-1;;;;;14031:11:0;:35;14052:13;:6;14063:1;14052:10;:13::i;:::-;14031:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8603:323;8698:7;8756;;8745;:18;;8723:110;;;;-1:-1:-1;;;8723:110:0;;8655:2:1;8723:110:0;;;8637:21:1;8694:2;8674:18;;;8667:30;8733:34;8713:18;;;8706:62;-1:-1:-1;;;8784:18:1;;;8777:40;8834:19;;8723:110:0;8453:406:1;8723:110:0;8844:19;8866:10;:8;:10::i;:::-;8844:32;-1:-1:-1;8894:24:0;:7;8844:32;8894:11;:24::i;12030:483::-;6271:6;:13;;-1:-1:-1;;;;6271:13:0;-1:-1:-1;;;6271:13:0;;;12132:16:::1;::::0;;12146:1:::1;12132:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12132:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12132:16:0::1;12108:40;;12177:4;12159;12164:1;12159:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12159:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12203:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12203:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12159:7;;12203:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12193:4;12198:1;12193:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12193:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12268:15:::1;::::0;12236:62:::1;::::0;12253:4:::1;::::0;12268:15:::1;12286:11:::0;12236:8:::1;:62::i;:::-;12309:15;::::0;:196:::1;::::0;-1:-1:-1;;;12309:196:0;;-1:-1:-1;;;;;12309:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12390:11;;12309:15:::1;::::0;12432:4;;12459::::1;::::0;12479:15:::1;::::0;12309:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6307:6:0;:14;;-1:-1:-1;;;;6307:14:0;;;-1:-1:-1;;;;12030:483:0:o;3089:223::-;3209:7;3244:12;3237:5;3229:28;;;;-1:-1:-1;;;3229:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3268:9:0;3280:5;3284:1;3280;:5;:::i;12525:865::-;12596:22;12621:44;12645:19;;12621;;:23;;:44;;;;:::i;:::-;12596:69;;12676:17;12696:26;12720:1;12696:19;;:23;;:26;;;;:::i;:::-;12676:46;;12735:25;12763:66;12814:14;12763:46;12774:34;12798:9;12774:19;;:23;;:34;;;;:::i;:::-;12763:6;;:10;:46::i;:66::-;12735:94;-1:-1:-1;12842:23:0;12868:41;12894:14;12868:21;:6;12879:9;12868:10;:21::i;:41::-;12842:67;-1:-1:-1;12950:21:0;12982:35;12999:17;12982:16;:35::i;:::-;13028:21;13052:44;:21;13078:17;13052:25;:44::i;:::-;13028:68;-1:-1:-1;13109:25:0;13137:73;13180:29;:14;13199:9;13180:18;:29::i;:::-;13155:19;;13137:38;;:13;;:17;:38::i;:73::-;13109:101;-1:-1:-1;13221:18:0;13242:36;:13;13109:101;13242:17;:36::i;:::-;13221:57;;13299:31;13312:17;13299:12;:31::i;:::-;13341:41;13354:15;13371:10;13341:12;:41::i;:::-;12583:807;;;;;;;;12525:865;:::o;14981:282::-;15137:7;15132:28;;15146:14;:12;:14::i;:::-;15171:44;15189:6;15197:9;15208:6;15171:17;:44::i;:::-;15231:7;15226:29;;15240:15;9229:17;;9217:9;:29;9267:15;;9257:7;:25;9173:117;17956:166;17998:7;18019:15;18036;18055:19;:17;:19::i;:::-;18018:56;;-1:-1:-1;18018:56:0;-1:-1:-1;18094:20:0;18018:56;;18094:11;:20::i;:::-;18087:27;;;;17956:166;:::o;2319:136::-;2377:7;2404:43;2408:1;2411;2404:43;;;;;;;;;;;;;;;;;:3;:43::i;13402:518::-;13584:15;;13552:62;;13569:4;;-1:-1:-1;;;;;13584:15:0;13602:11;13552:8;:62::i;:::-;13657:15;;:255;;-1:-1:-1;;;13657:255:0;;13729:4;13657:255;;;6318:34:1;6368:18;;;6361:34;;;13657:15:0;6411:18:1;;;6404:34;;;6454:18;;;6447:34;;;6497:19;;;6490:44;13886:15:0;6550:19:1;;;6543:35;-1:-1:-1;;;;;13657:15:0;;;;:31;;13696:9;;6252:19:1;;13657:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13402:518;;:::o;8934:231::-;8981:9;;:14;:30;;;;-1:-1:-1;8999:7:0;;:12;8981:30;8977:43;;;8934:231::o;8977:43::-;9056:9;;;9036:17;:29;9094:7;;;9076:15;:25;-1:-1:-1;9122:13:0;;;;9146:11;8934:231::o;15271:610::-;15418:15;15448:23;15486:12;15513:23;15551:12;15578:13;15605:19;15616:7;15605:10;:19::i;:::-;-1:-1:-1;;;;;15653:15:0;;;;;;:7;:15;;;;;;15403:221;;-1:-1:-1;15403:221:0;;-1:-1:-1;15403:221:0;;-1:-1:-1;15403:221:0;-1:-1:-1;15403:221:0;-1:-1:-1;15403:221:0;-1:-1:-1;15653:28:0;;15403:221;15653:19;:28::i;:::-;-1:-1:-1;;;;;15635:15:0;;;;;;;:7;:15;;;;;;:46;;;;15713:18;;;;;;;:39;;15736:15;15713:22;:39::i;:::-;-1:-1:-1;;;;;15692:18:0;;;;;;:7;:18;;;;;:60;15763:16;15773:5;15763:9;:16::i;:::-;15790:23;15802:4;15808;15790:11;:23::i;:::-;15846:9;-1:-1:-1;;;;;15829:44:0;15838:6;-1:-1:-1;;;;;15829:44:0;;15857:15;15829:44;;;;13677:25:1;;13665:2;13650:18;;13531:177;15829:44:0;;;;;;;;15392:489;;;;;;15271:610;;;:::o;18130:263::-;18228:7;;18181;;;;4720:19;18296:20;18228:7;4720:19;18296:11;:20::i;:::-;18286:7;:30;18282:61;;;-1:-1:-1;;18326:7:0;;;4720:19;;-1:-1:-1;18130:263:0;-1:-1:-1;18130:263:0:o;18282:61::-;18368:7;;18377;;-1:-1:-1;18130:263:0;-1:-1:-1;18130:263:0:o;16300:625::-;16400:7;16422;16444;16466;16488;16510;16546:23;16571:12;16585:13;16615:40;16627:7;16636:9;;16647:7;;16615:11;:40::i;:::-;16545:110;;;;;;16666:19;16688:10;:8;:10::i;:::-;16666:32;;16710:15;16727:23;16752:12;16781:46;16793:7;16802:4;16808:5;16815:11;16781;:46::i;:::-;16709:118;;-1:-1:-1;16709:118:0;-1:-1:-1;16709:118:0;-1:-1:-1;16888:15:0;;-1:-1:-1;16905:4:0;;-1:-1:-1;16911:5:0;;-1:-1:-1;;;;;16300:625:0;;;;;;;:::o;15889:211::-;15942:19;15964:10;:8;:10::i;:::-;15942:32;-1:-1:-1;15985:13:0;16001:22;:5;15942:32;16001:9;:22::i;:::-;16075:4;16059:22;;;;:7;:22;;;;;;15985:38;;-1:-1:-1;16059:33:0;;15985:38;16059:26;:33::i;:::-;16050:4;16034:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15889:211:0:o;16108:147::-;16186:7;;:17;;16198:4;16186:11;:17::i;:::-;16176:7;:27;16227:10;;:20;;16242:4;16227:14;:20::i;:::-;16214:10;:33;-1:-1:-1;;16108:147:0:o;16933:471::-;17102:7;;;;17196:30;17222:3;17196:21;:7;17208:8;17196:11;:21::i;:30::-;17181:45;-1:-1:-1;17237:13:0;17253:28;17277:3;17253:19;:7;17265:6;17253:11;:19::i;:28::-;17237:44;-1:-1:-1;17292:23:0;17318:28;17237:44;17318:17;:7;17330:4;17318:11;:17::i;:::-;:21;;:28::i;:::-;17292:54;17384:4;;-1:-1:-1;17390:5:0;;-1:-1:-1;16933:471:0;;-1:-1:-1;;;;;16933:471:0:o;17412:536::-;17606:7;;;;17703:24;:7;17715:11;17703;:24::i;:::-;17685:42;-1:-1:-1;17738:12:0;17753:21;:4;17762:11;17753:8;:21::i;:::-;17738:36;-1:-1:-1;17785:13:0;17801:22;:5;17811:11;17801:9;:22::i;:::-;17785:38;-1:-1:-1;17834:23:0;17860:28;17785:38;17860:17;:7;17872:4;17860:11;:17::i;:28::-;17909:7;;;;-1:-1:-1;17935:4:0;;-1:-1:-1;17412:536:0;;-1:-1:-1;;;;;;;17412: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;826:404::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;-1:-1:-1;1152:2:1;1137:18;;1124:32;1165:33;1124:32;1165:33;:::i;:::-;1217:7;1207:17;;;826:404;;;;;:::o;1628:456::-;1705:6;1713;1721;1774:2;1762:9;1753:7;1749:23;1745:32;1742:52;;;1790:1;1787;1780:12;1742:52;1829:9;1816:23;1848:31;1873:5;1848:31;:::i;:::-;1898:5;-1:-1:-1;1955:2:1;1940:18;;1927:32;1968:33;1927:32;1968:33;:::i;:::-;1628:456;;2020:7;;-1:-1:-1;;;2074:2:1;2059:18;;;;2046:32;;1628:456::o;2089:315::-;2154:6;2162;2215:2;2203:9;2194:7;2190:23;2186:32;2183:52;;;2231:1;2228;2221:12;2183:52;2270:9;2257:23;2289:31;2314:5;2289:31;:::i;:::-;2339:5;-1:-1:-1;2363:35:1;2394:2;2379:18;;2363:35;:::i;:::-;2353:45;;2089:315;;;;;:::o;2409:::-;2477:6;2485;2538:2;2526:9;2517:7;2513:23;2509:32;2506:52;;;2554:1;2551;2544:12;2506:52;2593:9;2580:23;2612:31;2637:5;2612:31;:::i;:::-;2662:5;2714:2;2699:18;;;;2686:32;;-1:-1:-1;;;2409:315:1:o;2729:689::-;2821:6;2829;2837;2890:2;2878:9;2869:7;2865:23;2861:32;2858:52;;;2906:1;2903;2896:12;2858:52;2946:9;2933:23;2975:18;3016:2;3008:6;3005:14;3002:34;;;3032:1;3029;3022:12;3002:34;3070:6;3059:9;3055:22;3045:32;;3115:7;3108:4;3104:2;3100:13;3096:27;3086:55;;3137:1;3134;3127:12;3086:55;3177:2;3164:16;3203:2;3195:6;3192:14;3189:34;;;3219:1;3216;3209:12;3189:34;3274:7;3267:4;3257:6;3254:1;3250:14;3246:2;3242:23;3238:34;3235:47;3232:67;;;3295:1;3292;3285:12;3232:67;3326:4;3318:13;;;;-1:-1:-1;3350:6:1;-1:-1:-1;3375:37:1;;3391:20;;;-1:-1:-1;3375:37:1;:::i;:::-;3365:47;;2729:689;;;;;:::o;3423:1132::-;3507:6;3538:2;3581;3569:9;3560:7;3556:23;3552:32;3549:52;;;3597:1;3594;3587:12;3549:52;3637:9;3624:23;3666:18;3707:2;3699:6;3696:14;3693:34;;;3723:1;3720;3713:12;3693:34;3761:6;3750:9;3746:22;3736:32;;3806:7;3799:4;3795:2;3791:13;3787:27;3777:55;;3828:1;3825;3818:12;3777:55;3864:2;3851:16;3886:2;3882;3879:10;3876:36;;;3892:18;;:::i;:::-;3938:2;3935:1;3931:10;3970:2;3964:9;4033:2;4029:7;4024:2;4020;4016:11;4012:25;4004:6;4000:38;4088:6;4076:10;4073:22;4068:2;4056:10;4053:18;4050:46;4047:72;;;4099:18;;:::i;:::-;4135:2;4128:22;4185:18;;;4219:15;;;;-1:-1:-1;4254:11:1;;;4284;;;4280:20;;4277:33;-1:-1:-1;4274:53:1;;;4323:1;4320;4313:12;4274:53;4345:1;4336:10;;4355:169;4369:2;4366:1;4363:9;4355:169;;;4426:23;4445:3;4426:23;:::i;:::-;4414:36;;4387:1;4380:9;;;;;4470:12;;;;4502;;4355:169;;;-1:-1:-1;4543:6:1;3423:1132;-1:-1:-1;;;;;;;;3423:1132:1:o;4560:180::-;4616:6;4669:2;4657:9;4648:7;4644:23;4640:32;4637:52;;;4685:1;4682;4675:12;4637:52;4708:26;4724:9;4708:26;:::i;4745:180::-;4804:6;4857:2;4845:9;4836:7;4832:23;4828:32;4825:52;;;4873:1;4870;4863:12;4825:52;-1:-1:-1;4896:23:1;;4745:180;-1:-1:-1;4745:180:1:o;4930:306::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5132:9;5126:16;5116:26;;5182:2;5171:9;5167:18;5161:25;5151:35;;5226:2;5215:9;5211:18;5205:25;5195:35;;4930:306;;;;;:::o;5241:523::-;5345:6;5353;5361;5369;5377;5385;5438:3;5426:9;5417:7;5413:23;5409:33;5406:53;;;5455:1;5452;5445:12;5406:53;-1:-1:-1;;5478:23:1;;;5548:2;5533:18;;5520:32;;-1:-1:-1;5599:2:1;5584:18;;5571:32;;5650:2;5635:18;;5622:32;;-1:-1:-1;5701:3:1;5686:19;;5673:33;;-1:-1:-1;5753:3:1;5738:19;5725:33;;-1:-1:-1;5241:523:1;-1:-1:-1;5241:523:1:o;7015:597::-;7127:4;7156:2;7185;7174:9;7167:21;7217:6;7211:13;7260:6;7255:2;7244:9;7240:18;7233:34;7285:1;7295:140;7309:6;7306:1;7303:13;7295:140;;;7404:14;;;7400:23;;7394:30;7370:17;;;7389:2;7366:26;7359:66;7324:10;;7295:140;;;7453:6;7450:1;7447:13;7444:91;;;7523:1;7518:2;7509:6;7498:9;7494:22;7490:31;7483:42;7444:91;-1:-1:-1;7596:2:1;7575:15;-1:-1:-1;;7571:29:1;7556:45;;;;7603:2;7552:54;;7015:597;-1:-1:-1;;;7015:597:1:o;11545:356::-;11747:2;11729:21;;;11766:18;;;11759:30;11825:34;11820:2;11805:18;;11798:62;11892:2;11877:18;;11545:356::o;13713:980::-;13975:4;14023:3;14012:9;14008:19;14054:6;14043:9;14036:25;14080:2;14118:6;14113:2;14102:9;14098:18;14091:34;14161:3;14156:2;14145:9;14141:18;14134:31;14185:6;14220;14214:13;14251:6;14243;14236:22;14289:3;14278:9;14274:19;14267:26;;14328:2;14320:6;14316:15;14302:29;;14349:1;14359:195;14373:6;14370:1;14367:13;14359:195;;;14438:13;;-1:-1:-1;;;;;14434:39:1;14422:52;;14529:15;;;;14494:12;;;;14470:1;14388:9;14359:195;;;-1:-1:-1;;;;;;;14610:32:1;;;;14605:2;14590:18;;14583:60;-1:-1:-1;;;14674:3:1;14659:19;14652:35;14571:3;13713:980;-1:-1:-1;;;13713:980:1:o;14887:128::-;14927:3;14958:1;14954:6;14951:1;14948:13;14945:39;;;14964:18;;:::i;:::-;-1:-1:-1;15000:9:1;;14887:128::o;15020:217::-;15060:1;15086;15076:132;;15130:10;15125:3;15121:20;15118:1;15111:31;15165:4;15162:1;15155:15;15193:4;15190:1;15183:15;15076:132;-1:-1:-1;15222:9:1;;15020:217::o;15242:168::-;15282:7;15348:1;15344;15340:6;15336:14;15333:1;15330:21;15325:1;15318:9;15311:17;15307:45;15304:71;;;15355:18;;:::i;:::-;-1:-1:-1;15395:9:1;;15242:168::o;15415:125::-;15455:4;15483:1;15480;15477:8;15474:34;;;15488:18;;:::i;:::-;-1:-1:-1;15525:9:1;;15415:125::o;15545:135::-;15584:3;-1:-1:-1;;15605:17:1;;15602:43;;;15625:18;;:::i;:::-;-1:-1:-1;15672:1:1;15661:13;;15545:135::o;15685:127::-;15746:10;15741:3;15737:20;15734:1;15727:31;15777:4;15774:1;15767:15;15801:4;15798:1;15791:15;15817:127;15878:10;15873:3;15869:20;15866:1;15859:31;15909:4;15906:1;15899:15;15933:4;15930:1;15923:15;15949:127;16010:10;16005:3;16001:20;15998:1;15991:31;16041:4;16038:1;16031:15;16065:4;16062:1;16055:15;16081:131;-1:-1:-1;;;;;16156:31:1;;16146:42;;16136:70;;16202:1;16199;16192:12

Swarm Source

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