ETH Price: $3,511.98 (+2.66%)
Gas: 4 Gwei

Token

Dog Coin (DOGS)
 

Overview

Max Total Supply

1,000,000,000,000 DOGS

Holders

131

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,637,212,884.060323164 DOGS

Value
$0.00
0xda43faa4e11e99b30bcd64a80c69b9809f03ce1f
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:
DOGS

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-23
*/

/**

Telegram: https://t.me/DogCoin_ERC20

SPDX-License-Identifier: UNLICENSED 
*/
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);
}

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract DOGS is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
    mapping (address => bool) private _isBlackListedBot;
    address[] private _blackListedBots;
    
    mapping (address => User) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1 * 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = unicode"Dog Coin";
    string private constant _symbol = unicode"DOGS";
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 1;
    uint256 private _teamFee = 9;
    uint256 private _launchTime;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    uint256 private _maxBuyAmount;
    uint256 public maxWallet =  _tTotal * 1 / 100; 
    
    address payable private _FeeAddress;
    address payable private _FeeAddress2;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private _cooldownEnabled = true;
    bool private inSwap = false;
    uint256 private buyLimitEnd;

    

    struct User {
        uint256 buy;
        uint256 sell;
        bool exists;
    }

    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable FeeAddress, address payable FeeAddress2) {
        _FeeAddress = FeeAddress;
        _FeeAddress2 = FeeAddress2;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[FeeAddress2] = true;
        
        _isBlackListedBot[address(0x66f049111958809841Bbe4b81c034Da2D953AA0c)] = true;
        _blackListedBots.push(address(0x66f049111958809841Bbe4b81c034Da2D953AA0c));
        
        _isBlackListedBot[address(0x000000005736775Feb0C8568e7DEe77222a26880)] = true;
        _blackListedBots.push(address(0x000000005736775Feb0C8568e7DEe77222a26880));
        
        _isBlackListedBot[address(0x00000000003b3cc22aF3aE1EAc0440BcEe416B40)] = true;
        _blackListedBots.push(address(0x00000000003b3cc22aF3aE1EAc0440BcEe416B40));
        
        _isBlackListedBot[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = true;
        _blackListedBots.push(address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D));

        _isBlackListedBot[address(0xbcC7f6355bc08f6b7d3a41322CE4627118314763)] = true;
        _blackListedBots.push(address(0xbcC7f6355bc08f6b7d3a41322CE4627118314763));

        _isBlackListedBot[address(0x1d6E8BAC6EA3730825bde4B005ed7B2B39A2932d)] = true;
        _blackListedBots.push(address(0x1d6E8BAC6EA3730825bde4B005ed7B2B39A2932d));

        _isBlackListedBot[address(0x000000000035B5e5ad9019092C665357240f594e)] = true;
        _blackListedBots.push(address(0x000000000035B5e5ad9019092C665357240f594e));

        _isBlackListedBot[address(0x1315c6C26123383a2Eb369a53Fb72C4B9f227EeC)] = true;
        _blackListedBots.push(address(0x1315c6C26123383a2Eb369a53Fb72C4B9f227EeC));

        _isBlackListedBot[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = true;
        _blackListedBots.push(address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D));

        _isBlackListedBot[address(0x90484Bb9bc05fD3B5FF1fe412A492676cd81790C)] = true;
        _blackListedBots.push(address(0x90484Bb9bc05fD3B5FF1fe412A492676cd81790C));

        _isBlackListedBot[address(0xA62c5bA4D3C95b3dDb247EAbAa2C8E56BAC9D6dA)] = true;
        _blackListedBots.push(address(0xA62c5bA4D3C95b3dDb247EAbAa2C8E56BAC9D6dA));
        
        _isBlackListedBot[address(0x42c1b5e32d625b6C618A02ae15189035e0a92FE7)] = true;
        _blackListedBots.push(address(0x42c1b5e32d625b6C618A02ae15189035e0a92FE7));

        _isBlackListedBot[address(0xA94E56EFc384088717bb6edCccEc289A72Ec2381)] = true;
        _blackListedBots.push(address(0xA94E56EFc384088717bb6edCccEc289A72Ec2381));

        _isBlackListedBot[address(0xf13FFadd3682feD42183AF8F3f0b409A9A0fdE31)] = true;
        _blackListedBots.push(address(0xf13FFadd3682feD42183AF8F3f0b409A9A0fdE31));

        _isBlackListedBot[address(0x376a6EFE8E98f3ae2af230B3D45B8Cc5e962bC27)] = true;
        _blackListedBots.push(address(0x376a6EFE8E98f3ae2af230B3D45B8Cc5e962bC27));

        _isBlackListedBot[address(0xEE2A9147ffC94A73f6b945A6DB532f8466B78830)] = true;
        _blackListedBots.push(address(0xEE2A9147ffC94A73f6b945A6DB532f8466B78830));

        _isBlackListedBot[address(0xdE2a6d80989C3992e11B155430c3F59792FF8Bb7)] = true;
        _blackListedBots.push(address(0xdE2a6d80989C3992e11B155430c3F59792FF8Bb7));

        _isBlackListedBot[address(0x1e62A12D4981e428D3F4F28DF261fdCB2CE743Da)] = true;
        _blackListedBots.push(address(0x1e62A12D4981e428D3F4F28DF261fdCB2CE743Da));

        _isBlackListedBot[address(0x5136a9A5D077aE4247C7706b577F77153C32A01C)] = true;
        _blackListedBots.push(address(0x5136a9A5D077aE4247C7706b577F77153C32A01C));

        _isBlackListedBot[address(0x0E388888309d64e97F97a4740EC9Ed3DADCA71be)] = true;
        _blackListedBots.push(address(0x0E388888309d64e97F97a4740EC9Ed3DADCA71be));

        _isBlackListedBot[address(0x255D9BA73a51e02d26a5ab90d534DB8a80974a12)] = true;
        _blackListedBots.push(address(0x255D9BA73a51e02d26a5ab90d534DB8a80974a12));

        _isBlackListedBot[address(0xA682A66Ea044Aa1DC3EE315f6C36414F73054b47)] = true;
        _blackListedBots.push(address(0xA682A66Ea044Aa1DC3EE315f6C36414F73054b47));

        _isBlackListedBot[address(0x80e09203480A49f3Cf30a4714246f7af622ba470)] = true;
        _blackListedBots.push(address(0x80e09203480A49f3Cf30a4714246f7af622ba470));

        _isBlackListedBot[address(0x12e48B837AB8cB9104C5B95700363547bA81c8a4)] = true;
        _blackListedBots.push(address(0x12e48B837AB8cB9104C5B95700363547bA81c8a4));

        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(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    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");
        require(!_isBlackListedBot[to], "You have no power here!");
        require(!_isBlackListedBot[msg.sender], "You have no power here!");

        if(from != owner() && to != owner()) {
            if(_cooldownEnabled) {
                if(!cooldown[msg.sender].exists) {
                    cooldown[msg.sender] = User(0,0,true);
                }
            }

            // buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                _taxFee = 1;
                _teamFee = 9;
                if(_cooldownEnabled) {
                    if(buyLimitEnd > block.timestamp) {
                        require(amount <= _maxBuyAmount);
                        require(cooldown[to].buy < block.timestamp, "Your buy cooldown has not expired.");
                        cooldown[to].buy = block.timestamp + (15 seconds);
                    }
                }
            }

            // sell
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _taxFee = 1;
                _teamFee = 9;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            
            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                if(contractTokenBalance > 0) {
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        _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 {
        _FeeAddress.transfer(amount.div(2));
        _FeeAddress2.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _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 _transferToExcluded(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);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);    
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        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 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    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;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    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 _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 addLiquidity() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        _maxBuyAmount = 4500000000 * 10**9; // 0.45% TX LIMIT 
        _launchTime = block.timestamp;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
        buyLimitEnd = block.timestamp + (300 seconds);
    }

    function manualswap() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        _cooldownEnabled = onoff;
        emit CooldownEnabledUpdated(_cooldownEnabled);
    }
    
    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }
    
    function excludeAccount(address account) external onlyOwner() {
        require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.');
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }
    
    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    
    function isBlackListed(address account) public view returns (bool) {
        return _isBlackListedBot[account];
    }
    
    function addBotToBlackList(address account) external onlyOwner() {
        require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not blacklist Uniswap router.');
        require(!_isBlackListedBot[account], "Account is already blacklisted");
        _isBlackListedBot[account] = true;
        _blackListedBots.push(account);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 2 / 100)/1e9, "Cannot set maxWallet lower than 2%");
        maxWallet = newNum * (10**9);
    }
    
    function removeBotFromBlackList(address account) external onlyOwner() {
        require(_isBlackListedBot[account], "Account is not blacklisted");
        for (uint256 i = 0; i < _blackListedBots.length; i++) {
            if (_blackListedBots[i] == account) {
                _blackListedBots[i] = _blackListedBots[_blackListedBots.length - 1];
                _isBlackListedBot[account] = false;
                _blackListedBots.pop();
                break;
            }
        }
    }
    
    function setExcludeFromFee(address account, bool excluded) external onlyOwner() {
        _isExcludedFromFee[account] = excluded;
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function cooldownEnabled() public view returns (bool) {
        return _cooldownEnabled;
    }

    function timeToBuy(address buyer) public view returns (uint) {
        return block.timestamp - cooldown[buyer].buy;
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"FeeAddress2","type":"address"}],"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":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","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":"account","type":"address"}],"name":"addBotToBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidity","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":[],"name":"amountInPool","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":[],"name":"cooldownEnabled","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":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBotFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea0000060001962000a34565b620000299060001962000a1a565b600b556001600d556009600e55600d54601055600e546011556064683635c9adc5dea0000060016200005c9190620009f8565b620000689190620009e1565b6013556017805461ffff60a81b1916600160a81b1790553480156200008c57600080fd5b506040516200354938038062003549833981016040819052620000af91620009aa565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601480546001600160a01b038085166001600160a01b0319928316179092556015805492841692909116919091179055600b54600260006200012f3390565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160056000620001696200097e60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260058452828120805486166001908117909155878316825283822080548716821790559186168152918220805485168217905560089092527fdc32a335f21fe9b2cef7f9beb85e916a657b0d50aaa45f5ac9d624aa150101b380548416831790556009805480840182557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af90810180546001600160a01b03199081167366f049111958809841bbe4b81c034da2d953aa0c179091557f5afb22bd27b767b7d4d1ab7515bc17e3a4d6dd5c901a437e9722349b39efcdfc8054871686179055825480860184558201805482166f5736775feb0c8568e7dee77222a268801790557ff2d16d45ea2dc9157c60503cdbe6a26123912e1a52139ab4faf3d91bf39aebce8054871686179055825480860184558201805482166e3b3cc22af3ae1eac0440bcee416b401790557fb584dc31c365bcf6f553d60a984b04ad620753a9e43696d21335bea1b3728aa680548716861781558354808701855583018054831673d8e83d3d1a91dfefafd8b854511c44685a20fa3d9081179091557f2955fa92c8cbfdc2d1b62af1d295d2e30d66af94c72fa0087027a7a4269cfdb180548916881790558454808801865584018054841673bcc7f6355bc08f6b7d3a41322ce46271183147631790557fb6ed04278b774710d42ec9c129f97e6183d7b6e55e08226a8e9fa29a9336f9e1805489168817905584548088018655840180548416731d6e8bac6ea3730825bde4b005ed7b2b39a2932d1790557ffe66911fd8ee2ae9dbcbf308e0218636afef1c432b5d5c4c1a3eff3e2a3ff1018054891688179055845480880186558401805484166e35b5e5ad9019092c665357240f594e1790557f7e2904a6a48e604007785ad465c9a07ffbbb4804abc5f5fb3a151f64c6fe6e4a805489168817905584548088018655840180548416731315c6c26123383a2eb369a53fb72c4b9f227eec1790558154881687179091558354808701855583018054831690911790557f12d8608112bb818ff1ed30b92bb56960590fe20bca7be7305c97df444ebd13638054871686179055825480860184558201805482167390484bb9bc05fd3b5ff1fe412a492676cd81790c1790557f1404537361a41d763b83a307967861eb529f800e555ff5d152096a878636eabd80548716861790558254808601845582018054821673a62c5ba4d3c95b3ddb247eabaa2c8e56bac9d6da1790557fdfe2bf5142473e7b37d88fd792cd734cfe82d5c7883a9063e5392c413d7b07368054871686179055825480860184558201805482167342c1b5e32d625b6c618a02ae15189035e0a92fe71790557f375015a6034648b595434d1c4e912171c67c8c2b1b604e4ab4fd782bbec44e1980548716861790558254808601845582018054821673a94e56efc384088717bb6edcccec289a72ec23811790557fdde3677c91f0b25e4400fbd1cc0edb46285f0369ce9451d82d6f43064b56971c80548716861790558254808601845582018054821673f13ffadd3682fed42183af8f3f0b409a9a0fde311790557f3b6af5fc420f776b778596a0bcc73d6adc4fff7c7163619756f13e590ac978dc80548716861790558254808601845582018054821673376a6efe8e98f3ae2af230b3d45b8cc5e962bc271790557feb8ff550748a724450674543460afe2dcd14d67463540b8b700f2439fafd7c5680548716861790558254808601845582018054821673ee2a9147ffc94a73f6b945a6db532f8466b788301790557fbde19cd6889df07105a42f3b1077cd970df322855e99d813a5770d2df5eaf74480548716861790558254808601845582018054821673de2a6d80989c3992e11b155430c3f59792ff8bb71790557f5f0cf6cec47dbd6c5d7dcf79aa1832e04334aa9b889d2c54e7bd8e0a7a1d738f805487168617905582548086018455820180548216731e62a12d4981e428d3f4f28df261fdcb2ce743da1790557f07ca1b3077f110a71865403e9af81eabcbbf45cdee6abe6ce8d89be396657c20805487168617905582548086018455820180548216735136a9a5d077ae4247c7706b577f77153c32a01c1790557fa91d2805f78c999710926e2979a7537bd8bba61da68d9c1cda9e992b08b4bde1805487168617905582548086018455820180548216730e388888309d64e97f97a4740ec9ed3dadca71be1790557f8fd681806bbe6a4057eabf28df345fa24a520320fcebdd1eb9490910eae0621e80548716861790558254808601845582018054821673255d9ba73a51e02d26a5ab90d534db8a80974a121790557f5ff1c853d1fa51e2354f22edca0a3d88d86e798354f66334f1dbe0a16cdf787680548716861790558254808601845582018054821673a682a66ea044aa1dc3ee315f6c36414f73054b471790557fc73664087767092d0609826a6816f58a754d84eb0c5d153afb3f53882596d0bf8054871686179055825480860184558201805482167380e09203480a49f3cf30a4714246f7af622ba4701790557fe5d5da23872b29cca98b9c4583c8014128d6fdf7ef7a5e15edaafa3f8f581e18805490961685179095558154938401825591520180549091167312e48b837ab8cb9104c5b95700363547ba81c8a41790556200091f3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200096e91815260200190565b60405180910390a3505062000a77565b6000546001600160a01b031690565b80516001600160a01b0381168114620009a557600080fd5b919050565b60008060408385031215620009bd578182fd5b620009c8836200098d565b9150620009d8602084016200098d565b90509250929050565b600082620009f357620009f362000a61565b500490565b600081600019048311821515161562000a155762000a1562000a4b565b500290565b60008282101562000a2f5762000a2f62000a4b565b500390565b60008262000a465762000a4662000a61565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b612ac28062000a876000396000f3fe6080604052600436106101d15760003560e01c806395d89b41116100f7578063cba0e99611610095578063e8078d9411610064578063e8078d9414610597578063f2cc0c18146105ac578063f84354f1146105cc578063f8b45b05146105ec57600080fd5b8063cba0e996146104ca578063db92dbb614610503578063dd62ed3e14610518578063e47d60601461055e57600080fd5b8063af9549e0116100d1578063af9549e014610460578063c18bc19514610480578063c3c8cd80146104a0578063c9567bf9146104b557600080fd5b806395d89b41146103f4578063a9059cbb14610421578063a985ceef1461044157600080fd5b80635342acb41161016f57806370a082311161013e57806370a0823114610377578063715018a6146103975780637ded4d6a146103ac5780638da5cb5b146103cc57600080fd5b80635342acb4146102e95780635932ead11461032257806368a3a6a5146103425780636fc3eaec1461036257600080fd5b806323b872dd116101ab57806323b872dd1461027657806327f3a72a14610296578063313ce567146102ab5780634303443d146102c757600080fd5b806306fdde03146101dd578063095ea7b31461022057806318160ddd1461025057600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506040805180820190915260088152672237b39021b7b4b760c11b60208201525b60405161021791906128aa565b60405180910390f35b34801561022c57600080fd5b5061024061023b366004612802565b610602565b6040519015158152602001610217565b34801561025c57600080fd5b50683635c9adc5dea000005b604051908152602001610217565b34801561028257600080fd5b50610240610291366004612795565b610619565b3480156102a257600080fd5b50610268610682565b3480156102b757600080fd5b5060405160098152602001610217565b3480156102d357600080fd5b506102e76102e2366004612725565b610692565b005b3480156102f557600080fd5b50610240610304366004612725565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561032e57600080fd5b506102e761033d36600461282d565b61080d565b34801561034e57600080fd5b5061026861035d366004612725565b610892565b34801561036e57600080fd5b506102e76108b5565b34801561038357600080fd5b50610268610392366004612725565b6108e2565b3480156103a357600080fd5b506102e7610904565b3480156103b857600080fd5b506102e76103c7366004612725565b610978565b3480156103d857600080fd5b506000546040516001600160a01b039091168152602001610217565b34801561040057600080fd5b50604080518082019091526004815263444f475360e01b602082015261020a565b34801561042d57600080fd5b5061024061043c366004612802565b610b5e565b34801561044d57600080fd5b50601754600160a81b900460ff16610240565b34801561046c57600080fd5b506102e761047b3660046127d5565b610b6b565b34801561048c57600080fd5b506102e761049b366004612865565b610bc0565b3480156104ac57600080fd5b506102e7610c87565b3480156104c157600080fd5b506102e7610cbd565b3480156104d657600080fd5b506102406104e5366004612725565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561050f57600080fd5b50610268610d0b565b34801561052457600080fd5b5061026861053336600461275d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561056a57600080fd5b50610240610579366004612725565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156105a357600080fd5b506102e7610d23565b3480156105b857600080fd5b506102e76105c7366004612725565b6110d2565b3480156105d857600080fd5b506102e76105e7366004612725565b61129d565b3480156105f857600080fd5b5061026860135481565b600061060f338484611462565b5060015b92915050565b6000610626848484611586565b610678843361067385604051806060016040528060288152602001612a65602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611b1b565b611462565b5060019392505050565b600061068d306108e2565b905090565b6000546001600160a01b031633146106c55760405162461bcd60e51b81526004016106bc906128fd565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b038216141561073e5760405162461bcd60e51b8152602060048201526024808201527f57652063616e206e6f7420626c61636b6c69737420556e697377617020726f756044820152633a32b91760e11b60648201526084016106bc565b6001600160a01b03811660009081526008602052604090205460ff16156107a75760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c6973746564000060448201526064016106bc565b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000546001600160a01b031633146108375760405162461bcd60e51b81526004016106bc906128fd565b6017805460ff60a81b1916600160a81b8315158102919091179182905560405160ff9190920416151581527f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f287069060200160405180910390a150565b6001600160a01b0381166000908152600a602052604081205461061390426129f9565b6014546001600160a01b0316336001600160a01b0316146108d557600080fd5b476108df81611b55565b50565b6001600160a01b03811660009081526002602052604081205461061390611bda565b6000546001600160a01b0316331461092e5760405162461bcd60e51b81526004016106bc906128fd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109a25760405162461bcd60e51b81526004016106bc906128fd565b6001600160a01b03811660009081526008602052604090205460ff16610a0a5760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c697374656400000000000060448201526064016106bc565b60005b600954811015610b5a57816001600160a01b031660098281548110610a4257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610b485760098054610a6d906001906129f9565b81548110610a8b57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600980546001600160a01b039092169183908110610ac557634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600890915260409020805460ff191690556009805480610b2257634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610b5281612a10565b915050610a0d565b5050565b600061060f338484611586565b6000546001600160a01b03163314610b955760405162461bcd60e51b81526004016106bc906128fd565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610bea5760405162461bcd60e51b81526004016106bc906128fd565b633b9aca006064610c05683635c9adc5dea0000060026129da565b610c0f91906129ba565b610c1991906129ba565b811015610c735760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261322560f01b60648201526084016106bc565b610c8181633b9aca006129da565b60135550565b6014546001600160a01b0316336001600160a01b031614610ca757600080fd5b6000610cb2306108e2565b90506108df81611c5e565b6000546001600160a01b03163314610ce75760405162461bcd60e51b81526004016106bc906128fd565b6017805460ff60a01b1916600160a01b179055610d064261012c6129a2565b601855565b60175460009061068d906001600160a01b03166108e2565b6000546001600160a01b03163314610d4d5760405162461bcd60e51b81526004016106bc906128fd565b601754600160a01b900460ff1615610da75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106bc565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610de43082683635c9adc5dea00000611462565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1d57600080fd5b505afa158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e559190612741565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9d57600080fd5b505afa158015610eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed59190612741565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610f1d57600080fd5b505af1158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190612741565b601780546001600160a01b0319166001600160a01b039283161790556016541663f305d7194730610f85816108e2565b600080610f9a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610ffd57600080fd5b505af1158015611011573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611036919061287d565b5050673e733628714200006012555042600f5560175460165460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b15801561109a57600080fd5b505af11580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5a9190612849565b6000546001600160a01b031633146110fc5760405162461bcd60e51b81526004016106bc906128fd565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03821614156111745760405162461bcd60e51b815260206004820152602260248201527f57652063616e206e6f74206578636c75646520556e697377617020726f757465604482015261391760f11b60648201526084016106bc565b6001600160a01b03811660009081526006602052604090205460ff16156111dd5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106bc565b6001600160a01b03811660009081526002602052604090205415611237576001600160a01b03811660009081526002602052604090205461121d90611bda565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146112c75760405162461bcd60e51b81526004016106bc906128fd565b6001600160a01b03811660009081526006602052604090205460ff1661132f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106bc565b60005b600754811015610b5a57816001600160a01b03166007828154811061136757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156114505760078054611392906001906129f9565b815481106113b057634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600780546001600160a01b0390921691839081106113ea57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600690925220805460ff191690556007805480610b2257634e487b7160e01b600052603160045260246000fd5b8061145a81612a10565b915050611332565b6001600160a01b0383166114c45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106bc565b6001600160a01b0382166115255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106bc565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115ea5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106bc565b6001600160a01b03821661164c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106bc565b600081116116ae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106bc565b6001600160a01b03821660009081526008602052604090205460ff16156117115760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b60448201526064016106bc565b3360009081526008602052604090205460ff161561176b5760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b60448201526064016106bc565b6000546001600160a01b0384811691161480159061179757506000546001600160a01b03838116911614155b15611abe57601754600160a81b900460ff161561181757336000908152600a602052604090206002015460ff166118175760408051606081018252600080825260208083018281526001848601818152338552600a909352949092209251835590519282019290925590516002909101805460ff19169115159190911790555b6017546001600160a01b03848116911614801561184257506016546001600160a01b03838116911614155b801561186757506001600160a01b03821660009081526005602052604090205460ff16155b156119eb57601754600160a01b900460ff166118c55760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016106bc565b6013546118d1836108e2565b6118db90836129a2565b111561191f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106bc565b6001600d556009600e55601754600160a81b900460ff16156119eb574260185411156119eb5760125481111561195457600080fd5b6001600160a01b0382166000908152600a602052604090205442116119c65760405162461bcd60e51b815260206004820152602260248201527f596f75722062757920636f6f6c646f776e20686173206e6f7420657870697265604482015261321760f11b60648201526084016106bc565b6119d142600f6129a2565b6001600160a01b0383166000908152600a60205260409020555b6017546001600160a01b038381169116148015611a1657506016546001600160a01b03848116911614155b8015611a3b57506001600160a01b03831660009081526005602052604090205460ff16155b15611a4b576001600d556009600e555b6000611a56306108e2565b601754909150600160b01b900460ff16158015611a8157506017546001600160a01b03858116911614155b8015611a965750601754600160a01b900460ff165b15611abc578015611aaa57611aaa81611c5e565b478015611aba57611aba47611b55565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff1680611b0057506001600160a01b03831660009081526005602052604090205460ff165b15611b09575060005b611b1584848484611e03565b50505050565b60008184841115611b3f5760405162461bcd60e51b81526004016106bc91906128aa565b506000611b4c84866129f9565b95945050505050565b6014546001600160a01b03166108fc611b6f836002611f7a565b6040518115909202916000818181858888f19350505050158015611b97573d6000803e3d6000fd5b506015546001600160a01b03166108fc611bb2836002611f7a565b6040518115909202916000818181858888f19350505050158015610b5a573d6000803e3d6000fd5b6000600b54821115611c415760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106bc565b6000611c4b611fbc565b9050611c578382611f7a565b9392505050565b6017805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611cb457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d0857600080fd5b505afa158015611d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d409190612741565b81600181518110611d6157634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611d879130911684611462565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dc0908590600090869030904290600401612932565b600060405180830381600087803b158015611dda57600080fd5b505af1158015611dee573d6000803e3d6000fd5b50506017805460ff60b01b1916905550505050565b80611e1057611e10611fdf565b6001600160a01b03841660009081526006602052604090205460ff168015611e5157506001600160a01b03831660009081526006602052604090205460ff16155b15611e6657611e6184848461200d565b611f64565b6001600160a01b03841660009081526006602052604090205460ff16158015611ea757506001600160a01b03831660009081526006602052604090205460ff165b15611eb757611e61848484612133565b6001600160a01b03841660009081526006602052604090205460ff16158015611ef957506001600160a01b03831660009081526006602052604090205460ff16155b15611f0957611e618484846121dc565b6001600160a01b03841660009081526006602052604090205460ff168015611f4957506001600160a01b03831660009081526006602052604090205460ff165b15611f5957611e61848484612220565b611f648484846121dc565b80611b1557611b15601054600d55601154600e55565b6000611c5783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612293565b6000806000611fc96122c1565b9092509050611fd88282611f7a565b9250505090565b600d54158015611fef5750600e54155b15611ff657565b600d8054601055600e805460115560009182905555565b60008060008060008061201f87612495565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061205190886124f2565b6001600160a01b038a1660009081526003602090815260408083209390935560029052205461208090876124f2565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546120af9086612534565b6001600160a01b0389166000908152600260205260409020556120d181612593565b6120db84836125dd565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161212091815260200190565b60405180910390a3505050505050505050565b60008060008060008061214587612495565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061217790876124f2565b6001600160a01b03808b16600090815260026020908152604080832094909455918b168152600390915220546121ad9084612534565b6001600160a01b0389166000908152600360209081526040808320939093556002905220546120af9086612534565b6000806000806000806121ee87612495565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061208090876124f2565b60008060008060008061223287612495565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061226490886124f2565b6001600160a01b038a1660009081526003602090815260408083209390935560029052205461217790876124f2565b600081836122b45760405162461bcd60e51b81526004016106bc91906128aa565b506000611b4c84866129ba565b600b546000908190683635c9adc5dea00000825b6007548110156124585782600260006007848154811061230557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061237e575081600360006007848154811061235757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561239a575050600b5493683635c9adc5dea000009350915050565b6123ee60026000600784815481106123c257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906124f2565b9250612444600360006007848154811061241857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906124f2565b91508061245081612a10565b9150506122d5565b50600b5461246f90683635c9adc5dea00000611f7a565b82101561248c575050600b5492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006124b28a600d54600e54612601565b92509250925060006124c2611fbc565b905060008060006124d58e878787612656565b919e509c509a509598509396509194505050505091939550919395565b6000611c5783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b1b565b60008061254183856129a2565b905083811015611c575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106bc565b600061259d611fbc565b905060006125ab83836126a6565b306000908152600260205260409020549091506125c89082612534565b30600090815260026020526040902055505050565b600b546125ea90836124f2565b600b55600c546125fa9082612534565b600c555050565b600080808061261b606461261589896126a6565b90611f7a565b9050600061262e60646126158a896126a6565b90506000612646826126408b866124f2565b906124f2565b9992985090965090945050505050565b600080808061266588866126a6565b9050600061267388876126a6565b9050600061268188886126a6565b905060006126938261264086866124f2565b939b939a50919850919650505050505050565b6000826126b557506000610613565b60006126c183856129da565b9050826126ce85836129ba565b14611c575760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106bc565b600060208284031215612736578081fd5b8135611c5781612a41565b600060208284031215612752578081fd5b8151611c5781612a41565b6000806040838503121561276f578081fd5b823561277a81612a41565b9150602083013561278a81612a41565b809150509250929050565b6000806000606084860312156127a9578081fd5b83356127b481612a41565b925060208401356127c481612a41565b929592945050506040919091013590565b600080604083850312156127e7578182fd5b82356127f281612a41565b9150602083013561278a81612a56565b60008060408385031215612814578182fd5b823561281f81612a41565b946020939093013593505050565b60006020828403121561283e578081fd5b8135611c5781612a56565b60006020828403121561285a578081fd5b8151611c5781612a56565b600060208284031215612876578081fd5b5035919050565b600080600060608486031215612891578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156128d6578581018301518582016040015282016128ba565b818111156128e75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156129815784516001600160a01b03168352938301939183019160010161295c565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156129b5576129b5612a2b565b500190565b6000826129d557634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129f4576129f4612a2b565b500290565b600082821015612a0b57612a0b612a2b565b500390565b6000600019821415612a2457612a24612a2b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146108df57600080fd5b80151581146108df57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fdc1f5b92e2045e715cc2dcb34aac0b3c7fe7fde3245552fa7ed67aacd4afa9a64736f6c63430008040033000000000000000000000000616d42188c51824152e3c1c9ce1d63c183eb0761000000000000000000000000616d42188c51824152e3c1c9ce1d63c183eb0761

