ETH Price: $2,625.88 (+7.86%)
Gas: 12.6 Gwei
 

Overview

Max Total Supply

666,666,666 Εωσφόρος

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
482,769.560837885 Εωσφόρος

Value
$0.00
0x23873a6B44CF6836129a0d2BFe6f76d57cAc8CDB
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:
Lucifer

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-12
*/

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

/* 
WEBSİTE : https://lucifererc.com

TWİTTER : https://twitter.com/LucifErc20

TELEGRAM: https://t.me/LuciferErc20
**/
//⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀  ⠀⢀⣴⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⠀⠀⠀⠀⣺⣷⠙⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀  ⠀⢠⠏⣼⣖⠀⠀⠀⠀⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⠀⠀⣠⠟⣛⠼⠓⠿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀   ⠀⢠⠿⠞⠧⣜⠻⣅⠀⠀⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⣠⣾⡷⠋⢀⣤⢄⠀⠘⡆⠀⠀⠀⠀    Lucifer⠀⠀⠀⠀⠀⠀⠀  ⠀⢠⠏⠀⡠⣤⡄⠑⢾⣷⣄⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⢀⣿⠟⠀⡄⡻⠇⠀⢡⠀⢹⡀⠀⠀⠀  ↜(͛𖤐෴𖤐)͛ψ⠀⠀⠀⠀  ⠀⠀⡞⠀⡀⠀⠺⢿⢢⡀⠻⡻⡄⠀⠀⠀⠀
//⠀⠀⠀⣠⢋⠎⠀⡼⠀⡇⠀⠂⡀⠁⡀⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀  ⢀⡼⢀⠌⢀⠑⠦⢸⠀⣧⠀⠱⡜⢆⠀⠀⠀
//⠀⠀⡰⠁⡞⠀⣼⡃⠀⣧⡄⠚⢷⡄⠈⠀⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀  ⣠⠾⠗⠁⢰⣾⠟⢀⣼⡀⢸⣷⠀⢱⠈⢧⠀⠀
//⠀⡸⠁⣸⠁⢠⠇⡅⢰⣿⢡⡇⠀⠻⣿⣦⡰⢌⡑⠢⢤⣤⡀⠀⠀⠀⠀  ⢀⣤⣤⠴⢊⡡⢆⢴⣿⠟⠀⢸⡄⣿⡇⢸⠘⡄⠀⢧⠈⢧⠀
//⢀⣇⠴⡇⠀⢸⠀⡇⢸⢿⣏⣧⡇⠀⠙⠛⠿⢦⣬⡓⢄⣉⠛⣄⠀⠀  ⣠⠞⢋⡠⢒⣉⣴⡿⠛⠃⠀⢸⣾⣿⡿⡇⢰⠀⢇⠀⠸⠧⣘⡆
//⠘⠁⢸⠀⠀⡇⢴⠁⠈⡆⢻⣿⣦⡀⣷⣰⡤⠈⠛⢻⣴⣿⡿⠛⠃  ⠘⠛⢿⣷⣶⡿⠛⡁⢴⣶⣿⢀⣾⣿⡟⢀⠃⢸⣄⢸⠀⠀⠇⠈⠃
//⠀⠀⡄⠀⢸⠁⢸⡇⠀⡇⠀⢻⠻⠿⠿⣿⣡⣿⣶⣶⢈⡌⡅⣶⣆ ⢰⣶⢨⠰⡉⣷⣦⣻⣾⣿⠿⠿⠟⡻⠀⢸⠀⢸⡇⠀⡇⠀⢸⠀⠀
//⠀⠀⡇⢀⠇⠀⠈⣇⠀⢹⠀⠀⣆⠀⡄⠀⣨⠿⠿⢿⣿⣷⣆⣽⠃  ⠘⣿⣴⣴⣿⡿⠿⠿⢇⠀⢠⢄⣰⠃⠀⡎⠀⣸⠁⠀⠸⡀⢸⠀⠀
//⠀⠀⣇⣼⠀⠀⠀⣿⠀⠈⡄⠀⠸⡄⠃⠰⠁⠀⣴⡾⠘⣿⠛⠟⠀⠀  ⠻⠿⣿⡇⢷⣤⣄⠈⢇⢸⢀⠇⠀⢀⠃⠀⣿⠀⠀⠀⣧⣸⡇⠀
//⠀⠀⡿⢹⠀⠀⠀⡿⡇⠀⢡⠀⠀⢹⣗⣿⢠⣿⣿⡇⠀⡇⠀⠀⠀⠀⠀⠀⢸⠁⢸⣿⣼⡄⣺⢾⡟⠀⠀⡜⠀⢰⢿⠀⠀⠀⡟⠻⠇⠀
//⠀⠀⠀⠘⡆⠀⠀⠁⠸⠀⠀⡆⠀⠈⢿⠹⠛⠛⠿⣷⣀⡇⠀⠀⠀⠀⠀⠀⢸⡄⣼⠿⠏⠛⠟⡿⠁⠀⢰⠁⠀⡎⢸⠀⠀⠀⡇⠀⠀⠀
//⠀⠀⠀⠀⡇⠀⠀⠀⠀⢧⠀⠸⡀⠀⠈⢇⠀⠀⠀⠙⣿⡁⠀⠀⠀⠀⠀⠀⠀⣿⠏⠀⠀⠀⣰⠃⠀⢀⠏⠀⡸⠀⢸⠀⠀⢸⠁⠀⠀⠀
//⠀⠀⠀⠀⣧⠀⠀⠆⠀⠘⡆⠀⢣⠀⠀⠘⡆⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⢠⠇⠀⠀⡼⠀⢰⠃⠀⢸⠀⠀⣸⠀⠀⠀⠀
//⠀⠀⠀⠀⢹⠀⠀⡇⠀⠀⠸⡄⠈⡆⠀⠀⢻⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡟⠀⠀⢠⠃⢀⠏⠀⠀⢸⠀⠀⡏⠀⠀⠀⠀
//⠀⠀⠀⠀⠈⣆⢸⣧⠀⠀⠀⠱⡀⠸⡄⠀⠘⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⢀⠇⠀⡞⠀⠀⠀⣼⡇⢰⠃⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⠘⣾⠈⢧⠀⠀⠀⢡⠀⠹⣄⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⢠⡎⠀⡜⠀⠀⠀⡰⠁⣧⠏⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⠀⠉⠀⠈⢣⡀⠀⠀⢇⠀⢻⣦⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣇⡰⡿⠀⠰⠁⠀⢀⡜⠁⠀⠉⠀⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡄⠀⠸⡄⠈⡆⠙⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠛⢡⠁⢀⠇⠀⢠⠞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣆⠀⢣⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡎⠀⡜⠀⣠⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠘⡟⠲⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠗⢺⠃⡰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢧⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡴⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
//⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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 Lucifer is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Lucifer";
    string private constant _symbol =unicode"Εωσφόρος";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 666666666 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _MFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _MFeeOnSell = 25;
    uint256 private _taxFeeOnSell = 25;

    //Original Fee
    uint256 private _MFee = _MFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousMFee = _MFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0x94F4744294934130e13FFDd74FfA9344Ea609C2A);
    address payable private _marketingAddress = payable(0x94F4744294934130e13FFDd74FfA9344Ea609C2A);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _swapTokensAtAmount = _tTotal / 1000;

    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[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 (_MFee == 0 && _taxFee == 0) return;

        _previousMFee = _MFee;
        _previoustaxFee = _taxFee;

        _MFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _MFee = _previousMFee;
        _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()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "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 >= _swapTokensAtAmount*8)
            {
                contractTokenBalance = _swapTokensAtAmount*8;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 80000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        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)) {
                _MFee = _MFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _MFee = _MFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

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

    function manualsend() external {
        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, _MFee, _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 MFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(MFee).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 MFeeOnBuy, uint256 MFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _MFeeOnBuy = MFeeOnBuy;
        _MFeeOnSell = MFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        uint256 totalFee = _MFeeOnBuy+_MFeeOnSell+_taxFeeOnBuy+_taxFeeOnSell;
        require (totalFee <= 25,"Total Fees cannot be more than 25%");
    }

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

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = _tTotal*maxTxAmount/100;
        require (_maxTxAmount>= _tTotal/100);
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = _tTotal*maxWalletSize/100;
        require (_maxWalletSize>= _tTotal/100);
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

     function updateMarketingAddress(address _newmarketingAddress) public onlyOwner {
        _marketingAddress = payable(_newmarketingAddress);
    }


}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"MFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"MFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","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":[],"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"},{"inputs":[{"internalType":"address","name":"_newmarketingAddress","type":"address"}],"name":"updateMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a67094079ccf2862400600019620003d3565b620000289060001962000400565b600655600060088190556009556019600a819055600b819055600c819055600d819055600e819055600f55601280547394f4744294934130e13ffdd74ffa9344ea609c2a6001600160a01b031991821681179092556013805490911690911790556015805462ffffff60a01b19166201000160a01b17905567094079ccf28624006016819055606490620000be9060026200041a565b620000ca91906200043c565b601755620000e36103e867094079ccf28624006200043c565b601855348015620000f357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b158015620001ac57600080fd5b505afa158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e7919062000453565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023057600080fd5b505afa15801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b919062000453565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002b457600080fd5b505af1158015620002c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ef919062000453565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67094079ccf2862400604051620003ae91815260200190565b60405180910390a35062000485565b634e487b7160e01b600052601260045260246000fd5b600082620003e557620003e5620003bd565b500690565b634e487b7160e01b600052601160045260246000fd5b600082821015620004155762000415620003ea565b500390565b6000816000190483118215151615620004375762000437620003ea565b500290565b6000826200044e576200044e620003bd565b500490565b6000602082840312156200046657600080fd5b81516001600160a01b03811681146200047e57600080fd5b9392505050565b611efc80620004956000396000f3fe6080604052600436106101d05760003560e01c806374010ece116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461055e578063dd62ed3e1461057e578063ea1644d5146105c4578063f2fde38b146105e457600080fd5b8063a2a957bb146104d9578063a9059cbb146104f9578063bfd7928414610519578063c3c8cd801461054957600080fd5b80638da5cb5b116100d15780638da5cb5b1461044c5780638f9a55c01461046a57806395d89b411461048057806398a5c315146104b957600080fd5b806374010ece146103e95780637d1db4a5146104095780637f2feddc1461041f57600080fd5b80632fd689e31161016f5780636d8aa8f81161013e5780636d8aa8f81461037f5780636fc3eaec1461039f57806370a08231146103b4578063715018a6146103d457600080fd5b80632fd689e31461030d578063313ce5671461032357806349bd5a5e1461033f5780636b9990531461035f57600080fd5b80631694505e116101ab5780631694505e1461027057806318160ddd146102a85780632369bf83146102cd57806323b872dd146102ed57600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024057600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611a4d565b610604565b005b34801561020a57600080fd5b50604080518082019091526007815266263ab1b4b332b960c91b60208201525b6040516102379190611b12565b60405180910390f35b34801561024c57600080fd5b5061026061025b366004611b67565b6106a3565b6040519015158152602001610237565b34801561027c57600080fd5b50601454610290906001600160a01b031681565b6040516001600160a01b039091168152602001610237565b3480156102b457600080fd5b5067094079ccf28624005b604051908152602001610237565b3480156102d957600080fd5b506101fc6102e8366004611b93565b6106ba565b3480156102f957600080fd5b50610260610308366004611bb0565b610706565b34801561031957600080fd5b506102bf60185481565b34801561032f57600080fd5b5060405160098152602001610237565b34801561034b57600080fd5b50601554610290906001600160a01b031681565b34801561036b57600080fd5b506101fc61037a366004611b93565b61076f565b34801561038b57600080fd5b506101fc61039a366004611c01565b6107ba565b3480156103ab57600080fd5b506101fc610802565b3480156103c057600080fd5b506102bf6103cf366004611b93565b61080f565b3480156103e057600080fd5b506101fc610831565b3480156103f557600080fd5b506101fc610404366004611c1c565b6108a5565b34801561041557600080fd5b506102bf60165481565b34801561042b57600080fd5b506102bf61043a366004611b93565b60116020526000908152604090205481565b34801561045857600080fd5b506000546001600160a01b0316610290565b34801561047657600080fd5b506102bf60175481565b34801561048c57600080fd5b5060408051808201909152601081526f674ae7c4e7c1e7c367c667c0e75fe7c160811b602082015261022a565b3480156104c557600080fd5b506101fc6104d4366004611c1c565b610911565b3480156104e557600080fd5b506101fc6104f4366004611c35565b610940565b34801561050557600080fd5b50610260610514366004611b67565b610a05565b34801561052557600080fd5b50610260610534366004611b93565b60106020526000908152604090205460ff1681565b34801561055557600080fd5b506101fc610a12565b34801561056a57600080fd5b506101fc610579366004611c67565b610a66565b34801561058a57600080fd5b506102bf610599366004611ceb565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105d057600080fd5b506101fc6105df366004611c1c565b610b07565b3480156105f057600080fd5b506101fc6105ff366004611b93565b610b73565b6000546001600160a01b031633146106375760405162461bcd60e51b815260040161062e90611d24565b60405180910390fd5b60005b815181101561069f5760016010600084848151811061065b5761065b611d59565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069781611d85565b91505061063a565b5050565b60006106b0338484610c5d565b5060015b92915050565b6000546001600160a01b031633146106e45760405162461bcd60e51b815260040161062e90611d24565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000610713848484610d81565b610765843361076085604051806060016040528060288152602001611e9f602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906112db565b610c5d565b5060019392505050565b6000546001600160a01b031633146107995760405162461bcd60e51b815260040161062e90611d24565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107e45760405162461bcd60e51b815260040161062e90611d24565b60158054911515600160b01b0260ff60b01b19909216919091179055565b4761080c81611315565b50565b6001600160a01b0381166000908152600260205260408120546106b49061134f565b6000546001600160a01b0316331461085b5760405162461bcd60e51b815260040161062e90611d24565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b815260040161062e90611d24565b60646108e38267094079ccf2862400611da0565b6108ed9190611dbf565b601655610903606467094079ccf2862400611dbf565b601654101561080c57600080fd5b6000546001600160a01b0316331461093b5760405162461bcd60e51b815260040161062e90611d24565b601855565b6000546001600160a01b0316331461096a5760405162461bcd60e51b815260040161062e90611d24565b6008849055600a8390556009829055600b8190556000818361098c8688611de1565b6109969190611de1565b6109a09190611de1565b905060198111156109fe5760405162461bcd60e51b815260206004820152602260248201527f546f74616c20466565732063616e6e6f74206265206d6f7265207468616e2032604482015261352560f01b606482015260840161062e565b5050505050565b60006106b0338484610d81565b6012546001600160a01b0316336001600160a01b03161480610a4757506013546001600160a01b0316336001600160a01b0316145b610a5057600080fd5b6000610a5b3061080f565b905061080c816113d3565b6000546001600160a01b03163314610a905760405162461bcd60e51b815260040161062e90611d24565b60005b82811015610b01578160056000868685818110610ab257610ab2611d59565b9050602002016020810190610ac79190611b93565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610af981611d85565b915050610a93565b50505050565b6000546001600160a01b03163314610b315760405162461bcd60e51b815260040161062e90611d24565b6064610b458267094079ccf2862400611da0565b610b4f9190611dbf565b601755610b65606467094079ccf2862400611dbf565b601754101561080c57600080fd5b6000546001600160a01b03163314610b9d5760405162461bcd60e51b815260040161062e90611d24565b6001600160a01b038116610c025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161062e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610cbf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161062e565b6001600160a01b038216610d205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161062e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610de55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161062e565b6001600160a01b038216610e475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161062e565b60008111610ea95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161062e565b6000546001600160a01b03848116911614801590610ed557506000546001600160a01b03838116911614155b156111d457601554600160a01b900460ff16610f6e576000546001600160a01b03848116911614610f6e5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161062e565b601654811115610fc05760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161062e565b6001600160a01b03831660009081526010602052604090205460ff1615801561100257506001600160a01b03821660009081526010602052604090205460ff16155b61105a5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161062e565b6015546001600160a01b038381169116146110df576017548161107c8461080f565b6110869190611de1565b106110df5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161062e565b60006110ea3061080f565b6018549091508082101590611100906008611da0565b821061111757601854611114906008611da0565b91505b80801561112e5750601554600160a81b900460ff16155b801561114857506015546001600160a01b03868116911614155b801561115d5750601554600160b01b900460ff165b801561118257506001600160a01b03851660009081526005602052604090205460ff16155b80156111a757506001600160a01b03841660009081526005602052604090205460ff16155b156111d1576111b5826113d3565b4767011c37937e0800008111156111cf576111cf47611315565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061121657506001600160a01b03831660009081526005602052604090205460ff165b8061124857506015546001600160a01b0385811691161480159061124857506015546001600160a01b03848116911614155b15611255575060006112cf565b6015546001600160a01b03858116911614801561128057506014546001600160a01b03848116911614155b1561129257600854600c55600954600d555b6015546001600160a01b0384811691161480156112bd57506014546001600160a01b03858116911614155b156112cf57600a54600c55600b54600d555b610b018484848461155c565b600081848411156112ff5760405162461bcd60e51b815260040161062e9190611b12565b50600061130c8486611df9565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561069f573d6000803e3d6000fd5b60006006548211156113b65760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161062e565b60006113c061158a565b90506113cc83826115ad565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061141b5761141b611d59565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561146f57600080fd5b505afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190611e10565b816001815181106114ba576114ba611d59565b6001600160a01b0392831660209182029290920101526014546114e09130911684610c5d565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611519908590600090869030904290600401611e2d565b600060405180830381600087803b15801561153357600080fd5b505af1158015611547573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b80611569576115696115ef565b61157484848461161d565b80610b0157610b01600e54600c55600f54600d55565b6000806000611597611714565b90925090506115a682826115ad565b9250505090565b60006113cc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611754565b600c541580156115ff5750600d54155b1561160657565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061162f87611782565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061166190876117df565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546116909086611821565b6001600160a01b0389166000908152600260205260409020556116b281611880565b6116bc84836118ca565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161170191815260200190565b60405180910390a3505050505050505050565b600654600090819067094079ccf286240061172f82826115ad565b82101561174b5750506006549267094079ccf286240092509050565b90939092509050565b600081836117755760405162461bcd60e51b815260040161062e9190611b12565b50600061130c8486611dbf565b600080600080600080600080600061179f8a600c54600d546118ee565b92509250925060006117af61158a565b905060008060006117c28e878787611943565b919e509c509a509598509396509194505050505091939550919395565b60006113cc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112db565b60008061182e8385611de1565b9050838110156113cc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161062e565b600061188a61158a565b905060006118988383611993565b306000908152600260205260409020549091506118b59082611821565b30600090815260026020526040902055505050565b6006546118d790836117df565b6006556007546118e79082611821565b6007555050565b600080808061190860646119028989611993565b906115ad565b9050600061191b60646119028a89611993565b905060006119338261192d8b866117df565b906117df565b9992985090965090945050505050565b60008080806119528886611993565b905060006119608887611993565b9050600061196e8888611993565b905060006119808261192d86866117df565b939b939a50919850919650505050505050565b6000826119a2575060006106b4565b60006119ae8385611da0565b9050826119bb8583611dbf565b146113cc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161062e565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461080c57600080fd5b8035611a4881611a28565b919050565b60006020808385031215611a6057600080fd5b823567ffffffffffffffff80821115611a7857600080fd5b818501915085601f830112611a8c57600080fd5b813581811115611a9e57611a9e611a12565b8060051b604051601f19603f83011681018181108582111715611ac357611ac3611a12565b604052918252848201925083810185019188831115611ae157600080fd5b938501935b82851015611b0657611af785611a3d565b84529385019392850192611ae6565b98975050505050505050565b600060208083528351808285015260005b81811015611b3f57858101830151858201604001528201611b23565b81811115611b51576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611b7a57600080fd5b8235611b8581611a28565b946020939093013593505050565b600060208284031215611ba557600080fd5b81356113cc81611a28565b600080600060608486031215611bc557600080fd5b8335611bd081611a28565b92506020840135611be081611a28565b929592945050506040919091013590565b80358015158114611a4857600080fd5b600060208284031215611c1357600080fd5b6113cc82611bf1565b600060208284031215611c2e57600080fd5b5035919050565b60008060008060808587031215611c4b57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611c7c57600080fd5b833567ffffffffffffffff80821115611c9457600080fd5b818601915086601f830112611ca857600080fd5b813581811115611cb757600080fd5b8760208260051b8501011115611ccc57600080fd5b602092830195509350611ce29186019050611bf1565b90509250925092565b60008060408385031215611cfe57600080fd5b8235611d0981611a28565b91506020830135611d1981611a28565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611d9957611d99611d6f565b5060010190565b6000816000190483118215151615611dba57611dba611d6f565b500290565b600082611ddc57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611df457611df4611d6f565b500190565b600082821015611e0b57611e0b611d6f565b500390565b600060208284031215611e2257600080fd5b81516113cc81611a28565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e7d5784516001600160a01b031683529383019391830191600101611e58565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c9ed2f15f10ba3734948c15bc79d12246e3a6a6e81840243500b042b7a5555f64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c806374010ece116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461055e578063dd62ed3e1461057e578063ea1644d5146105c4578063f2fde38b146105e457600080fd5b8063a2a957bb146104d9578063a9059cbb146104f9578063bfd7928414610519578063c3c8cd801461054957600080fd5b80638da5cb5b116100d15780638da5cb5b1461044c5780638f9a55c01461046a57806395d89b411461048057806398a5c315146104b957600080fd5b806374010ece146103e95780637d1db4a5146104095780637f2feddc1461041f57600080fd5b80632fd689e31161016f5780636d8aa8f81161013e5780636d8aa8f81461037f5780636fc3eaec1461039f57806370a08231146103b4578063715018a6146103d457600080fd5b80632fd689e31461030d578063313ce5671461032357806349bd5a5e1461033f5780636b9990531461035f57600080fd5b80631694505e116101ab5780631694505e1461027057806318160ddd146102a85780632369bf83146102cd57806323b872dd146102ed57600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024057600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611a4d565b610604565b005b34801561020a57600080fd5b50604080518082019091526007815266263ab1b4b332b960c91b60208201525b6040516102379190611b12565b60405180910390f35b34801561024c57600080fd5b5061026061025b366004611b67565b6106a3565b6040519015158152602001610237565b34801561027c57600080fd5b50601454610290906001600160a01b031681565b6040516001600160a01b039091168152602001610237565b3480156102b457600080fd5b5067094079ccf28624005b604051908152602001610237565b3480156102d957600080fd5b506101fc6102e8366004611b93565b6106ba565b3480156102f957600080fd5b50610260610308366004611bb0565b610706565b34801561031957600080fd5b506102bf60185481565b34801561032f57600080fd5b5060405160098152602001610237565b34801561034b57600080fd5b50601554610290906001600160a01b031681565b34801561036b57600080fd5b506101fc61037a366004611b93565b61076f565b34801561038b57600080fd5b506101fc61039a366004611c01565b6107ba565b3480156103ab57600080fd5b506101fc610802565b3480156103c057600080fd5b506102bf6103cf366004611b93565b61080f565b3480156103e057600080fd5b506101fc610831565b3480156103f557600080fd5b506101fc610404366004611c1c565b6108a5565b34801561041557600080fd5b506102bf60165481565b34801561042b57600080fd5b506102bf61043a366004611b93565b60116020526000908152604090205481565b34801561045857600080fd5b506000546001600160a01b0316610290565b34801561047657600080fd5b506102bf60175481565b34801561048c57600080fd5b5060408051808201909152601081526f674ae7c4e7c1e7c367c667c0e75fe7c160811b602082015261022a565b3480156104c557600080fd5b506101fc6104d4366004611c1c565b610911565b3480156104e557600080fd5b506101fc6104f4366004611c35565b610940565b34801561050557600080fd5b50610260610514366004611b67565b610a05565b34801561052557600080fd5b50610260610534366004611b93565b60106020526000908152604090205460ff1681565b34801561055557600080fd5b506101fc610a12565b34801561056a57600080fd5b506101fc610579366004611c67565b610a66565b34801561058a57600080fd5b506102bf610599366004611ceb565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105d057600080fd5b506101fc6105df366004611c1c565b610b07565b3480156105f057600080fd5b506101fc6105ff366004611b93565b610b73565b6000546001600160a01b031633146106375760405162461bcd60e51b815260040161062e90611d24565b60405180910390fd5b60005b815181101561069f5760016010600084848151811061065b5761065b611d59565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069781611d85565b91505061063a565b5050565b60006106b0338484610c5d565b5060015b92915050565b6000546001600160a01b031633146106e45760405162461bcd60e51b815260040161062e90611d24565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000610713848484610d81565b610765843361076085604051806060016040528060288152602001611e9f602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906112db565b610c5d565b5060019392505050565b6000546001600160a01b031633146107995760405162461bcd60e51b815260040161062e90611d24565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107e45760405162461bcd60e51b815260040161062e90611d24565b60158054911515600160b01b0260ff60b01b19909216919091179055565b4761080c81611315565b50565b6001600160a01b0381166000908152600260205260408120546106b49061134f565b6000546001600160a01b0316331461085b5760405162461bcd60e51b815260040161062e90611d24565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b815260040161062e90611d24565b60646108e38267094079ccf2862400611da0565b6108ed9190611dbf565b601655610903606467094079ccf2862400611dbf565b601654101561080c57600080fd5b6000546001600160a01b0316331461093b5760405162461bcd60e51b815260040161062e90611d24565b601855565b6000546001600160a01b0316331461096a5760405162461bcd60e51b815260040161062e90611d24565b6008849055600a8390556009829055600b8190556000818361098c8688611de1565b6109969190611de1565b6109a09190611de1565b905060198111156109fe5760405162461bcd60e51b815260206004820152602260248201527f546f74616c20466565732063616e6e6f74206265206d6f7265207468616e2032604482015261352560f01b606482015260840161062e565b5050505050565b60006106b0338484610d81565b6012546001600160a01b0316336001600160a01b03161480610a4757506013546001600160a01b0316336001600160a01b0316145b610a5057600080fd5b6000610a5b3061080f565b905061080c816113d3565b6000546001600160a01b03163314610a905760405162461bcd60e51b815260040161062e90611d24565b60005b82811015610b01578160056000868685818110610ab257610ab2611d59565b9050602002016020810190610ac79190611b93565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610af981611d85565b915050610a93565b50505050565b6000546001600160a01b03163314610b315760405162461bcd60e51b815260040161062e90611d24565b6064610b458267094079ccf2862400611da0565b610b4f9190611dbf565b601755610b65606467094079ccf2862400611dbf565b601754101561080c57600080fd5b6000546001600160a01b03163314610b9d5760405162461bcd60e51b815260040161062e90611d24565b6001600160a01b038116610c025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161062e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610cbf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161062e565b6001600160a01b038216610d205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161062e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610de55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161062e565b6001600160a01b038216610e475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161062e565b60008111610ea95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161062e565b6000546001600160a01b03848116911614801590610ed557506000546001600160a01b03838116911614155b156111d457601554600160a01b900460ff16610f6e576000546001600160a01b03848116911614610f6e5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161062e565b601654811115610fc05760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161062e565b6001600160a01b03831660009081526010602052604090205460ff1615801561100257506001600160a01b03821660009081526010602052604090205460ff16155b61105a5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161062e565b6015546001600160a01b038381169116146110df576017548161107c8461080f565b6110869190611de1565b106110df5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161062e565b60006110ea3061080f565b6018549091508082101590611100906008611da0565b821061111757601854611114906008611da0565b91505b80801561112e5750601554600160a81b900460ff16155b801561114857506015546001600160a01b03868116911614155b801561115d5750601554600160b01b900460ff165b801561118257506001600160a01b03851660009081526005602052604090205460ff16155b80156111a757506001600160a01b03841660009081526005602052604090205460ff16155b156111d1576111b5826113d3565b4767011c37937e0800008111156111cf576111cf47611315565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061121657506001600160a01b03831660009081526005602052604090205460ff165b8061124857506015546001600160a01b0385811691161480159061124857506015546001600160a01b03848116911614155b15611255575060006112cf565b6015546001600160a01b03858116911614801561128057506014546001600160a01b03848116911614155b1561129257600854600c55600954600d555b6015546001600160a01b0384811691161480156112bd57506014546001600160a01b03858116911614155b156112cf57600a54600c55600b54600d555b610b018484848461155c565b600081848411156112ff5760405162461bcd60e51b815260040161062e9190611b12565b50600061130c8486611df9565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561069f573d6000803e3d6000fd5b60006006548211156113b65760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161062e565b60006113c061158a565b90506113cc83826115ad565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061141b5761141b611d59565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561146f57600080fd5b505afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190611e10565b816001815181106114ba576114ba611d59565b6001600160a01b0392831660209182029290920101526014546114e09130911684610c5d565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611519908590600090869030904290600401611e2d565b600060405180830381600087803b15801561153357600080fd5b505af1158015611547573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b80611569576115696115ef565b61157484848461161d565b80610b0157610b01600e54600c55600f54600d55565b6000806000611597611714565b90925090506115a682826115ad565b9250505090565b60006113cc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611754565b600c541580156115ff5750600d54155b1561160657565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061162f87611782565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061166190876117df565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546116909086611821565b6001600160a01b0389166000908152600260205260409020556116b281611880565b6116bc84836118ca565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161170191815260200190565b60405180910390a3505050505050505050565b600654600090819067094079ccf286240061172f82826115ad565b82101561174b5750506006549267094079ccf286240092509050565b90939092509050565b600081836117755760405162461bcd60e51b815260040161062e9190611b12565b50600061130c8486611dbf565b600080600080600080600080600061179f8a600c54600d546118ee565b92509250925060006117af61158a565b905060008060006117c28e878787611943565b919e509c509a509598509396509194505050505091939550919395565b60006113cc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112db565b60008061182e8385611de1565b9050838110156113cc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161062e565b600061188a61158a565b905060006118988383611993565b306000908152600260205260409020549091506118b59082611821565b30600090815260026020526040902055505050565b6006546118d790836117df565b6006556007546118e79082611821565b6007555050565b600080808061190860646119028989611993565b906115ad565b9050600061191b60646119028a89611993565b905060006119338261192d8b866117df565b906117df565b9992985090965090945050505050565b60008080806119528886611993565b905060006119608887611993565b9050600061196e8888611993565b905060006119808261192d86866117df565b939b939a50919850919650505050505050565b6000826119a2575060006106b4565b60006119ae8385611da0565b9050826119bb8583611dbf565b146113cc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161062e565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461080c57600080fd5b8035611a4881611a28565b919050565b60006020808385031215611a6057600080fd5b823567ffffffffffffffff80821115611a7857600080fd5b818501915085601f830112611a8c57600080fd5b813581811115611a9e57611a9e611a12565b8060051b604051601f19603f83011681018181108582111715611ac357611ac3611a12565b604052918252848201925083810185019188831115611ae157600080fd5b938501935b82851015611b0657611af785611a3d565b84529385019392850192611ae6565b98975050505050505050565b600060208083528351808285015260005b81811015611b3f57858101830151858201604001528201611b23565b81811115611b51576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611b7a57600080fd5b8235611b8581611a28565b946020939093013593505050565b600060208284031215611ba557600080fd5b81356113cc81611a28565b600080600060608486031215611bc557600080fd5b8335611bd081611a28565b92506020840135611be081611a28565b929592945050506040919091013590565b80358015158114611a4857600080fd5b600060208284031215611c1357600080fd5b6113cc82611bf1565b600060208284031215611c2e57600080fd5b5035919050565b60008060008060808587031215611c4b57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611c7c57600080fd5b833567ffffffffffffffff80821115611c9457600080fd5b818601915086601f830112611ca857600080fd5b813581811115611cb757600080fd5b8760208260051b8501011115611ccc57600080fd5b602092830195509350611ce29186019050611bf1565b90509250925092565b60008060408385031215611cfe57600080fd5b8235611d0981611a28565b91506020830135611d1981611a28565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611d9957611d99611d6f565b5060010190565b6000816000190483118215151615611dba57611dba611d6f565b500290565b600082611ddc57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611df457611df4611d6f565b500190565b600082821015611e0b57611e0b611d6f565b500390565b600060208284031215611e2257600080fd5b81516113cc81611a28565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e7d5784516001600160a01b031683529383019391830191600101611e58565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c9ed2f15f10ba3734948c15bc79d12246e3a6a6e81840243500b042b7a5555f64736f6c63430008090033