Deployed Bytecode

0x6080604052600436106101d15760003560e01c806395d89b41116100f7578063cba0e99611610095578063e8078d9411610064578063e8078d9414610597578063f2cc0c18146105ac578063f84354f1146105cc578063f8b45b05146105ec57600080fd5b8063cba0e996146104ca578063db92dbb614610503578063dd62ed3e14610518578063e47d60601461055e57600080fd5b8063af9549e0116100d1578063af9549e014610460578063c18bc19514610480578063c3c8cd80146104a0578063c9567bf9146104b557600080fd5b806395d89b41146103f4578063a9059cbb14610421578063a985ceef1461044157600080fd5b80635342acb41161016f57806370a082311161013e57806370a0823114610377578063715018a6146103975780637ded4d6a146103ac5780638da5cb5b146103cc57600080fd5b80635342acb4146102e95780635932ead11461032257806368a3a6a5146103425780636fc3eaec1461036257600080fd5b806323b872dd116101ab57806323b872dd1461027657806327f3a72a14610296578063313ce567146102ab5780634303443d146102c757600080fd5b806306fdde03146101dd578063095ea7b31461022057806318160ddd1461025057600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506040805180820190915260088152672237b39021b7b4b760c11b60208201525b60405161021791906128aa565b60405180910390f35b34801561022c57600080fd5b5061024061023b366004612802565b610602565b6040519015158152602001610217565b34801561025c57600080fd5b50683635c9adc5dea000005b604051908152602001610217565b34801561028257600080fd5b50610240610291366004612795565b610619565b3480156102a257600080fd5b50610268610682565b3480156102b757600080fd5b5060405160098152602001610217565b3480156102d357600080fd5b506102e76102e2366004612725565b610692565b005b3480156102f557600080fd5b50610240610304366004612725565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561032e57600080fd5b506102e761033d36600461282d565b61080d565b34801561034e57600080fd5b5061026861035d366004612725565b610892565b34801561036e57600080fd5b506102e76108b5565b34801561038357600080fd5b50610268610392366004612725565b6108e2565b3480156103a357600080fd5b506102e7610904565b3480156103b857600080fd5b506102e76103c7366004612725565b610978565b3480156103d857600080fd5b506000546040516001600160a01b039091168152602001610217565b34801561040057600080fd5b50604080518082019091526004815263444f475360e01b602082015261020a565b34801561042d57600080fd5b5061024061043c366004612802565b610b5e565b34801561044d57600080fd5b50601754600160a81b900460ff16610240565b34801561046c57600080fd5b506102e761047b3660046127d5565b610b6b565b34801561048c57600080fd5b506102e761049b366004612865565b610bc0565b3480156104ac57600080fd5b506102e7610c87565b3480156104c157600080fd5b506102e7610cbd565b3480156104d657600080fd5b506102406104e5366004612725565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561050f57600080fd5b50610268610d0b565b34801561052457600080fd5b5061026861053336600461275d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561056a57600080fd5b50610240610579366004612725565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156105a357600080fd5b506102e7610d23565b3480156105b857600080fd5b506102e76105c7366004612725565b6110d2565b3480156105d857600080fd5b506102e76105e7366004612725565b61129d565b3480156105f857600080fd5b5061026860135481565b600061060f338484611462565b5060015b92915050565b6000610626848484611586565b610678843361067385604051806060016040528060288152602001612a65602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611b1b565b611462565b5060019392505050565b600061068d306108e2565b905090565b6000546001600160a01b031633146106c55760405162461bcd60e51b81526004016106bc906128fd565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b038216141561073e5760405162461bcd60e51b8152602060048201526024808201527f57652063616e206e6f7420626c61636b6c69737420556e697377617020726f756044820152633a32b91760e11b60648201526084016106bc565b6001600160a01b03811660009081526008602052604090205460ff16156107a75760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c6973746564000060448201526064016106bc565b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000546001600160a01b031633146108375760405162461bcd60e51b81526004016106bc906128fd565b6017805460ff60a81b1916600160a81b8315158102919091179182905560405160ff9190920416151581527f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f287069060200160405180910390a150565b6001600160a01b0381166000908152600a602052604081205461061390426129f9565b6014546001600160a01b0316336001600160a01b0316146108d557600080fd5b476108df81611b55565b50565b6001600160a01b03811660009081526002602052604081205461061390611bda565b6000546001600160a01b0316331461092e5760405162461bcd60e51b81526004016106bc906128fd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109a25760405162461bcd60e51b81526004016106bc906128fd565b6001600160a01b03811660009081526008602052604090205460ff16610a0a5760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c697374656400000000000060448201526064016106bc565b60005b600954811015610b5a57816001600160a01b031660098281548110610a4257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610b485760098054610a6d906001906129f9565b81548110610a8b57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600980546001600160a01b039092169183908110610ac557634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600890915260409020805460ff191690556009805480610b2257634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610b5281612a10565b915050610a0d565b5050565b600061060f338484611586565b6000546001600160a01b03163314610b955760405162461bcd60e51b81526004016106bc906128fd565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610bea5760405162461bcd60e51b81526004016106bc906128fd565b633b9aca006064610c05683635c9adc5dea0000060026129da565b610c0f91906129ba565b610c1991906129ba565b811015610c735760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261322560f01b60648201526084016106bc565b610c8181633b9aca006129da565b60135550565b6014546001600160a01b0316336001600160a01b031614610ca757600080fd5b6000610cb2306108e2565b90506108df81611c5e565b6000546001600160a01b03163314610ce75760405162461bcd60e51b81526004016106bc906128fd565b6017805460ff60a01b1916600160a01b179055610d064261012c6129a2565b601855565b60175460009061068d906001600160a01b03166108e2565b6000546001600160a01b03163314610d4d5760405162461bcd60e51b81526004016106bc906128fd565b601754600160a01b900460ff1615610da75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106bc565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610de43082683635c9adc5dea00000611462565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1d57600080fd5b505afa158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e559190612741565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9d57600080fd5b505afa158015610eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed59190612741565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610f1d57600080fd5b505af1158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190612741565b601780546001600160a01b0319166001600160a01b039283161790556016541663f305d7194730610f85816108e2565b600080610f9a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610ffd57600080fd5b505af1158015611011573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611036919061287d565b5050673e733628714200006012555042600f5560175460165460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b15801561109a57600080fd5b505af11580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5a9190612849565b6000546001600160a01b031633146110fc5760405162461bcd60e51b81526004016106bc906128fd565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03821614156111745760405162461bcd60e51b815260206004820152602260248201527f57652063616e206e6f74206578636c75646520556e697377617020726f757465604482015261391760f11b60648201526084016106bc565b6001600160a01b03811660009081526006602052604090205460ff16156111dd5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106bc565b6001600160a01b03811660009081526002602052604090205415611237576001600160a01b03811660009081526002602052604090205461121d90611bda565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146112c75760405162461bcd60e51b81526004016106bc906128fd565b6001600160a01b03811660009081526006602052604090205460ff1661132f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106bc565b60005b600754811015610b5a57816001600160a01b03166007828154811061136757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156114505760078054611392906001906129f9565b815481106113b057634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600780546001600160a01b0390921691839081106113ea57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600690925220805460ff191690556007805480610b2257634e487b7160e01b600052603160045260246000fd5b8061145a81612a10565b915050611332565b6001600160a01b0383166114c45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106bc565b6001600160a01b0382166115255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106bc565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115ea5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106bc565b6001600160a01b03821661164c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106bc565b600081116116ae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106bc565b6001600160a01b03821660009081526008602052604090205460ff16156117115760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b60448201526064016106bc565b3360009081526008602052604090205460ff161561176b5760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b60448201526064016106bc565b6000546001600160a01b0384811691161480159061179757506000546001600160a01b03838116911614155b15611abe57601754600160a81b900460ff161561181757336000908152600a602052604090206002015460ff166118175760408051606081018252600080825260208083018281526001848601818152338552600a909352949092209251835590519282019290925590516002909101805460ff19169115159190911790555b6017546001600160a01b03848116911614801561184257506016546001600160a01b03838116911614155b801561186757506001600160a01b03821660009081526005602052604090205460ff16155b156119eb57601754600160a01b900460ff166118c55760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016106bc565b6013546118d1836108e2565b6118db90836129a2565b111561191f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106bc565b6001600d556009600e55601754600160a81b900460ff16156119eb574260185411156119eb5760125481111561195457600080fd5b6001600160a01b0382166000908152600a602052604090205442116119c65760405162461bcd60e51b815260206004820152602260248201527f596f75722062757920636f6f6c646f776e20686173206e6f7420657870697265604482015261321760f11b60648201526084016106bc565b6119d142600f6129a2565b6001600160a01b0383166000908152600a60205260409020555b6017546001600160a01b038381169116148015611a1657506016546001600160a01b03848116911614155b8015611a3b57506001600160a01b03831660009081526005602052604090205460ff16155b15611a4b576001600d556009600e555b6000611a56306108e2565b601754909150600160b01b900460ff16158015611a8157506017546001600160a01b03858116911614155b8015611a965750601754600160a01b900460ff165b15611abc578015611aaa57611aaa81611c5e565b478015611aba57611aba47611b55565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff1680611b0057506001600160a01b03831660009081526005602052604090205460ff165b15611b09575060005b611b1584848484611e03565b50505050565b60008184841115611b3f5760405162461bcd60e51b81526004016106bc91906128aa565b506000611b4c84866129f9565b95945050505050565b6014546001600160a01b03166108fc611b6f836002611f7a565b6040518115909202916000818181858888f19350505050158015611b97573d6000803e3d6000fd5b506015546001600160a01b03166108fc611bb2836002611f7a565b6040518115909202916000818181858888f19350505050158015610b5a573d6000803e3d6000fd5b6000600b54821115611c415760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106bc565b6000611c4b611fbc565b9050611c578382611f7a565b9392505050565b6017805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611cb457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d0857600080fd5b505afa158015611d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d409190612741565b81600181518110611d6157634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611d879130911684611462565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dc0908590600090869030904290600401612932565b600060405180830381600087803b158015611dda57600080fd5b505af1158015611dee573d6000803e3d6000fd5b50506017805460ff60b01b1916905550505050565b80611e1057611e10611fdf565b6001600160a01b03841660009081526006602052604090205460ff168015611e5157506001600160a01b03831660009081526006602052604090205460ff16155b15611e6657611e6184848461200d565b611f64565b6001600160a01b03841660009081526006602052604090205460ff16158015611ea757506001600160a01b03831660009081526006602052604090205460ff165b15611eb757611e61848484612133565b6001600160a01b03841660009081526006602052604090205460ff16158015611ef957506001600160a01b03831660009081526006602052604090205460ff16155b15611f0957611e618484846121dc565b6001600160a01b03841660009081526006602052604090205460ff168015611f4957506001600160a01b03831660009081526006602052604090205460ff165b15611f5957611e61848484612220565b611f648484846121dc565b80611b1557611b15601054600d55601154600e55565b6000611c5783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612293565b6000806000611fc96122c1565b9092509050611fd88282611f7a565b9250505090565b600d54158015611fef5750600e54155b15611ff657565b600d8054601055600e805460115560009182905555565b60008060008060008061201f87612495565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061205190886124f2565b6001600160a01b038a1660009081526003602090815260408083209390935560029052205461208090876124f2565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546120af9086612534565b6001600160a01b0389166000908152600260205260409020556120d181612593565b6120db84836125dd565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161212091815260200190565b60405180910390a3505050505050505050565b60008060008060008061214587612495565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061217790876124f2565b6001600160a01b03808b16600090815260026020908152604080832094909455918b168152600390915220546121ad9084612534565b6001600160a01b0389166000908152600360209081526040808320939093556002905220546120af9086612534565b6000806000806000806121ee87612495565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061208090876124f2565b60008060008060008061223287612495565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061226490886124f2565b6001600160a01b038a1660009081526003602090815260408083209390935560029052205461217790876124f2565b600081836122b45760405162461bcd60e51b81526004016106bc91906128aa565b506000611b4c84866129ba565b600b546000908190683635c9adc5dea00000825b6007548110156124585782600260006007848154811061230557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061237e575081600360006007848154811061235757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561239a575050600b5493683635c9adc5dea000009350915050565b6123ee60026000600784815481106123c257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906124f2565b9250612444600360006007848154811061241857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906124f2565b91508061245081612a10565b9150506122d5565b50600b5461246f90683635c9adc5dea00000611f7a565b82101561248c575050600b5492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006124b28a600d54600e54612601565b92509250925060006124c2611fbc565b905060008060006124d58e878787612656565b919e509c509a509598509396509194505050505091939550919395565b6000611c5783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b1b565b60008061254183856129a2565b905083811015611c575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106bc565b600061259d611fbc565b905060006125ab83836126a6565b306000908152600260205260409020549091506125c89082612534565b30600090815260026020526040902055505050565b600b546125ea90836124f2565b600b55600c546125fa9082612534565b600c555050565b600080808061261b606461261589896126a6565b90611f7a565b9050600061262e60646126158a896126a6565b90506000612646826126408b866124f2565b906124f2565b9992985090965090945050505050565b600080808061266588866126a6565b9050600061267388876126a6565b9050600061268188886126a6565b905060006126938261264086866124f2565b939b939a50919850919650505050505050565b6000826126b557506000610613565b60006126c183856129da565b9050826126ce85836129ba565b14611c575760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106bc565b600060208284031215612736578081fd5b8135611c5781612a41565b600060208284031215612752578081fd5b8151611c5781612a41565b6000806040838503121561276f578081fd5b823561277a81612a41565b9150602083013561278a81612a41565b809150509250929050565b6000806000606084860312156127a9578081fd5b83356127b481612a41565b925060208401356127c481612a41565b929592945050506040919091013590565b600080604083850312156127e7578182fd5b82356127f281612a41565b9150602083013561278a81612a56565b60008060408385031215612814578182fd5b823561281f81612a41565b946020939093013593505050565b60006020828403121561283e578081fd5b8135611c5781612a56565b60006020828403121561285a578081fd5b8151611c5781612a56565b600060208284031215612876578081fd5b5035919050565b600080600060608486031215612891578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156128d6578581018301518582016040015282016128ba565b818111156128e75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156129815784516001600160a01b03168352938301939183019160010161295c565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156129b5576129b5612a2b565b500190565b6000826129d557634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129f4576129f4612a2b565b500290565b600082821015612a0b57612a0b612a2b565b500390565b6000600019821415612a2457612a24612a2b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146108df57600080fd5b80151581146108df57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fdc1f5b92e2045e715cc2dcb34aac0b3c7fe7fde3245552fa7ed67aacd4afa9a64736f6c63430008040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000616d42188c51824152e3c1c9ce1d63c183eb0761000000000000000000000000616d42188c51824152e3c1c9ce1d63c183eb0761

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0x616d42188c51824152E3C1C9Ce1d63C183eB0761
Arg [1] : FeeAddress2 (address): 0x616d42188c51824152E3C1C9Ce1d63C183eB0761

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000616d42188c51824152e3c1c9ce1d63c183eb0761
Arg [1] : 000000000000000000000000616d42188c51824152e3c1c9ce1d63c183eb0761