Deployed Bytecode Sourcemap

8312:13669:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16761:169;;;;;;;;;;-1:-1:-1;16761:169:0;;;;;:::i;:::-;;:::i;:::-;;10796:83;;;;;;;;;;-1:-1:-1;10866:5:0;;;;;;;;;;;;-1:-1:-1;;;10866:5:0;;;;10796:83;;;;;;;:::i;:::-;;;;;;;;11721:193;;;;;;;;;;-1:-1:-1;11721:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;11721:193:0;2469:187:1;9646:41:0;;;;;;;;;;-1:-1:-1;9646:41:0;;;;-1:-1:-1;;;;;9646:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;9646:41:0;2661:229:1;11073:95:0;;;;;;;;;;-1:-1:-1;8875:17:0;11073:95;;;3041:25:1;;;3029:2;3014:18;11073:95:0;2895:177:1;21827:147:0;;;;;;;;;;-1:-1:-1;21827:147:0;;;;;:::i;:::-;;:::i;11922:446::-;;;;;;;;;;-1:-1:-1;11922:446:0;;;;;:::i;:::-;;:::i;9943:51::-;;;;;;;;;;;;;;;;10982:83;;;;;;;;;;-1:-1:-1;10982:83:0;;8549:1;3932:36:1;;3920:2;3905:18;10982:83:0;3790:184:1;9694:28:0;;;;;;;;;;-1:-1:-1;9694:28:0;;;;-1:-1:-1;;;;;9694:28:0;;;16938:92;;;;;;;;;;-1:-1:-1;16938:92:0;;;;;:::i;:::-;;:::i;21085:101::-;;;;;;;;;;-1:-1:-1;21085:101:0;;;;;:::i;:::-;;:::i;16610:143::-;;;;;;;;;;;;;:::i;11176:138::-;;;;;;;;;;-1:-1:-1;11176:138:0;;;;;:::i;:::-;;:::i;5799:148::-;;;;;;;;;;;;;:::i;21225:167::-;;;;;;;;;;-1:-1:-1;21225:167:0;;;;;:::i;:::-;;:::i;9843:37::-;;;;;;;;;;;;;;;;9388:43;;;;;;;;;;-1:-1:-1;9388:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;5585:79;;;;;;;;;;-1:-1:-1;5623:7:0;5650:6;-1:-1:-1;;;;;5650:6:0;5585:79;;9887:49;;;;;;;;;;;;;;;;10887:87;;;;;;;;;;-1:-1:-1;10959:7:0;;;;;;;;;;;;-1:-1:-1;;;10959:7:0;;;;10887:87;;20894:139;;;;;;;;;;-1:-1:-1;20894:139:0;;;;;:::i;:::-;;:::i;20424:418::-;;;;;;;;;;-1:-1:-1;20424:418:0;;;;;:::i;:::-;;:::i;11322:199::-;;;;;;;;;;-1:-1:-1;11322:199:0;;;;;:::i;:::-;;:::i;9350:36::-;;;;;;;;;;-1:-1:-1;9350:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16366:236;;;;;;;;;;;;;:::i;21584:234::-;;;;;;;;;;-1:-1:-1;21584:234:0;;;;;:::i;:::-;;:::i;11529:184::-;;;;;;;;;;-1:-1:-1;11529:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;11678:18:0;;;11646:7;11678:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11529:184;21400:176;;;;;;;;;;-1:-1:-1;21400:176:0;;;;;:::i;:::-;;:::i;5955:244::-;;;;;;;;;;-1:-1:-1;5955:244:0;;;;;:::i;:::-;;:::i;16761:169::-;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;;;;;;;;;16837:9:::1;16832:91;16856:5;:12;16852:1;:16;16832:91;;;16907:4;16890;:14;16895:5;16901:1;16895:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16890:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16890:14:0;:21;;-1:-1:-1;;16890:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16870:3;::::1;::::0;::::1;:::i;:::-;;;;16832:91;;;;16761:169:::0;:::o;11721:193::-;11823:4;11845:39;4424:10;11868:7;11877:6;11845:8;:39::i;:::-;-1:-1:-1;11902:4:0;11721:193;;;;;:::o;21827:147::-;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;21917:17:::1;:49:::0;;-1:-1:-1;;;;;;21917:49:0::1;-1:-1:-1::0;;;;;21917:49:0;;;::::1;::::0;;;::::1;::::0;;21827:147::o;11922:446::-;12054:4;12071:36;12081:6;12089:9;12100:6;12071:9;:36::i;:::-;12118:220;12141:6;4424:10;12189:138;12245:6;12189:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12189:19:0;;;;;;:11;:19;;;;;;;;4424:10;12189:33;;;;;;;;;;:37;:138::i;:::-;12118:8;:220::i;:::-;-1:-1:-1;12356:4:0;11922:446;;;;;:::o;16938:92::-;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17002:12:0::1;17017:5;17002:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;17002:20:0::1;::::0;;16938:92::o;21085:101::-;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;21152:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21152:26:0::1;-1:-1:-1::0;;;;21152:26:0;;::::1;::::0;;;::::1;::::0;;21085:101::o;16610:143::-;16681:21;16713:32;16681:21;16713:12;:32::i;:::-;16641:112;16610:143::o;11176:138::-;-1:-1:-1;;;;;11289:16:0;;11242:7;11289:16;;;:7;:16;;;;;;11269:37;;:19;:37::i;5799:148::-;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;5906:1:::1;5890:6:::0;;5869:40:::1;::::0;-1:-1:-1;;;;;5890:6:0;;::::1;::::0;5869:40:::1;::::0;5906:1;;5869:40:::1;5937:1;5920:19:::0;;-1:-1:-1;;;;;;5920:19:0::1;::::0;;5799:148::o;21225:167::-;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;21334:3:::1;21314:19;21322:11:::0;8875:17:::1;21314:19;:::i;:::-;:23;;;;:::i;:::-;21299:12;:38:::0;21372:11:::1;21380:3;8875:17;21372:11;:::i;:::-;21357:12;;:26;;21348:36;;;::::0;::::1;20894:139:::0;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;20985:19:::1;:40:::0;20894:139::o;20424:418::-;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;20550:10:::1;:22:::0;;;20583:11:::1;:24:::0;;;20618:12:::1;:26:::0;;;20655:13:::1;:28:::0;;;-1:-1:-1;20671:12:0;20633:11;20713:22:::1;20597:10:::0;20563:9;20713:22:::1;:::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;20694:68;;20794:2;20782:8;:14;;20773:61;;;::::0;-1:-1:-1;;;20773:61:0;;7694:2:1;20773:61:0::1;::::0;::::1;7676:21:1::0;7733:2;7713:18;;;7706:30;7772:34;7752:18;;;7745:62;-1:-1:-1;;;7823:18:1;;;7816:32;7865:19;;20773:61:0::1;7492:398:1::0;20773:61:0::1;20539:303;20424:418:::0;;;;:::o;11322:199::-;11427:4;11449:42;4424:10;11473:9;11484:6;11449:9;:42::i;16366:236::-;16432:19;;-1:-1:-1;;;;;16432:19:0;4424:10;-1:-1:-1;;;;;16416:35:0;;:72;;;-1:-1:-1;16471:17:0;;-1:-1:-1;;;;;16471:17:0;4424:10;-1:-1:-1;;;;;16455:33:0;;16416:72;16408:81;;;;;;16500:23;16526:24;16544:4;16526:9;:24::i;:::-;16500:50;;16561:33;16578:15;16561:16;:33::i;21584:234::-;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;21701:9:::1;21697:114;21716:19:::0;;::::1;21697:114;;;21791:8;21757:18;:31;21776:8;;21785:1;21776:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21757:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;21757:31:0;:42;;-1:-1:-1;;21757:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21737:3;::::1;::::0;::::1;:::i;:::-;;;;21697:114;;;;21584:234:::0;;;:::o;21400:176::-;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;21516:3:::1;21494:21;21502:13:::0;8875:17:::1;21494:21;:::i;:::-;:25;;;;:::i;:::-;21477:14;:42:::0;21556:11:::1;21564:3;8875:17;21556:11;:::i;:::-;21539:14;;:28;;21530:38;;;::::0;::::1;5955:244:::0;5712:6;;-1:-1:-1;;;;;5712:6:0;4424:10;5712:22;5704:67;;;;-1:-1:-1;;;5704:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6044:22:0;::::1;6036:73;;;::::0;-1:-1:-1;;;6036:73:0;;8097:2:1;6036:73:0::1;::::0;::::1;8079:21:1::0;8136:2;8116:18;;;8109:30;8175:34;8155:18;;;8148:62;-1:-1:-1;;;8226:18:1;;;8219:36;8272:19;;6036:73:0::1;7895:402:1::0;6036:73:0::1;6146:6;::::0;;6125:38:::1;::::0;-1:-1:-1;;;;;6125:38:0;;::::1;::::0;6146:6;::::1;::::0;6125:38:::1;::::0;::::1;6174:6;:17:::0;;-1:-1:-1;;;;;;6174:17:0::1;-1:-1:-1::0;;;;;6174:17:0;;;::::1;::::0;;;::::1;::::0;;5955:244::o;13035:369::-;-1:-1:-1;;;;;13162:19:0;;13154:68;;;;-1:-1:-1;;;13154:68:0;;8504:2:1;13154:68:0;;;8486:21:1;8543:2;8523:18;;;8516:30;8582:34;8562:18;;;8555:62;-1:-1:-1;;;8633:18:1;;;8626:34;8677:19;;13154:68:0;8302:400:1;13154:68:0;-1:-1:-1;;;;;13241:21:0;;13233:68;;;;-1:-1:-1;;;13233:68:0;;8909:2:1;13233:68:0;;;8891:21:1;8948:2;8928:18;;;8921:30;8987:34;8967:18;;;8960:62;-1:-1:-1;;;9038:18:1;;;9031:32;9080:19;;13233:68:0;8707:398:1;13233:68:0;-1:-1:-1;;;;;13312:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13364:32;;3041:25:1;;;13364:32:0;;3014:18:1;13364:32:0;;;;;;;13035:369;;;:::o;13412:2348::-;-1:-1:-1;;;;;13534:18:0;;13526:68;;;;-1:-1:-1;;;13526:68:0;;9312:2:1;13526:68:0;;;9294:21:1;9351:2;9331:18;;;9324:30;9390:34;9370:18;;;9363:62;-1:-1:-1;;;9441:18:1;;;9434:35;9486:19;;13526:68:0;9110:401:1;13526:68:0;-1:-1:-1;;;;;13613:16:0;;13605:64;;;;-1:-1:-1;;;13605:64:0;;9718:2:1;13605:64:0;;;9700:21:1;9757:2;9737:18;;;9730:30;9796:34;9776:18;;;9769:62;-1:-1:-1;;;9847:18:1;;;9840:33;9890:19;;13605:64:0;9516:399:1;13605:64:0;13697:1;13688:6;:10;13680:64;;;;-1:-1:-1;;;13680:64:0;;10122:2:1;13680:64:0;;;10104:21:1;10161:2;10141:18;;;10134:30;10200:34;10180:18;;;10173:62;-1:-1:-1;;;10251:18:1;;;10244:39;10300:19;;13680:64:0;9920:405:1;13680:64:0;5623:7;5650:6;-1:-1:-1;;;;;13761:15:0;;;5650:6;;13761:15;;;;:32;;-1:-1:-1;5623:7:0;5650:6;-1:-1:-1;;;;;13780:13:0;;;5650:6;;13780:13;;13761:32;13757:1293;;;13850:11;;-1:-1:-1;;;13850:11:0;;;;13845:144;;5623:7;5650:6;-1:-1:-1;;;;;13890:15:0;;;5650:6;;13890:15;13882:91;;;;-1:-1:-1;;;13882:91:0;;10532:2:1;13882:91:0;;;10514:21:1;10571:2;10551:18;;;10544:30;10610:34;10590:18;;;10583:62;10681:33;10661:18;;;10654:61;10732:19;;13882:91:0;10330:427:1;13882:91:0;14023:12;;14013:6;:22;;14005:63;;;;-1:-1:-1;;;14005:63:0;;10964:2:1;14005:63:0;;;10946:21:1;11003:2;10983:18;;;10976:30;11042;11022:18;;;11015:58;11090:18;;14005:63:0;10762:352:1;14005:63:0;-1:-1:-1;;;;;14092:10:0;;;;;;:4;:10;;;;;;;;14091:11;:24;;;;-1:-1:-1;;;;;;14107:8:0;;;;;;:4;:8;;;;;;;;14106:9;14091:24;14083:72;;;;-1:-1:-1;;;14083:72:0;;11321:2:1;14083:72:0;;;11303:21:1;11360:2;11340:18;;;11333:30;11399:34;11379:18;;;11372:62;-1:-1:-1;;;11450:18:1;;;11443:33;11493:19;;14083:72:0;11119:399:1;14083:72:0;14181:13;;-1:-1:-1;;;;;14175:19:0;;;14181:13;;14175:19;14172:146;;14248:14;;14239:6;14223:13;14233:2;14223:9;:13::i;:::-;:22;;;;:::i;:::-;:39;14215:87;;;;-1:-1:-1;;;14215:87:0;;11725:2:1;14215:87:0;;;11707:21:1;11764:2;11744:18;;;11737:30;11803:34;11783:18;;;11776:62;-1:-1:-1;;;11854:18:1;;;11847:33;11897:19;;14215:87:0;11523:399:1;14215:87:0;14334:28;14365:24;14383:4;14365:9;:24::i;:::-;14443:19;;14334:55;;-1:-1:-1;14419:43:0;;;;;14506:21;;14526:1;14506:21;:::i;:::-;14482:20;:45;14479:142;;14584:19;;:21;;14604:1;14584:21;:::i;:::-;14561:44;;14479:142;14641:7;:18;;;;-1:-1:-1;14653:6:0;;-1:-1:-1;;;14653:6:0;;;;14652:7;14641:18;:43;;;;-1:-1:-1;14671:13:0;;-1:-1:-1;;;;;14663:21:0;;;14671:13;;14663:21;;14641:43;:58;;;;-1:-1:-1;14688:11:0;;-1:-1:-1;;;14688:11:0;;;;14641:58;:87;;;;-1:-1:-1;;;;;;14704:24:0;;;;;;:18;:24;;;;;;;;14703:25;14641:87;:114;;;;-1:-1:-1;;;;;;14733:22:0;;;;;;:18;:22;;;;;;;;14732:23;14641:114;14637:402;;;14776:38;14793:20;14776:16;:38::i;:::-;14862:21;14927:17;14906:38;;14902:122;;;14969:35;14982:21;14969:12;:35::i;:::-;14757:282;14637:402;13795:1255;;13757:1293;-1:-1:-1;;;;;15126:24:0;;15062:12;15126:24;;;:18;:24;;;;;;15077:4;;15126:24;;;:50;;-1:-1:-1;;;;;;15154:22:0;;;;;;:18;:22;;;;;;;;15126:50;15125:102;;;-1:-1:-1;15190:13:0;;-1:-1:-1;;;;;15182:21:0;;;15190:13;;15182:21;;;;:44;;-1:-1:-1;15213:13:0;;-1:-1:-1;;;;;15207:19:0;;;15213:13;;15207:19;;15182:44;15121:578;;;-1:-1:-1;15254:5:0;15121:578;;;15337:13;;-1:-1:-1;;;;;15329:21:0;;;15337:13;;15329:21;:55;;;;-1:-1:-1;15368:15:0;;-1:-1:-1;;;;;15354:30:0;;;15368:15;;15354:30;;15329:55;15326:154;;;15413:10;;15405:5;:18;15452:12;;15442:7;:22;15326:154;15539:13;;-1:-1:-1;;;;;15533:19:0;;;15539:13;;15533:19;:55;;;;-1:-1:-1;15572:15:0;;-1:-1:-1;;;;;15556:32:0;;;15572:15;;15556:32;;15533:55;15529:157;;;15617:11;;15609:5;:19;15657:13;;15647:7;:23;15529:157;15711:41;15726:4;15732:2;15736:6;15744:7;15711:14;:41::i;6563:224::-;6683:7;6719:12;6711:6;;;;6703:29;;;;-1:-1:-1;;;6703:29:0;;;;;;;;:::i;:::-;-1:-1:-1;6743:9:0;6755:5;6759:1;6755;:5;:::i;:::-;6743:17;6563:224;-1:-1:-1;;;;;6563:224:0:o;16259:99::-;16316:17;;:34;;-1:-1:-1;;;;;16316:17:0;;;;:34;;;;;16343:6;;16316:17;:34;:17;:34;16343:6;16316:17;:34;;;;;;;;;;;;;;;;;;;12376:323;12471:7;12529;;12518;:18;;12496:110;;;;-1:-1:-1;;;12496:110:0;;12259:2:1;12496:110:0;;;12241:21:1;12298:2;12278:18;;;12271:30;12337:34;12317:18;;;12310:62;-1:-1:-1;;;12388:18:1;;;12381:40;12438:19;;12496:110:0;12057:406:1;12496:110:0;12617:19;12639:10;:8;:10::i;:::-;12617:32;-1:-1:-1;12667:24:0;:7;12617:32;12667:11;:24::i;:::-;12660:31;12376:323;-1:-1:-1;;;12376:323:0:o;15768:483::-;10088:6;:13;;-1:-1:-1;;;;10088:13:0;-1:-1:-1;;;10088:13:0;;;15870:16:::1;::::0;;15884:1:::1;15870:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15870:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15870:16:0::1;15846:40;;15915:4;15897;15902:1;15897:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15897:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15941:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15941:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15897:7;;15941:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15931:4;15936:1;15931:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15931:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;16006:15:::1;::::0;15974:62:::1;::::0;15991:4:::1;::::0;16006:15:::1;16024:11:::0;15974:8:::1;:62::i;:::-;16047:15;::::0;:196:::1;::::0;-1:-1:-1;;;16047:196:0;;-1:-1:-1;;;;;16047:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;16128:11;;16047:15:::1;::::0;16170:4;;16197::::1;::::0;16217:15:::1;::::0;16047:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10124:6:0;:14;;-1:-1:-1;;;;10124:14:0;;;-1:-1:-1;;;;15768:483:0:o;17038:282::-;17194:7;17189:28;;17203:14;:12;:14::i;:::-;17228:44;17246:6;17254:9;17265:6;17228:17;:44::i;:::-;17288:7;17283:29;;17297:15;12970:13;;12962:5;:21;13004:15;;12994:7;:25;12918:109;19987:164;20029:7;20050:15;20067;20086:19;:17;:19::i;:::-;20049:56;;-1:-1:-1;20049:56:0;-1:-1:-1;20123:20:0;20049:56;;20123:11;:20::i;:::-;20116:27;;;;19987:164;:::o;7049:132::-;7107:7;7134:39;7138:1;7141;7134:39;;;;;;;;;;;;;;;;;:3;:39::i;12707:203::-;12754:5;;:10;:26;;;;-1:-1:-1;12768:7:0;;:12;12754:26;12750:39;;;12707:203::o;12750:39::-;12817:5;;;12801:13;:21;12851:7;;;12833:15;:25;-1:-1:-1;12871:9:0;;;;12891:11;12707:203::o;17328:610::-;17475:15;17505:23;17543:12;17570:23;17608:12;17635:13;17662:19;17673:7;17662:10;:19::i;:::-;-1:-1:-1;;;;;17710:15:0;;;;;;:7;:15;;;;;;17460:221;;-1:-1:-1;17460:221:0;;-1:-1:-1;17460:221:0;;-1:-1:-1;17460:221:0;-1:-1:-1;17460:221:0;-1:-1:-1;17460:221:0;-1:-1:-1;17710:28:0;;17460:221;17710:19;:28::i;:::-;-1:-1:-1;;;;;17692:15:0;;;;;;;:7;:15;;;;;;:46;;;;17770:18;;;;;;;:39;;17793:15;17770:22;:39::i;:::-;-1:-1:-1;;;;;17749:18:0;;;;;;:7;:18;;;;;:60;17820:16;17830:5;17820:9;:16::i;:::-;17847:23;17859:4;17865;17847:11;:23::i;:::-;17903:9;-1:-1:-1;;;;;17886:44:0;17895:6;-1:-1:-1;;;;;17886:44:0;;17914:15;17886:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;17886:44:0;;;;;;;;17449:489;;;;;;17328:610;;;:::o;20159:257::-;20257:7;;20210;;;;8875:17;20325:20;20257:7;8875:17;20325:11;:20::i;:::-;20315:7;:30;20311:61;;;-1:-1:-1;;20355:7:0;;;8875:17;;-1:-1:-1;20159:257:0;-1:-1:-1;20159:257:0:o;20311:61::-;20391:7;;20400;;-1:-1:-1;20159:257:0;-1:-1:-1;20159:257:0:o;7189:223::-;7309:7;7344:12;7337:5;7329:28;;;;-1:-1:-1;;;7329:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7368:9:0;7380:5;7384:1;7380;:5;:::i;18357:611::-;18457:7;18479;18501;18523;18545;18567;18603:23;18628:12;18642:13;18672:36;18684:7;18693:5;;18700:7;;18672:11;:36::i;:::-;18602:106;;;;;;18719:19;18741:10;:8;:10::i;:::-;18719:32;;18763:15;18780:23;18805:12;18834:46;18846:7;18855:4;18861:5;18868:11;18834;:46::i;:::-;18762:118;;-1:-1:-1;18762:118:0;-1:-1:-1;18762:118:0;-1:-1:-1;18931:15:0;;-1:-1:-1;18948:4:0;;-1:-1:-1;18954:5:0;;-1:-1:-1;;;;;18357:611:0;;;;;;;:::o;6419:136::-;6477:7;6504:43;6508:1;6511;6504:43;;;;;;;;;;;;;;;;;:3;:43::i;6232:179::-;6290:7;;6322:5;6326:1;6322;:5;:::i;:::-;6310:17;;6351:1;6346;:6;;6338:46;;;;-1:-1:-1;;;6338:46:0;;13911:2:1;6338:46:0;;;13893:21:1;13950:2;13930:18;;;13923:30;13989:29;13969:18;;;13962:57;14036:18;;6338:46:0;13709:351:1;17946:211:0;17999:19;18021:10;:8;:10::i;:::-;17999:32;-1:-1:-1;18042:13:0;18058:22;:5;17999:32;18058:9;:22::i;:::-;18132:4;18116:22;;;;:7;:22;;;;;;18042:38;;-1:-1:-1;18116:33:0;;18042:38;18116:26;:33::i;:::-;18107:4;18091:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;17946:211:0:o;18165:147::-;18243:7;;:17;;18255:4;18243:11;:17::i;:::-;18233:7;:27;18284:10;;:20;;18299:4;18284:14;:20::i;:::-;18271:10;:33;-1:-1:-1;;18165:147:0:o;18976:461::-;19141:7;;;;19235:26;19257:3;19235:17;:7;19247:4;19235:11;:17::i;:::-;:21;;:26::i;:::-;19220:41;-1:-1:-1;19272:13:0;19288:28;19312:3;19288:19;:7;19300:6;19288:11;:19::i;:28::-;19272:44;-1:-1:-1;19327:23:0;19353:28;19272:44;19353:17;:7;19365:4;19353:11;:17::i;:::-;:21;;:28::i;:::-;19327:54;19417:4;;-1:-1:-1;19423:5:0;;-1:-1:-1;18976:461:0;;-1:-1:-1;;;;;18976:461:0:o;19445:534::-;19639:7;;;;19736:24;:7;19748:11;19736;:24::i;:::-;19718:42;-1:-1:-1;19771:12:0;19786:21;:4;19795:11;19786:8;:21::i;:::-;19771:36;-1:-1:-1;19818:13:0;19834:22;:5;19844:11;19834:9;:22::i;:::-;19818:38;-1:-1:-1;19867:23:0;19893:28;19818:38;19893:17;:7;19905:4;19893:11;:17::i;:28::-;19940:7;;;;-1:-1:-1;19966:4:0;;-1:-1:-1;19445:534:0;;-1:-1:-1;;;;;;;19445:534:0:o;6795:246::-;6853:7;6877:6;6873:47;;-1:-1:-1;6907:1:0;6900:8;;6873:47;6930:9;6942:5;6946:1;6942;:5;:::i;:::-;6930:17;-1:-1:-1;6975:1:0;6966:5;6970:1;6930:17;6966:5;:::i;:::-;:10;6958:56;;;;-1:-1:-1;;;6958:56:0;;14267:2:1;6958:56:0;;;14249:21:1;14306:2;14286:18;;;14279:30;14345:34;14325:18;;;14318:62;-1:-1:-1;;;14396:18:1;;;14389:31;14437:19;;6958:56:0;14065:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:247::-;3136:6;3189:2;3177:9;3168:7;3164:23;3160:32;3157:52;;;3205:1;3202;3195:12;3157:52;3244:9;3231:23;3263:31;3288:5;3263:31;:::i;3329:456::-;3406:6;3414;3422;3475:2;3463:9;3454:7;3450:23;3446:32;3443:52;;;3491:1;3488;3481:12;3443:52;3530:9;3517:23;3549:31;3574:5;3549:31;:::i;:::-;3599:5;-1:-1:-1;3656:2:1;3641:18;;3628:32;3669:33;3628:32;3669:33;:::i;:::-;3329:456;;3721:7;;-1:-1:-1;;;3775:2:1;3760:18;;;;3747:32;;3329:456::o;4187:160::-;4252:20;;4308:13;;4301:21;4291:32;;4281:60;;4337:1;4334;4327:12;4352:180;4408:6;4461:2;4449:9;4440:7;4436:23;4432:32;4429:52;;;4477:1;4474;4467:12;4429:52;4500:26;4516:9;4500:26;:::i;4537:180::-;4596:6;4649:2;4637:9;4628:7;4624:23;4620:32;4617:52;;;4665:1;4662;4655:12;4617:52;-1:-1:-1;4688:23:1;;4537:180;-1:-1:-1;4537:180:1:o;4722:385::-;4808:6;4816;4824;4832;4885:3;4873:9;4864:7;4860:23;4856:33;4853:53;;;4902:1;4899;4892:12;4853:53;-1:-1:-1;;4925:23:1;;;4995:2;4980:18;;4967:32;;-1:-1:-1;5046:2:1;5031:18;;5018:32;;5097:2;5082:18;5069:32;;-1:-1:-1;4722:385:1;-1:-1:-1;4722:385:1:o;5112:689::-;5204:6;5212;5220;5273:2;5261:9;5252:7;5248:23;5244:32;5241:52;;;5289:1;5286;5279:12;5241:52;5329:9;5316:23;5358:18;5399:2;5391:6;5388:14;5385:34;;;5415:1;5412;5405:12;5385:34;5453:6;5442:9;5438:22;5428:32;;5498:7;5491:4;5487:2;5483:13;5479:27;5469:55;;5520:1;5517;5510:12;5469:55;5560:2;5547:16;5586:2;5578:6;5575:14;5572:34;;;5602:1;5599;5592:12;5572:34;5657:7;5650:4;5640:6;5637:1;5633:14;5629:2;5625:23;5621:34;5618:47;5615:67;;;5678:1;5675;5668:12;5615:67;5709:4;5701:13;;;;-1:-1:-1;5733:6:1;-1:-1:-1;5758:37:1;;5774:20;;;-1:-1:-1;5758:37:1;:::i;:::-;5748:47;;5112:689;;;;;:::o;5806:388::-;5874:6;5882;5935:2;5923:9;5914:7;5910:23;5906:32;5903:52;;;5951:1;5948;5941:12;5903:52;5990:9;5977:23;6009:31;6034:5;6009:31;:::i;:::-;6059:5;-1:-1:-1;6116:2:1;6101:18;;6088:32;6129:33;6088:32;6129:33;:::i;:::-;6181:7;6171:17;;;5806:388;;;;;:::o;6199:356::-;6401:2;6383:21;;;6420:18;;;6413:30;6479:34;6474:2;6459:18;;6452:62;6546:2;6531:18;;6199:356::o;6560:127::-;6621:10;6616:3;6612:20;6609:1;6602:31;6652:4;6649:1;6642:15;6676:4;6673:1;6666:15;6692:127;6753:10;6748:3;6744:20;6741:1;6734:31;6784:4;6781:1;6774:15;6808:4;6805:1;6798:15;6824:135;6863:3;-1:-1:-1;;6884:17:1;;6881:43;;;6904:18;;:::i;:::-;-1:-1:-1;6951:1:1;6940:13;;6824:135::o;6964:168::-;7004:7;7070:1;7066;7062:6;7058:14;7055:1;7052:21;7047:1;7040:9;7033:17;7029:45;7026:71;;;7077:18;;:::i;:::-;-1:-1:-1;7117:9:1;;6964:168::o;7137:217::-;7177:1;7203;7193:132;;7247:10;7242:3;7238:20;7235:1;7228:31;7282:4;7279:1;7272:15;7310:4;7307:1;7300:15;7193:132;-1:-1:-1;7339:9:1;;7137:217::o;7359:128::-;7399:3;7430:1;7426:6;7423:1;7420:13;7417:39;;;7436:18;;:::i;:::-;-1:-1:-1;7472:9:1;;7359:128::o;11927:125::-;11967:4;11995:1;11992;11989:8;11986:34;;;12000:18;;:::i;:::-;-1:-1:-1;12037:9:1;;11927:125::o;12468:251::-;12538:6;12591:2;12579:9;12570:7;12566:23;12562:32;12559:52;;;12607:1;12604;12597:12;12559:52;12639:9;12633:16;12658:31;12683:5;12658:31;:::i;12724:980::-;12986:4;13034:3;13023:9;13019:19;13065:6;13054:9;13047:25;13091:2;13129:6;13124:2;13113:9;13109:18;13102:34;13172:3;13167:2;13156:9;13152:18;13145:31;13196:6;13231;13225:13;13262:6;13254;13247:22;13300:3;13289:9;13285:19;13278:26;;13339:2;13331:6;13327:15;13313:29;;13360:1;13370:195;13384:6;13381:1;13378:13;13370:195;;;13449:13;;-1:-1:-1;;;;;13445:39:1;13433:52;;13540:15;;;;13505:12;;;;13481:1;13399:9;13370:195;;;-1:-1:-1;;;;;;;13621:32:1;;;;13616:2;13601:18;;13594:60;-1:-1:-1;;;13685:3:1;13670:19;13663:35;13582:3;12724:980;-1:-1:-1;;;12724:980:1:o

Swarm Source

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