Deployed Bytecode Sourcemap

3875:21802:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10401:83;;;;;;;;;;-1:-1:-1;10471:5:0;;;;;;;;;;;;-1:-1:-1;;;10471:5:0;;;;10401:83;;;;;;;:::i;:::-;;;;;;;;11253:161;;;;;;;;;;-1:-1:-1;11253:161:0;;;;;:::i;:::-;;:::i;:::-;;;4748:14:1;;4741:22;4723:41;;4711:2;4696:18;11253:161:0;4678:92:1;10678:95:0;;;;;;;;;;-1:-1:-1;4518:16:0;10678:95;;;13176:25:1;;;13164:2;13149:18;10678:95:0;13131:76:1;11422:313:0;;;;;;;;;;-1:-1:-1;11422:313:0;;;;;:::i;:::-;;:::i;25229:100::-;;;;;;;;;;;;;:::i;10587:83::-;;;;;;;;;;-1:-1:-1;10587:83:0;;4775:1;14342:36:1;;14330:2;14315:18;10587:83:0;14297:87:1;23990:352:0;;;;;;;;;;-1:-1:-1;23990:352:0;;;;;:::i;:::-;;:::i;:::-;;23724:123;;;;;;;;;;-1:-1:-1;23724:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;23812:27:0;23788:4;23812:27;;;:18;:27;;;;;;;;;23724:123;22489:160;;;;;;;;;;-1:-1:-1;22489:160:0;;;;;:::i;:::-;;:::i;25441:124::-;;;;;;;;;;-1:-1:-1;25441:124:0;;;;;:::i;:::-;;:::i;22291:190::-;;;;;;;;;;;;;:::i;10781:138::-;;;;;;;;;;-1:-1:-1;10781:138:0;;;;;:::i;:::-;;:::i;2954:148::-;;;;;;;;;;;;;:::i;24572:500::-;;;;;;;;;;-1:-1:-1;24572:500:0;;;;;:::i;:::-;;:::i;2740:79::-;;;;;;;;;;-1:-1:-1;2778:7:0;2805:6;2740:79;;-1:-1:-1;;;;;2805:6:0;;;3321:51:1;;3309:2;3294:18;2740:79:0;3276:102:1;10492:87:0;;;;;;;;;;-1:-1:-1;10564:7:0;;;;;;;;;;;;-1:-1:-1;;;10564:7:0;;;;10492:87;;10927:167;;;;;;;;;;-1:-1:-1;10927:167:0;;;;;:::i;:::-;;:::i;25337:96::-;;;;;;;;;;-1:-1:-1;25409:16:0;;-1:-1:-1;;;25409:16:0;;;;25337:96;;25084:137;;;;;;;;;;-1:-1:-1;25084:137:0;;;;;:::i;:::-;;:::i;24350:210::-;;;;;;;;;;-1:-1:-1;24350:210:0;;;;;:::i;:::-;;:::i;22088:191::-;;;;;;;;;;;;;:::i;21947:133::-;;;;;;;;;;;;;:::i;22661:110::-;;;;;;;;;;-1:-1:-1;22661:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;22743:20:0;22719:4;22743:20;;;:11;:20;;;;;;;;;22661:110;25573:101;;;;;;;;;;;;;:::i;11102:143::-;;;;;;;;;;-1:-1:-1;11102:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11210:18:0;;;11183:7;11210:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11102:143;23859:119;;;;;;;;;;-1:-1:-1;23859:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;23944:26:0;23920:4;23944:26;;;:17;:26;;;;;;;;;23859:119;21154:785;;;;;;;;;;;;;:::i;22783:443::-;;;;;;;;;;-1:-1:-1;22783:443:0;;;;;:::i;:::-;;:::i;23234:478::-;;;;;;;;;;-1:-1:-1;23234:478:0;;;;;:::i;:::-;;:::i;5020:45::-;;;;;;;;;;;;;;;;11253:161;11328:4;11345:39;229:10;11368:7;11377:6;11345:8;:39::i;:::-;-1:-1:-1;11402:4:0;11253:161;;;;;:::o;11422:313::-;11520:4;11537:36;11547:6;11555:9;11566:6;11537:9;:36::i;:::-;11584:121;11593:6;229:10;11615:89;11653:6;11615:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11615:19:0;;;;;;:11;:19;;;;;;;;229:10;11615:33;;;;;;;;;;:37;:89::i;:::-;11584:8;:121::i;:::-;-1:-1:-1;11723:4:0;11422:313;;;;;:::o;25229:100::-;25273:4;25297:24;25315:4;25297:9;:24::i;:::-;25290:31;;25229:100;:::o;23990:352::-;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;;;;;;;;;24085:42:::1;-1:-1:-1::0;;;;;24074:53:0;::::1;;;24066:102;;;::::0;-1:-1:-1;;;24066:102:0;;9805:2:1;24066:102:0::1;::::0;::::1;9787:21:1::0;9844:2;9824:18;;;9817:30;9883:34;9863:18;;;9856:62;-1:-1:-1;;;9934:18:1;;;9927:34;9978:19;;24066:102:0::1;9777:226:1::0;24066:102:0::1;-1:-1:-1::0;;;;;24188:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;::::1;;24187:27;24179:70;;;::::0;-1:-1:-1;;;24179:70:0;;7918:2:1;24179:70:0::1;::::0;::::1;7900:21:1::0;7957:2;7937:18;;;7930:30;7996:32;7976:18;;;7969:60;8046:18;;24179:70:0::1;7890:180:1::0;24179:70:0::1;-1:-1:-1::0;;;;;24260:26:0::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;24260:33:0::1;24289:4;24260:33:::0;;::::1;::::0;;;24304:16:::1;:30:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;24304:30:0::1;::::0;;::::1;::::0;;23990:352::o;22489:160::-;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;22561:16:::1;:24:::0;;-1:-1:-1;;;;22561:24:0::1;-1:-1:-1::0;;;22561:24:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;22601:40:::1;::::0;22561:24:::1;22624:16:::0;;;::::1;;4748:14:1::0;4741:22;4723:41;;22601:40:0::1;::::0;4711:2:1;4696:18;22601:40:0::1;;;;;;;22489:160:::0;:::o;25441:124::-;-1:-1:-1;;;;;25538:15:0;;25496:4;25538:15;;;:8;:15;;;;;:19;25520:37;;:15;:37;:::i;22291:190::-;22357:11;;-1:-1:-1;;;;;22357:11:0;229:10;-1:-1:-1;;;;;22341:27:0;;22333:36;;;;;;22409:21;22441:32;22409:21;22441:12;:32::i;:::-;22291:190;:::o;10781:138::-;-1:-1:-1;;;;;10894:16:0;;10847:7;10894:16;;;:7;:16;;;;;;10874:37;;:19;:37::i;2954:148::-;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;3061:1:::1;3045:6:::0;;3024:40:::1;::::0;-1:-1:-1;;;;;3045:6:0;;::::1;::::0;3024:40:::1;::::0;3061:1;;3024:40:::1;3092:1;3075:19:::0;;-1:-1:-1;;;;;;3075:19:0::1;::::0;;2954:148::o;24572:500::-;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24661:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;::::1;;24653:65;;;::::0;-1:-1:-1;;;24653:65:0;;9450:2:1;24653:65:0::1;::::0;::::1;9432:21:1::0;9489:2;9469:18;;;9462:30;9528:28;9508:18;;;9501:56;9574:18;;24653:65:0::1;9422:176:1::0;24653:65:0::1;24734:9;24729:336;24753:16;:23:::0;24749:27;::::1;24729:336;;;24825:7;-1:-1:-1::0;;;;;24802:30:0::1;:16;24819:1;24802:19;;;;;;-1:-1:-1::0;;;24802:19:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;24802:19:0::1;:30;24798:256;;;24875:16;24892:23:::0;;:27:::1;::::0;24918:1:::1;::::0;24892:27:::1;:::i;:::-;24875:45;;;;;;-1:-1:-1::0;;;24875:45:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;24853:16:::1;:19:::0;;-1:-1:-1;;;;;24875:45:0;;::::1;::::0;24870:1;;24853:19;::::1;;;-1:-1:-1::0;;;24853:19:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:67:::0;;-1:-1:-1;;;;;;24853:67:0::1;-1:-1:-1::0;;;;;24853:67:0;;::::1;;::::0;;24939:26;;::::1;::::0;;:17:::1;:26:::0;;;;;;:34;;-1:-1:-1;;24939:34:0::1;::::0;;24992:16:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;24992:22:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;24992:22:0;;;;;-1:-1:-1;;;;;;24992:22:0::1;::::0;;;;;24729:336:::1;24572:500:::0;:::o;24798:256::-:1;24778:3:::0;::::1;::::0;::::1;:::i;:::-;;;;24729:336;;;;24572:500:::0;:::o;10927:167::-;11005:4;11022:42;229:10;11046:9;11057:6;11022:9;:42::i;25084:137::-;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25175:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;25175:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25084:137::o;24350:210::-;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;24471:3:::1;24466;24446:17;4518:16:::0;24462:1:::1;24446:17;:::i;:::-;:23;;;;:::i;:::-;24445:29;;;;:::i;:::-;24435:6;:39;;24427:86;;;::::0;-1:-1:-1;;;24427:86:0;;11721:2:1;24427:86:0::1;::::0;::::1;11703:21:1::0;11760:2;11740:18;;;11733:30;11799:34;11779:18;;;11772:62;-1:-1:-1;;;11850:18:1;;;11843:32;11892:19;;24427:86:0::1;11693:224:1::0;24427:86:0::1;24536:16;:6:::0;24546:5:::1;24536:16;:::i;:::-;24524:9;:28:::0;-1:-1:-1;24350:210:0:o;22088:191::-;22154:11;;-1:-1:-1;;;;;22154:11:0;229:10;-1:-1:-1;;;;;22138:27:0;;22130:36;;;;;;22177:23;22203:24;22221:4;22203:9;:24::i;:::-;22177:50;;22238:33;22255:15;22238:16;:33::i;21947:133::-;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;21998:11:::1;:18:::0;;-1:-1:-1;;;;21998:18:0::1;-1:-1:-1::0;;;21998:18:0::1;::::0;;22041:31:::1;:15;22060:11;22041:31;:::i;:::-;22027:11;:45:::0;21947:133::o;25573:101::-;25652:13;;25618:4;;25642:24;;-1:-1:-1;;;;;25652:13:0;25642:9;:24::i;21154:785::-;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;21219:11:::1;::::0;-1:-1:-1;;;21219:11:0;::::1;;;21218:12;21210:47;;;::::0;-1:-1:-1;;;21210:47:0;;11021:2:1;21210:47:0::1;::::0;::::1;11003:21:1::0;11060:2;11040:18;;;11033:30;11099:25;11079:18;;;11072:53;11142:18;;21210:47:0::1;10993:173:1::0;21210:47:0::1;21379:15;:34:::0;;-1:-1:-1;;;;;;21379:34:0::1;21325:42;21379:34:::0;;::::1;::::0;;;21424:58:::1;21441:4;21325:42:::0;4518:16:::1;21424:8;:58::i;:::-;21527:16;-1:-1:-1::0;;;;;21527:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21509:56:0::1;;21574:4;21581:16;-1:-1:-1::0;;;;;21581:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21509:96;::::0;-1:-1:-1;;;;;;21509:96:0::1;::::0;;;;;;-1:-1:-1;;;;;3613:15:1;;;21509:96:0::1;::::0;::::1;3595:34:1::0;3665:15;;3645:18;;;3638:43;3530:18;;21509:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21493:13;:112:::0;;-1:-1:-1;;;;;;21493:112:0::1;-1:-1:-1::0;;;;;21493:112:0;;::::1;;::::0;;21616:15:::1;::::0;::::1;:31;21655:21;21686:4;21692:24;21686:4:::0;21692:9:::1;:24::i;:::-;21717:1;21719::::0;21721:7:::1;2778::::0;2805:6;-1:-1:-1;;;;;2805:6:0;;2740:79;21721:7:::1;21616:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;21616:129:0;;;-1:-1:-1;;;;;4330:15:1;;;21616:129:0::1;::::0;::::1;4312:34:1::0;4362:18;;;4355:34;;;;4405:18;;;4398:34;;;;4448:18;;;4441:34;4512:15;;;4491:19;;;4484:44;21729:15:0::1;4544:19:1::0;;;4537:35;4246:19;;21616:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;21772:18:0::1;21756:13;:34:::0;-1:-1:-1;21834:15:0::1;21820:11;:29:::0;21867:13:::1;::::0;21898:15:::1;::::0;21860:71:::1;::::0;-1:-1:-1;;;21860:71:0;;-1:-1:-1;;;;;21898:15:0;;::::1;21860:71;::::0;::::1;3866:51:1::0;-1:-1:-1;;3933:18:1;;;3926:34;21867:13:0;::::1;::::0;21860:29:::1;::::0;3839:18:1;;21860:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22783:443::-:0;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;22875:42:::1;-1:-1:-1::0;;;;;22864:53:0;::::1;;;22856:100;;;::::0;-1:-1:-1;;;22856:100:0;;12477:2:1;22856:100:0::1;::::0;::::1;12459:21:1::0;12516:2;12496:18;;;12489:30;12555:34;12535:18;;;12528:62;-1:-1:-1;;;12606:18:1;;;12599:32;12648:19;;22856:100:0::1;12449:224:1::0;22856:100:0::1;-1:-1:-1::0;;;;;22976:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22975:21;22967:61;;;::::0;-1:-1:-1;;;22967:61:0;;7562:2:1;22967:61:0::1;::::0;::::1;7544:21:1::0;7601:2;7581:18;;;7574:30;7640:29;7620:18;;;7613:57;7687:18;;22967:61:0::1;7534:177:1::0;22967:61:0::1;-1:-1:-1::0;;;;;23042:16:0;::::1;23061:1;23042:16:::0;;;:7:::1;:16;::::0;;;;;:20;23039:108:::1;;-1:-1:-1::0;;;;;23118:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;23098:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;23079:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;23039:108:::1;-1:-1:-1::0;;;;;23157:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;23157:27:0::1;23180:4;23157:27:::0;;::::1;::::0;;;23195:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;23195:23:0::1;::::0;;::::1;::::0;;22783:443::o;23234:478::-;2867:6;;-1:-1:-1;;;;;2867:6:0;229:10;2867:22;2859:67;;;;-1:-1:-1;;;2859:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23315:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;23307:60;;;::::0;-1:-1:-1;;;23307:60:0;;7562:2:1;23307:60:0::1;::::0;::::1;7544:21:1::0;7601:2;7581:18;;;7574:30;7640:29;7620:18;;;7613:57;7687:18;;23307:60:0::1;7534:177:1::0;23307:60:0::1;23383:9;23378:327;23402:9;:16:::0;23398:20;::::1;23378:327;;;23460:7;-1:-1:-1::0;;;;;23444:23:0::1;:9;23454:1;23444:12;;;;;;-1:-1:-1::0;;;23444:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;23444:12:0::1;:23;23440:254;;;23503:9;23513:16:::0;;:20:::1;::::0;23532:1:::1;::::0;23513:20:::1;:::i;:::-;23503:31;;;;;;-1:-1:-1::0;;;23503:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;23488:9:::1;:12:::0;;-1:-1:-1;;;;;23503:31:0;;::::1;::::0;23498:1;;23488:12;::::1;;;-1:-1:-1::0;;;23488:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;23488:46:0::1;-1:-1:-1::0;;;;;23488:46:0;;::::1;;::::0;;23553:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;23592:11:::1;:20:::0;;;;:28;;-1:-1:-1;;23592:28:0::1;::::0;;23639:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;23639:15:0::1;;;;;;;;23440:254;23420:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23378:327;;12350:335:::0;-1:-1:-1;;;;;12443:19:0;;12435:68;;;;-1:-1:-1;;;12435:68:0;;10616:2:1;12435:68:0;;;10598:21:1;10655:2;10635:18;;;10628:30;10694:34;10674:18;;;10667:62;-1:-1:-1;;;10745:18:1;;;10738:34;10789:19;;12435:68:0;10588:226:1;12435:68:0;-1:-1:-1;;;;;12522:21:0;;12514:68;;;;-1:-1:-1;;;12514:68:0;;6400:2:1;12514:68:0;;;6382:21:1;6439:2;6419:18;;;6412:30;6478:34;6458:18;;;6451:62;-1:-1:-1;;;6529:18:1;;;6522:32;6571:19;;12514:68:0;6372:224:1;12514:68:0;-1:-1:-1;;;;;12593:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12645:32;;13176:25:1;;;12645:32:0;;13149:18:1;12645:32:0;;;;;;;12350:335;;;:::o;12693:2320::-;-1:-1:-1;;;;;12781:18:0;;12773:68;;;;-1:-1:-1;;;12773:68:0;;10210:2:1;12773:68:0;;;10192:21:1;10249:2;10229:18;;;10222:30;10288:34;10268:18;;;10261:62;-1:-1:-1;;;10339:18:1;;;10332:35;10384:19;;12773:68:0;10182:227:1;12773:68:0;-1:-1:-1;;;;;12860:16:0;;12852:64;;;;-1:-1:-1;;;12852:64:0;;5585:2:1;12852:64:0;;;5567:21:1;5624:2;5604:18;;;5597:30;5663:34;5643:18;;;5636:62;-1:-1:-1;;;5714:18:1;;;5707:33;5757:19;;12852:64:0;5557:225:1;12852:64:0;12944:1;12935:6;:10;12927:64;;;;-1:-1:-1;;;12927:64:0;;9040:2:1;12927:64:0;;;9022:21:1;9079:2;9059:18;;;9052:30;9118:34;9098:18;;;9091:62;-1:-1:-1;;;9169:18:1;;;9162:39;9218:19;;12927:64:0;9012:231:1;12927:64:0;-1:-1:-1;;;;;13011:21:0;;;;;;:17;:21;;;;;;;;13010:22;13002:58;;;;-1:-1:-1;;;13002:58:0;;12880:2:1;13002:58:0;;;12862:21:1;12919:2;12899:18;;;12892:30;-1:-1:-1;;;12938:18:1;;;12931:53;13001:18;;13002:58:0;12852:173:1;13002:58:0;13098:10;13080:29;;;;:17;:29;;;;;;;;13079:30;13071:66;;;;-1:-1:-1;;;13071:66:0;;12880:2:1;13071:66:0;;;12862:21:1;12919:2;12899:18;;;12892:30;-1:-1:-1;;;12938:18:1;;;12931:53;13001:18;;13071:66:0;12852:173:1;13071:66:0;2778:7;2805:6;-1:-1:-1;;;;;13153:15:0;;;2805:6;;13153:15;;;;:32;;-1:-1:-1;2778:7:0;2805:6;-1:-1:-1;;;;;13172:13:0;;;2805:6;;13172:13;;13153:32;13150:1659;;;13205:16;;-1:-1:-1;;;13205:16:0;;;;13202:168;;;13255:10;13246:20;;;;:8;:20;;;;;:27;;;;;13242:113;;13321:14;;;;;;;;-1:-1:-1;13321:14:0;;;;;;;;;;13330:4;13321:14;;;;;;13307:10;13298:20;;:8;:20;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13298:37:0;;;;;;;;;;13242:113;13417:13;;-1:-1:-1;;;;;13409:21:0;;;13417:13;;13409:21;:55;;;;-1:-1:-1;13448:15:0;;-1:-1:-1;;;;;13434:30:0;;;13448:15;;13434:30;;13409:55;:82;;;;-1:-1:-1;;;;;;13469:22:0;;;;;;:18;:22;;;;;;;;13468:23;13409:82;13406:699;;;13520:11;;-1:-1:-1;;;13520:11:0;;;;13512:48;;;;-1:-1:-1;;;13512:48:0;;12124:2:1;13512:48:0;;;12106:21:1;12163:2;12143:18;;;12136:30;12202:26;12182:18;;;12175:54;12246:18;;13512:48:0;12096:174:1;13512:48:0;13613:9;;13596:13;13606:2;13596:9;:13::i;:::-;13587:22;;:6;:22;:::i;:::-;:35;;13579:67;;;;-1:-1:-1;;;13579:67:0;;11373:2:1;13579:67:0;;;11355:21:1;11412:2;11392:18;;;11385:30;-1:-1:-1;;;11431:18:1;;;11424:49;11490:18;;13579:67:0;11345:169:1;13579:67:0;13675:1;13665:7;:11;13706:1;13695:8;:12;13729:16;;-1:-1:-1;;;13729:16:0;;;;13726:364;;;13787:15;13773:11;;:29;13770:301;;;13849:13;;13839:6;:23;;13831:32;;;;;;-1:-1:-1;;;;;13898:12:0;;;;;;:8;:12;;;;;:16;13917:15;-1:-1:-1;13890:81:0;;;;-1:-1:-1;;;13890:81:0;;6803:2:1;13890:81:0;;;6785:21:1;6842:2;6822:18;;;6815:30;6881:34;6861:18;;;6854:62;-1:-1:-1;;;6932:18:1;;;6925:32;6974:19;;13890:81:0;6775:224:1;13890:81:0;14017:30;:15;14036:10;14017:30;:::i;:::-;-1:-1:-1;;;;;13998:12:0;;;;;;:8;:12;;;;;:49;13770:301;14152:13;;-1:-1:-1;;;;;14146:19:0;;;14152:13;;14146:19;:55;;;;-1:-1:-1;14185:15:0;;-1:-1:-1;;;;;14169:32:0;;;14185:15;;14169:32;;14146:55;:85;;;;-1:-1:-1;;;;;;14207:24:0;;;;;;:18;:24;;;;;;;;14205:26;14146:85;14142:168;;;14262:1;14252:7;:11;14293:1;14282:8;:12;14142:168;14326:28;14357:24;14375:4;14357:9;:24::i;:::-;14414:6;;14326:55;;-1:-1:-1;;;;14414:6:0;;;;14413:7;:32;;;;-1:-1:-1;14432:13:0;;-1:-1:-1;;;;;14424:21:0;;;14432:13;;14424:21;;14413:32;:47;;;;-1:-1:-1;14449:11:0;;-1:-1:-1;;;14449:11:0;;;;14413:47;14410:388;;;14484:24;;14481:110;;14533:38;14550:20;14533:16;:38::i;:::-;14638:21;14681:22;;14678:105;;14728:35;14741:21;14728:12;:35::i;:::-;14410:388;;13150:1659;;-1:-1:-1;;;;;14854:24:0;;14819:12;14854:24;;;:18;:24;;;;;;14834:4;;14854:24;;;:50;;-1:-1:-1;;;;;;14882:22:0;;;;;;:18;:22;;;;;;;;14854:50;14851:96;;;-1:-1:-1;14930:5:0;14851:96;14967:38;14982:4;14987:2;14990:6;14997:7;14967:14;:38::i;:::-;12693:2320;;;;:::o;1286:190::-;1372:7;1408:12;1400:6;;;;1392:29;;;;-1:-1:-1;;;1392:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1432:9:0;1444:5;1448:1;1444;:5;:::i;:::-;1432:17;1286:190;-1:-1:-1;;;;;1286:190:0:o;15520:147::-;15577:11;;-1:-1:-1;;;;;15577:11:0;:35;15598:13;:6;15609:1;15598:10;:13::i;:::-;15577:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15623:12:0;;-1:-1:-1;;;;;15623:12:0;:36;15645:13;:6;15656:1;15645:10;:13::i;:::-;15623:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11743:254;11810:7;11849;;11838;:18;;11830:73;;;;-1:-1:-1;;;11830:73:0;;5989:2:1;11830:73:0;;;5971:21:1;6028:2;6008:18;;;6001:30;6067:34;6047:18;;;6040:62;-1:-1:-1;;;6118:18:1;;;6111:40;6168:19;;11830:73:0;5961:232:1;11830:73:0;11914:19;11937:10;:8;:10::i;:::-;11914:33;-1:-1:-1;11965:24:0;:7;11914:33;11965:11;:24::i;:::-;11958:31;11743:254;-1:-1:-1;;;11743:254:0:o;15021:483::-;5633:6;:13;;-1:-1:-1;;;;5633:13:0;-1:-1:-1;;;5633:13:0;;;15123:16:::1;::::0;;15137:1:::1;15123:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15123:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15123:16:0::1;15099:40;;15168:4;15150;15155:1;15150:7;;;;;;-1:-1:-1::0;;;15150:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;15150:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15194:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15194:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15150:7;;15194:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15184:4;15189:1;15184:7;;;;;;-1:-1:-1::0;;;15184:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;15184:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15259:15:::1;::::0;15227:62:::1;::::0;15244:4:::1;::::0;15259:15:::1;15277:11:::0;15227:8:::1;:62::i;:::-;15300:15;::::0;:196:::1;::::0;-1:-1:-1;;;15300:196:0;;-1:-1:-1;;;;;15300:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;15381:11;;15300:15:::1;::::0;15423:4;;15450::::1;::::0;15470:15:::1;::::0;15300:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5669:6:0;:14;;-1:-1:-1;;;;5669:14:0;;;-1:-1:-1;;;;15021:483:0:o;15679:815::-;15791:7;15787:40;;15813:14;:12;:14::i;:::-;-1:-1:-1;;;;;15842:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;15866:22:0;;;;;;:11;:22;;;;;;;;15865:23;15842:46;15838:597;;;15905:48;15927:6;15935:9;15946:6;15905:21;:48::i;:::-;15838:597;;;-1:-1:-1;;;;;15976:19:0;;;;;;:11;:19;;;;;;;;15975:20;:46;;;;-1:-1:-1;;;;;;15999:22:0;;;;;;:11;:22;;;;;;;;15975:46;15971:464;;;16038:46;16058:6;16066:9;16077:6;16038:19;:46::i;15971:464::-;-1:-1:-1;;;;;16107:19:0;;;;;;:11;:19;;;;;;;;16106:20;:47;;;;-1:-1:-1;;;;;;16131:22:0;;;;;;:11;:22;;;;;;;;16130:23;16106:47;16102:333;;;16170:44;16188:6;16196:9;16207:6;16170:17;:44::i;16102:333::-;-1:-1:-1;;;;;16236:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;16259:22:0;;;;;;:11;:22;;;;;;;;16236:45;16232:203;;;16298:48;16320:6;16328:9;16339:6;16298:21;:48::i;16232:203::-;16379:44;16397:6;16405:9;16416:6;16379:17;:44::i;:::-;16449:7;16445:41;;16471:15;12281;;12271:7;:25;12318:16;;12307:8;:27;12227:115;1737:132;1795:7;1822:39;1826:1;1829;1822:39;;;;;;;;;;;;;;;;;:3;:39::i;19586:163::-;19627:7;19648:15;19665;19684:19;:17;:19::i;:::-;19647:56;;-1:-1:-1;19647:56:0;-1:-1:-1;19721:20:0;19647:56;;19721:11;:20::i;:::-;19714:27;;;;19586:163;:::o;12005:210::-;12051:7;;:12;:29;;;;-1:-1:-1;12067:8:0;;:13;12051:29;12048:41;;;12005:210::o;12048:41::-;12117:7;;;12099:15;:25;12154:8;;;12135:16;:27;-1:-1:-1;12173:11:0;;;;12195:12;12005:210::o;17566:549::-;17669:15;17686:23;17711:12;17725:23;17750:12;17764:13;17781:19;17792:7;17781:10;:19::i;:::-;-1:-1:-1;;;;;17829:15:0;;;;;;:7;:15;;;;;;17668:132;;-1:-1:-1;17668:132:0;;-1:-1:-1;17668:132:0;;-1:-1:-1;17668:132:0;-1:-1:-1;17668:132:0;-1:-1:-1;17668:132:0;-1:-1:-1;17829:28:0;;17849:7;17829:19;:28::i;:::-;-1:-1:-1;;;;;17811:15:0;;;;;;:7;:15;;;;;;;;:46;;;;17886:7;:15;;;;:28;;17906:7;17886:19;:28::i;:::-;-1:-1:-1;;;;;17868:15:0;;;;;;;:7;:15;;;;;;:46;;;;17946:18;;;;;;;:39;;17969:15;17946:22;:39::i;:::-;-1:-1:-1;;;;;17925:18:0;;;;;;:7;:18;;;;;:60;17997:16;18007:5;17997:9;:16::i;:::-;18024:23;18036:4;18042;18024:11;:23::i;:::-;18080:9;-1:-1:-1;;;;;18063:44:0;18072:6;-1:-1:-1;;;;;18063:44:0;;18091:15;18063:44;;;;13176:25:1;;13164:2;13149:18;;13131:76;18063:44:0;;;;;;;;17566:549;;;;;;;;;:::o;16996:564::-;17097:15;17114:23;17139:12;17153:23;17178:12;17192:13;17209:19;17220:7;17209:10;:19::i;:::-;-1:-1:-1;;;;;17257:15:0;;;;;;:7;:15;;;;;;17096:132;;-1:-1:-1;17096:132:0;;-1:-1:-1;17096:132:0;;-1:-1:-1;17096:132:0;-1:-1:-1;17096:132:0;-1:-1:-1;17096:132:0;-1:-1:-1;17257:28:0;;17096:132;17257:19;:28::i;:::-;-1:-1:-1;;;;;17239:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;17317:18;;;;;:7;:18;;;;;:39;;17340:15;17317:22;:39::i;:::-;-1:-1:-1;;;;;17296:18:0;;;;;;:7;:18;;;;;;;;:60;;;;17388:7;:18;;;;:39;;17411:15;17388:22;:39::i;16502:488::-;16601:15;16618:23;16643:12;16657:23;16682:12;16696:13;16713:19;16724:7;16713:10;:19::i;:::-;-1:-1:-1;;;;;16761:15:0;;;;;;:7;:15;;;;;;16600:132;;-1:-1:-1;16600:132:0;;-1:-1:-1;16600:132:0;;-1:-1:-1;16600:132:0;-1:-1:-1;16600:132:0;-1:-1:-1;16600:132:0;-1:-1:-1;16761:28:0;;16600:132;16761:19;:28::i;18121:622::-;18224:15;18241:23;18266:12;18280:23;18305:12;18319:13;18336:19;18347:7;18336:10;:19::i;:::-;-1:-1:-1;;;;;18384:15:0;;;;;;:7;:15;;;;;;18223:132;;-1:-1:-1;18223:132:0;;-1:-1:-1;18223:132:0;;-1:-1:-1;18223:132:0;-1:-1:-1;18223:132:0;-1:-1:-1;18223:132:0;-1:-1:-1;18384:28:0;;18404:7;18384:19;:28::i;:::-;-1:-1:-1;;;;;18366:15:0;;;;;;:7;:15;;;;;;;;:46;;;;18441:7;:15;;;;:28;;18461:7;18441:19;:28::i;1877:189::-;1963:7;1998:12;1991:5;1983:28;;;;-1:-1:-1;;;1983:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2022:9:0;2034:5;2038:1;2034;:5;:::i;19757:554::-;19854:7;;19807;;;;4518:16;19807:7;19908:289;19932:9;:16;19928:20;;19908:289;;;19998:7;19974;:21;19982:9;19992:1;19982:12;;;;;;-1:-1:-1;;;19982:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19982:12:0;19974:21;;;;;;;;;;;;;:31;;:66;;;20033:7;20009;:21;20017:9;20027:1;20017:12;;;;;;-1:-1:-1;;;20017:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20017:12:0;20009:21;;;;;;;;;;;;;:31;19974:66;19970:97;;;-1:-1:-1;;20050:7:0;;;4518:16;;-1:-1:-1;19757:554:0;-1:-1:-1;;19757:554:0:o;19970:97::-;20092:34;20104:7;:21;20112:9;20122:1;20112:12;;;;;;-1:-1:-1;;;20112:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20112:12:0;20104:21;;;;;;;;;;;;;20092:7;;:11;:34::i;:::-;20082:44;;20151:34;20163:7;:21;20171:9;20181:1;20171:12;;;;;;-1:-1:-1;;;20171:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20171:12:0;20163:21;;;;;;;;;;;;;20151:7;;:11;:34::i;:::-;20141:44;-1:-1:-1;19950:3:0;;;;:::i;:::-;;;;19908:289;;;-1:-1:-1;20220:7:0;;:20;;4518:16;20220:11;:20::i;:::-;20210:7;:30;20207:60;;;-1:-1:-1;;20250:7:0;;;4518:16;;-1:-1:-1;19757:554:0;-1:-1:-1;19757:554:0:o;20207:60::-;20286:7;;20295;;-1:-1:-1;19757:554:0;-1:-1:-1;19757:554:0:o;18751:468::-;18810:7;18819;18828;18837;18846;18855;18876:23;18901:12;18915:13;18932:39;18944:7;18953;;18962:8;;18932:11;:39::i;:::-;18875:96;;;;;;18982:19;19005:10;:8;:10::i;:::-;18982:33;;19027:15;19044:23;19069:12;19085:46;19097:7;19106:4;19112:5;19119:11;19085;:46::i;:::-;19026:105;;-1:-1:-1;19026:105:0;-1:-1:-1;19026:105:0;-1:-1:-1;19182:15:0;;-1:-1:-1;19199:4:0;;-1:-1:-1;19205:5:0;;-1:-1:-1;;;;;18751:468:0;;;;;;;:::o;1142:136::-;1200:7;1227:43;1231:1;1234;1227:43;;;;;;;;;;;;;;;;;:3;:43::i;955:179::-;1013:7;;1045:5;1049:1;1045;:5;:::i;:::-;1033:17;;1074:1;1069;:6;;1061:46;;;;-1:-1:-1;;;1061:46:0;;7206:2:1;1061:46:0;;;7188:21:1;7245:2;7225:18;;;7218:30;7284:29;7264:18;;;7257:57;7331:18;;1061:46:0;7178:177:1;20736:214:0;20789:19;20812:10;:8;:10::i;:::-;20789:33;-1:-1:-1;20833:13:0;20849:22;:5;20789:33;20849:9;:22::i;:::-;20925:4;20909:22;;;;:7;:22;;;;;;20833:38;;-1:-1:-1;20909:33:0;;20833:38;20909:26;:33::i;:::-;20900:4;20884:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;20736:214:0:o;20958:147::-;21036:7;;:17;;21048:4;21036:11;:17::i;:::-;21026:7;:27;21077:10;;:20;;21092:4;21077:14;:20::i;:::-;21064:10;:33;-1:-1:-1;;20958:147:0:o;19227:351::-;19320:7;;;;19373:28;19397:3;19373:19;:7;19385:6;19373:11;:19::i;:::-;:23;;:28::i;:::-;19358:43;-1:-1:-1;19412:13:0;19428:29;19453:3;19428:20;:7;19440;19428:11;:20::i;:29::-;19412:45;-1:-1:-1;19468:23:0;19494:28;19412:45;19494:17;:7;19506:4;19494:11;:17::i;:::-;:21;;:28::i;:::-;19468:54;19558:4;;-1:-1:-1;19564:5:0;;-1:-1:-1;19227:351:0;;-1:-1:-1;;;;;19227:351:0:o;20319:409::-;20429:7;;;;20485:24;:7;20497:11;20485;:24::i;:::-;20467:42;-1:-1:-1;20520:12:0;20535:21;:4;20544:11;20535:8;:21::i;:::-;20520:36;-1:-1:-1;20567:13:0;20583:22;:5;20593:11;20583:9;:22::i;:::-;20567:38;-1:-1:-1;20616:23:0;20642:28;20567:38;20642:17;:7;20654:4;20642:11;:17::i;:28::-;20689:7;;;;-1:-1:-1;20715:4:0;;-1:-1:-1;20319:409:0;;-1:-1:-1;;;;;;;20319:409:0:o;1484:245::-;1542:7;1565:6;1562:46;;-1:-1:-1;1595:1:0;1588:8;;1562:46;1618:9;1630:5;1634:1;1630;:5;:::i;:::-;1618:17;-1:-1:-1;1663:1:0;1654:5;1658:1;1618:17;1654:5;:::i;:::-;:10;1646:56;;;;-1:-1:-1;;;1646:56:0;;8277:2:1;1646:56:0;;;8259:21:1;8316:2;8296:18;;;8289:30;8355:34;8335:18;;;8328:62;-1:-1:-1;;;8406:18:1;;;8399:31;8447:19;;1646:56:0;8249:223:1;14:257;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:392::-;1481:6;1489;1542:2;1530:9;1521:7;1517:23;1513:32;1510:2;;;1563:6;1555;1548:22;1510:2;1607:9;1594:23;1626:31;1651:5;1626:31;:::i;:::-;1676:5;-1:-1:-1;1733:2:1;1718:18;;1705:32;1746:30;1705:32;1746:30;:::i;1813:325::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:2;;;1963:6;1955;1948:22;1910:2;2007:9;1994:23;2026:31;2051:5;2026:31;:::i;:::-;2076:5;2128:2;2113:18;;;;2100:32;;-1:-1:-1;;;1900:238:1:o;2143:251::-;2199:6;2252:2;2240:9;2231:7;2227:23;2223:32;2220:2;;;2273:6;2265;2258:22;2220:2;2317:9;2304:23;2336:28;2358:5;2336:28;:::i;2399:255::-;2466:6;2519:2;2507:9;2498:7;2494:23;2490:32;2487:2;;;2540:6;2532;2525:22;2487:2;2577:9;2571:16;2596:28;2618:5;2596:28;:::i;2659:190::-;2718:6;2771:2;2759:9;2750:7;2746:23;2742:32;2739:2;;;2792:6;2784;2777:22;2739:2;-1:-1:-1;2820:23:1;;2729:120;-1:-1:-1;2729:120:1:o;2854:316::-;2942:6;2950;2958;3011:2;2999:9;2990:7;2986:23;2982:32;2979:2;;;3032:6;3024;3017:22;2979:2;3066:9;3060:16;3050:26;;3116:2;3105:9;3101:18;3095:25;3085:35;;3160:2;3149:9;3145:18;3139:25;3129:35;;2969:201;;;;;:::o;4775:603::-;4887:4;4916:2;4945;4934:9;4927:21;4977:6;4971:13;5020:6;5015:2;5004:9;5000:18;4993:34;5045:4;5058:140;5072:6;5069:1;5066:13;5058:140;;;5167:14;;;5163:23;;5157:30;5133:17;;;5152:2;5129:26;5122:66;5087:10;;5058:140;;;5216:6;5213:1;5210:13;5207:2;;;5286:4;5281:2;5272:6;5261:9;5257:22;5253:31;5246:45;5207:2;-1:-1:-1;5362:2:1;5341:15;-1:-1:-1;;5337:29:1;5322:45;;;;5369:2;5318:54;;4896:482;-1:-1:-1;;;4896:482:1:o;8477:356::-;8679:2;8661:21;;;8698:18;;;8691:30;8757:34;8752:2;8737:18;;8730:62;8824:2;8809:18;;8651:182::o;13212:983::-;13474:4;13522:3;13511:9;13507:19;13553:6;13542:9;13535:25;13579:2;13617:6;13612:2;13601:9;13597:18;13590:34;13660:3;13655:2;13644:9;13640:18;13633:31;13684:6;13719;13713:13;13750:6;13742;13735:22;13788:3;13777:9;13773:19;13766:26;;13827:2;13819:6;13815:15;13801:29;;13848:4;13861:195;13875:6;13872:1;13869:13;13861:195;;;13940:13;;-1:-1:-1;;;;;13936:39:1;13924:52;;14031:15;;;;13996:12;;;;13972:1;13890:9;13861:195;;;-1:-1:-1;;;;;;;14112:32:1;;;;14107:2;14092:18;;14085:60;-1:-1:-1;;;14176:3:1;14161:19;14154:35;14073:3;13483:712;-1:-1:-1;;;13483:712:1:o;14389:128::-;14429:3;14460:1;14456:6;14453:1;14450:13;14447:2;;;14466:18;;:::i;:::-;-1:-1:-1;14502:9:1;;14437:80::o;14522:217::-;14562:1;14588;14578:2;;-1:-1:-1;;;14613:31:1;;14667:4;14664:1;14657:15;14695:4;14620:1;14685:15;14578:2;-1:-1:-1;14724:9:1;;14568:171::o;14744:168::-;14784:7;14850:1;14846;14842:6;14838:14;14835:1;14832:21;14827:1;14820:9;14813:17;14809:45;14806:2;;;14857:18;;:::i;:::-;-1:-1:-1;14897:9:1;;14796:116::o;14917:125::-;14957:4;14985:1;14982;14979:8;14976:2;;;14990:18;;:::i;:::-;-1:-1:-1;15027:9:1;;14966:76::o;15047:135::-;15086:3;-1:-1:-1;;15107:17:1;;15104:2;;;15127:18;;:::i;:::-;-1:-1:-1;15174:1:1;15163:13;;15094:88::o;15187:127::-;15248:10;15243:3;15239:20;15236:1;15229:31;15279:4;15276:1;15269:15;15303:4;15300:1;15293:15;15319:131;-1:-1:-1;;;;;15394:31:1;;15384:42;;15374:2;;15440:1;15437;15430:12;15455:118;15541:5;15534:13;15527:21;15520:5;15517:32;15507:2;;15563:1;15560;15553:12

Swarm Source

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