ETH Price: $2,672.31 (+1.42%)

Token

Golden Tiger (TIGER)
 

Overview

Max Total Supply

1,000,000,000 TIGER

Holders

77

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
717.108222402 TIGER

Value
$0.00
0xf847552ffafa48a564125b8a9cf353e9d6851b4f
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:
GoldenTiger

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-30
*/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

    string private constant _name = "Golden Tiger";
    string private constant _symbol = "TIGER";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 10;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 10;

    uint256 public _liquidityFee = 2;

    uint256 public _timeBetweenTransactions = 2 minutes;
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previousLiqFee = _liquidityFee;
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    struct ValueInfo {
         uint256 rAmount;
            uint256 rTransferAmount;
            uint256 rFee;
            uint256 tTransferAmount;
            uint256 tFee;
            uint256 tTeam;
          uint256 tLiq;
    } 
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0x6b39FeA5b47fbd19381Ad1362376C1E39f9a0781);
    address payable private _marketingAddress = payable(0x289Ff7dB03E509EFC171062EfcDb1b63cabD61Db);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    bool public launchAddLiquidity = false;
    bool public antiwhaleEnabled = false;
    uint256 public launchTime = 0;

    /**
        Sniper Bot configuration
     */
    uint256 public _launchBlock = 0;
    uint256 public _finalSniperBlock = 25;
    uint256 public _increaseAmountBy = 1000 * 10 **9;
    uint256 public _defaultAmountBot = 100 * 10**9;

    bool public antibotEnable = true;


    uint256 public _maxTxAmount = 10000000 * 10**9; 
    uint256 public _maxWalletSize = 10000000 * 10**9; //1
    uint256 public _swapTokensAtAmount = 1000000 * 10**9; //0.1

    mapping(address => bool) private _isExcludedAntiwhale;
    mapping(address => bool) private _isExcludedMaxwallet;
    mapping(address => uint) private _transactionLockTime;
    mapping(address => bool) private _isExcludedFromTransactionLockTime; 
    mapping(address => bool) private _isExcludedFromSniperBot;
    mapping(uint => bool) private _amountIncreasing; 

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



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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedMaxwallet[address(this)] = true;
        _isExcludedAntiwhale[address(this)] = true;
        _isExcludedFromTransactionLockTime[address(this)] = true;
        _isExcludedFromTransactionLockTime[owner()]  = true;
        _isExcludedFromSniperBot[owner()]= true;
        _isExcludedFromSniperBot[address(this)] = true;
        
        preTrader[owner()] = true;
        
        bots[address(0x66f049111958809841Bbe4b81c034Da2D953AA0c)] = true;
        bots[address(0x000000005736775Feb0C8568e7DEe77222a26880)] = true;
        bots[address(0x00000000003b3cc22aF3aE1EAc0440BcEe416B40)] = true;
        bots[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = true;
        bots[address(0xbcC7f6355bc08f6b7d3a41322CE4627118314763)] = true;
        bots[address(0x1d6E8BAC6EA3730825bde4B005ed7B2B39A2932d)] = true;
        bots[address(0x000000000035B5e5ad9019092C665357240f594e)] = true;
        bots[address(0x1315c6C26123383a2Eb369a53Fb72C4B9f227EeC)] = true;
        bots[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = true;
        bots[address(0x90484Bb9bc05fD3B5FF1fe412A492676cd81790C)] = true;
        bots[address(0xA62c5bA4D3C95b3dDb247EAbAa2C8E56BAC9D6dA)] = true;
        bots[address(0x42c1b5e32d625b6C618A02ae15189035e0a92FE7)] = true;
        bots[address(0xA94E56EFc384088717bb6edCccEc289A72Ec2381)] = true;
        bots[address(0xf13FFadd3682feD42183AF8F3f0b409A9A0fdE31)] = true;
        bots[address(0x376a6EFE8E98f3ae2af230B3D45B8Cc5e962bC27)] = true;
        bots[address(0xEE2A9147ffC94A73f6b945A6DB532f8466B78830)] = true;
        bots[address(0xdE2a6d80989C3992e11B155430c3F59792FF8Bb7)] = true;
        bots[address(0x1e62A12D4981e428D3F4F28DF261fdCB2CE743Da)] = true;
        bots[address(0x5136a9A5D077aE4247C7706b577F77153C32A01C)] = true;
        bots[address(0x0E388888309d64e97F97a4740EC9Ed3DADCA71be)] = true;
        bots[address(0x255D9BA73a51e02d26a5ab90d534DB8a80974a12)] = true;
        bots[address(0xA682A66Ea044Aa1DC3EE315f6C36414F73054b47)] = true;
        bots[address(0x80e09203480A49f3Cf30a4714246f7af622ba470)] = true;
        bots[address(0x12e48B837AB8cB9104C5B95700363547bA81c8a4)] = true;
        bots[address(0x3066Cc1523dE539D36f94597e233719727599693)] = true;
        bots[address(0x201044fa39866E6dD3552D922CDa815899F63f20)] = true;
        bots[address(0x6F3aC41265916DD06165b750D88AB93baF1a11F8)] = true;
        bots[address(0x27C71ef1B1bb5a9C9Ee0CfeCEf4072AbAc686ba6)] = true;
        bots[address(0x27C71ef1B1bb5a9C9Ee0CfeCEf4072AbAc686ba6)] = true;
        bots[address(0x5668e6e8f3C31D140CC0bE918Ab8bB5C5B593418)] = true;
        bots[address(0x4b9BDDFB48fB1529125C14f7730346fe0E8b5b40)] = true;
        bots[address(0x7e2b3808cFD46fF740fBd35C584D67292A407b95)] = true;
        bots[address(0xe89C7309595E3e720D8B316F065ecB2730e34757)] = true;
        bots[address(0x725AD056625326B490B128E02759007BA5E4eBF1)] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

    function setTimeBetweenTransaction(uint _val) public onlyOwner{
        require(_val <= 1 hours, "Max 1  hour");
        _timeBetweenTransactions = _val;
    }

    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 setMarketingWallet(address payable _wallet) public onlyOwner {
        _marketingAddress = _wallet;
    }
    function setDevWallet(address payable _wallet) public onlyOwner {
        _developmentAddress = _wallet;
    }


    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function setFinalSniperBlock(uint _val) public onlyOwner {
        _finalSniperBlock = _val;
    }
    function setIncreaseAmountBy(uint val) public onlyOwner {
        _increaseAmountBy = val;
    }
    function setDefaultAmountBot(uint _val) public onlyOwner {
        require(_val >= 100 * 10 **9);
        _defaultAmountBot = _val;
    }

    function setAntibotStatus(bool _value) public onlyOwner {
        antibotEnable = _value;
    }

    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 isExcludedAntiwhale(address acc) public view returns(bool) {
    return _isExcludedAntiwhale[acc];
    }
    function setExcludeAntiwhale(address acc, bool value) public onlyOwner {
        _isExcludedAntiwhale[acc] = value;
    }
    function isExcludedFromMaxWallet(address acc) public view returns(bool) {
     return _isExcludedMaxwallet[acc];
    }
    function setExcludeMaxWallet(address acc, bool value) public onlyOwner {
        _isExcludedMaxwallet[acc] = value;
    }

    function isExcludedFromSniperBot(address acc) public view returns(bool) {
     return _isExcludedFromSniperBot[acc];
    }
    function setExcludeFromSniperBot(address acc, bool value) public onlyOwner {
        _isExcludedFromSniperBot[acc] = value;
    }

     function isExcludedFromTransactionLockTime(address acc) public view returns(bool) {
    return _isExcludedFromTransactionLockTime[acc];
    }
    function setExcludeTransactionLockTime(address acc, bool value) public onlyOwner {
        _isExcludedFromTransactionLockTime[acc] = value;
    }

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

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

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

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

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

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

   

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (to == uniswapV2Pair) {
                if(!launchAddLiquidity && launchTime == 0)  {
                launchAddLiquidity = true;
                launchTime = block.timestamp;
                _launchBlock = block.number;
                
                }
            }

            if(launchTime > 0) {
               if (antibotEnable) {
                if(!_isExcludedFromSniperBot[from] && !_isExcludedFromSniperBot[to]) {
                    if(block.number - _launchBlock <= _finalSniperBlock) {
                        if(!_amountIncreasing[block.number - _launchBlock]) {
                                _amountIncreasing[block.number - _launchBlock] = true;
                                _defaultAmountBot += _increaseAmountBy;
                        }
                    require(amount <= _defaultAmountBot, "Max amount reached!");
                    }
                }
               }
            }
            
        if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            if (antiwhaleEnabled) {
                if (!_isExcludedAntiwhale[from] && !_isExcludedAntiwhale[to]) {
                    require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                }
            }
            
        
            if(to != uniswapV2Pair && _maxWalletSize > 0) {
                if (!_isExcludedMaxwallet[from] && !_isExcludedMaxwallet[to]) {
                    require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                }
            }
            if (!_isExcludedFromTransactionLockTime[from] && !_isExcludedFromTransactionLockTime[to]) {
                    require(block.timestamp - _transactionLockTime[from] >= _timeBetweenTransactions, "Wait before make transaction");
                    _transactionLockTime[from] = block.timestamp;
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance.div(2));
                uint256 liquidityBalance = address(this).balance.mul(_liquidityFee).div(_taxFee + _liquidityFee);
                addLiquidity(contractTokenBalance.div(2), liquidityBalance);
                uint256 contractETHBalance = address(this).balance.sub(liquidityBalance);
                if (contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

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

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

    function sendETHToFee(uint256 amount) private {
        uint amountDev = amount.mul(20).div(100);
        uint amountMarketing = amount.mul(80).div(100);
        _developmentAddress.transfer(amountDev);
        _marketingAddress.transfer(amountMarketing);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

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

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

 

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

     
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();

     

    }

    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate =  _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);

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

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

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

    receive() external payable {}

    function _getValues(uint256 tAmount)
        internal
        view
        returns (ValueInfo memory)
    {
       
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 liq = tAmount.mul(_liquidityFee).div(100);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam,liq,  currentRate);
       
        
        return ValueInfo(rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam, liq);
    }

    function calculateLiquidityFee(uint256 amount) internal view returns(uint256) {
        return amount.mul(_liquidityFee).div(100);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0),
            block.timestamp
        );
    }
    
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        internal
        view
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tLiquidity = calculateLiquidityFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam).sub(tLiquidity);

        return (tTransferAmount, tFee, tTeam);
    }

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

        return (rAmount, rTransferAmount, rFee);
    }

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

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell, uint256 liqFee) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _liquidityFee = liqFee;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        require(_redisFeeOnBuy + _taxFeeOnBuy + liqFee <= 20, "max 20%");
        require(_redisFeeOnSell + _taxFeeOnSell + liqFee <= 20, "max 20%");
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set MAx transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        require(maxTxAmount >= 10000*10**9);
        _maxTxAmount = maxTxAmount;
    }

   
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        require(maxWalletSize >= 10000*10**9);
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }

   
    function setAntiwhaleStatus(bool _value) public onlyOwner {
        antiwhaleEnabled = _value;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_newOwner","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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_defaultAmountBot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSniperBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_increaseAmountBy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_timeBetweenTransactions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antibotEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiwhaleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"isExcludedAntiwhale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"isExcludedFromSniperBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"isExcludedFromTransactionLockTime","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchAddLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAntibotStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAntiwhaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setDefaultAmountBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_wallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeAntiwhale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromSniperBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeTransactionLockTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"liqFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setFinalSniperBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"val","type":"uint256"}],"name":"setIncreaseAmountBy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_wallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setTimeBetweenTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a670de0b6b3a764000060001962000a98565b620000289060001962000abb565b60065560016008819055600a6009819055818155600b8190556002600c8190556078600d55600e839055600f8290556010556011829055601255601680546001600160a01b0319908116736b39fea5b47fbd19381ad1362376c1e39f9a0781179091556017805490911673289ff7db03e509efc171062efcdb1b63cabd61db1790556019805463ffffffff60a81b1916600160b01b1781556000601a819055601b55601c5564e8d4a51000601d5564174876e800601e55601f805460ff19169091179055662386f26fc10000602081905560215566038d7ea4c680006022553480156200011457600080fd5b50604051620036b7380380620036b7833981016040819052620001379162000ae1565b600080546001600160a01b0319163390811782556040519091829160008051602062003697833981519152908290a350620001728162000987565b600654600260006200018c6000546001600160a01b031690565b6001600160a01b03168152602080820192909252604090810160002092909255601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519092839263c45a0155926004808401938290030181865afa1580156200020d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000233919062000ae1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000281573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a7919062000ae1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031b919062000ae1565b601980546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff199081166001908117909255308086528386208054831684179055601654871686528386208054831684179055601754871686528386208054831684179055808652602485528386208054831684179055602385528386208054831684179055602685528386208054831684179055855487168652838620805483168417905585548716865260278552838620805483168417905585528285208054821683179055845486168552601484528285208054821683179055601384527f3dd24f709decde09aab559ea199225d2433c105c4739dc42db228ce4940f31b980548216831790557f9904f8b26d047d8add47b122b968008e05a48bb0f5f3fe2d6df1ff6ff1ee1a5380548216831790557ff6d8711dff123fbbbf66b5ddfda7d721e727c075914ba62bb31893f79fbd441780548216831790557f1389ffb5a9753e612ad05dd5505e2de84b960a8f787b95534f835366f1cc1b0a80548216831790557fe279662a0ad8882cf3c600b812683733ee762af89b3d3df1d8d3f72a1c81d66080548216831790557f14cc097466ec3b3e302e9a0b2649a6a63d2975de4326c7a16b51c2f914a639d180548216831790557fb31f74b82725e2a88f0617c5c87dff9d076a6465f370e5b539989259af5c833980548216831790557f5925657cc7b392ded6e31d9a50b17e9d294b298338e316467f3f03758a14094380548216831790557f8c72077b8e85a0125587d436da66a405f40cbff5379a8473eabe8db662ccdd1d80548216831790557fa95f92a924fe7d6709b48061a362974eeebac171942d7fe674f08cacc433e37b80548216831790557f069d860b77af32ff80c065f24226ce49cde2874b0ba950b53dae993e25b013f980548216831790557f8e4716f3dfd90159d99a992cb83cbd69e91b219385102a35f1b9176b5ba2dd5080548216831790557fd44f9d5278d5b1b07e952cc3b0743cf0b95f2fa4351b7c79c5d5a0eb10af1ad180548216831790557f09808bb6fdd9da3eddbce70b04ad82a24c7171f3bd92eec88409779b059ff68680548216831790557f99f3bb76c209365c281ea802da243a621da96348645685d0707c4edda1f64c1780548216831790557fd46b35619477db180c99cb03ffae77535f590f241aab9023c6d34135f11adca080548216831790557f9ebff24410a0aa4ec6017ba3122ff00cb54ed793173874f28edfb0937ead9ebd80548216831790557faf1633e360e581e06c1278e5bac21f4ba8c6ed64126b3b30615872d74ecb1d2380548216831790557fa14165b2cd560237a56c13102c589cce922d814da1cc6414bd86dc13fa9ccdbb80548216831790557f2faa9420dc0bb26ea830552b1e02443d07a31d442d6ca6acfd5cff4231b34de480548216831790557f4d3cd2d7eb28f825c07ad8bda55a497b46fbd8dfa86fa7a14e584bb3dfc0e22980548216831790557f63190a8189a7706d11f30719f5d179089df0f866dea575785aec7d793fdee47480548216831790557f6c08bfc11c2d75504882dbaca52641e53ae9d48f73af7680774298e5919dad2880548216831790557fba7711752610695c979f9796e3bc9589eba8fd1478ae46e058a01e7e504a4f0080548216831790557efd9d07a7abb18697d24f42b7c29651ddc89420e1dd2f2e927fdf27343512e080548216831790557fb7d4ffd87cbc346ecc896fd9542a708374cc0903991723dcf2106554f37d9fb080548216831790557f23a92ff16835f2d5709ba985819781ef684abaea173d48ccf030f3d39e70add480548216831790557fe5956585347335b8f6d5e70f778a0e0533436220400f768176ac4101d25d336b80548216831790557f9a03de22f27299b70eb97600a57b2c88c28afcbe118d9a8cdeea9f2a7527b1df80548216831790557f8c18fb538bcd6cee7340aa97d2929973a40b735b4d34502232315da1fe730f9c80548216831790557f76872223b237a433973230c634627509965014809e52000043c6634817d6a6fb805482168317905573725ad056625326b490b128e02759007ba5e4ebf185527f902a00e84fd45e3c74bf67c30cd61c61ad8ed6adc079d83387aef889591d6a6e8054909116909117905582549051670de0b6b3a764000081529316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000b13565b6000546001600160a01b03163314620009e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811662000a4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620009de565b600080546040516001600160a01b03808516939216916000805160206200369783398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008262000ab657634e487b7160e01b600052601260045260246000fd5b500690565b60008282101562000adc57634e487b7160e01b600052601160045260246000fd5b500390565b60006020828403121562000af457600080fd5b81516001600160a01b038116811462000b0c57600080fd5b9392505050565b612b748062000b236000396000f3fe6080604052600436106103545760003560e01c806374010ece116101c6578063bdd795ef116100f7578063c9567bf911610095578063ea1644d51161006f578063ea1644d514610a1e578063f2fde38b14610a3e578063f383877a14610a5e578063ff59958814610a9757600080fd5b8063c9567bf9146109a3578063cb0da419146109b8578063dd62ed3e146109d857600080fd5b8063c0e61de0116100d1578063c0e61de014610938578063c3c3960c14610958578063c3c8cd801461096e578063c492f0461461098357600080fd5b8063bdd795ef146108b8578063bfd79284146108e8578063c097bbdc1461091857600080fd5b806395d89b4111610164578063a2e00d631161013e578063a2e00d631461081f578063a5d7144c1461083f578063a9059cbb14610878578063bbf5de771461089857600080fd5b806395d89b411461079857806398a5c315146107c65780639b29abee146107e657600080fd5b8063840da3b4116101a0578063840da3b41461072d57806386ea8459146107435780638da5cb5b146107645780638f9a55c01461078257600080fd5b806374010ece146106e1578063790ca413146107015780637d1db4a51461071757600080fd5b8063313ce567116102a05780636bc87c3a1161023e5780636fc3eaec116102185780636fc3eaec1461067d57806370a08231146106925780637141d189146106b2578063715018a6146106cc57600080fd5b80636bc87c3a1461060e5780636d8aa8f8146106245780636dd3d39f1461064457600080fd5b806346b4676d1161027a57806346b4676d1461058e57806349bd5a5e146105ae57806357d9a2fb146105ce5780635d098b38146105ee57600080fd5b8063313ce5671461053c5780633bf7840c146105585780633c10bcce1461056e57600080fd5b806318160ddd1161030d57806323b872dd116102e757806323b872dd146104d0578063275853a6146104f05780632f9c4569146105065780632fd689e31461052657600080fd5b806318160ddd146104755780631b6d804c146104905780631f53ac02146104b057600080fd5b806306fdde0314610360578063095ea7b3146103a75780630a09095e146103d75780630a3647c6146103fb57806316862c951461041d5780631694505e1461043d57600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b5060408051808201909152600c81526b23b7b63232b7102a34b3b2b960a11b60208201525b60405161039e9190612704565b60405180910390f35b3480156103b357600080fd5b506103c76103c236600461276e565b610ab8565b604051901515815260200161039e565b3480156103e357600080fd5b506103ed600d5481565b60405190815260200161039e565b34801561040757600080fd5b5061041b61041636600461279a565b610acf565b005b34801561042957600080fd5b5061041b6104383660046127c8565b610b19565b34801561044957600080fd5b5060185461045d906001600160a01b031681565b6040516001600160a01b03909116815260200161039e565b34801561048157600080fd5b50670de0b6b3a76400006103ed565b34801561049c57600080fd5b5061041b6104ab36600461279a565b610b6e565b3480156104bc57600080fd5b5061041b6104cb3660046127fd565b610b9d565b3480156104dc57600080fd5b506103c76104eb36600461281a565b610be9565b3480156104fc57600080fd5b506103ed601e5481565b34801561051257600080fd5b5061041b6105213660046127c8565b610c52565b34801561053257600080fd5b506103ed60225481565b34801561054857600080fd5b506040516009815260200161039e565b34801561056457600080fd5b506103ed601c5481565b34801561057a57600080fd5b5061041b6105893660046127c8565b610d16565b34801561059a57600080fd5b5061041b6105a936600461279a565b610d6b565b3480156105ba57600080fd5b5060195461045d906001600160a01b031681565b3480156105da57600080fd5b5061041b6105e93660046127c8565b610d9a565b3480156105fa57600080fd5b5061041b6106093660046127fd565b610def565b34801561061a57600080fd5b506103ed600c5481565b34801561063057600080fd5b5061041b61063f36600461285b565b610e3b565b34801561065057600080fd5b506103c761065f3660046127fd565b6001600160a01b031660009081526024602052604090205460ff1690565b34801561068957600080fd5b5061041b610e83565b34801561069e57600080fd5b506103ed6106ad3660046127fd565b610ece565b3480156106be57600080fd5b50601f546103c79060ff1681565b3480156106d857600080fd5b5061041b610ef0565b3480156106ed57600080fd5b5061041b6106fc36600461279a565b610f64565b34801561070d57600080fd5b506103ed601a5481565b34801561072357600080fd5b506103ed60205481565b34801561073957600080fd5b506103ed601d5481565b34801561074f57600080fd5b506019546103c790600160b81b900460ff1681565b34801561077057600080fd5b506000546001600160a01b031661045d565b34801561078e57600080fd5b506103ed60215481565b3480156107a457600080fd5b506040805180820190915260058152642a24a3a2a960d91b6020820152610391565b3480156107d257600080fd5b5061041b6107e136600461279a565b610fa6565b3480156107f257600080fd5b506103c76108013660046127fd565b6001600160a01b031660009081526026602052604090205460ff1690565b34801561082b57600080fd5b5061041b61083a366004612876565b610fd5565b34801561084b57600080fd5b506103c761085a3660046127fd565b6001600160a01b031660009081526023602052604090205460ff1690565b34801561088457600080fd5b506103c761089336600461276e565b6110c3565b3480156108a457600080fd5b5061041b6108b336600461279a565b6110d0565b3480156108c457600080fd5b506103c76108d33660046127fd565b60146020526000908152604090205460ff1681565b3480156108f457600080fd5b506103c76109033660046127fd565b60136020526000908152604090205460ff1681565b34801561092457600080fd5b5061041b6109333660046127c8565b61113f565b34801561094457600080fd5b5061041b61095336600461285b565b611194565b34801561096457600080fd5b506103ed601b5481565b34801561097a57600080fd5b5061041b6111d1565b34801561098f57600080fd5b5061041b61099e3660046128b1565b611225565b3480156109af57600080fd5b5061041b6112c6565b3480156109c457600080fd5b5061041b6109d336600461285b565b611305565b3480156109e457600080fd5b506103ed6109f3366004612935565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a2a57600080fd5b5061041b610a3936600461279a565b61134d565b348015610a4a57600080fd5b5061041b610a593660046127fd565b61138f565b348015610a6a57600080fd5b506103c7610a793660046127fd565b6001600160a01b031660009081526027602052604090205460ff1690565b348015610aa357600080fd5b506019546103c790600160c01b900460ff1681565b6000610ac5338484611479565b5060015b92915050565b6000546001600160a01b03163314610b025760405162461bcd60e51b8152600401610af99061296e565b60405180910390fd5b64174876e800811015610b1457600080fd5b601e55565b6000546001600160a01b03163314610b435760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03919091166000908152602460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b985760405162461bcd60e51b8152600401610af99061296e565b601c55565b6000546001600160a01b03163314610bc75760405162461bcd60e51b8152600401610af99061296e565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bf684848461159d565b610c488433610c4385604051806060016040528060288152602001612b17602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611df7565b611479565b5060019392505050565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03821660009081526014602052604090205460ff1615158115151415610ceb5760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610af9565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d405760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03919091166000908152602660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d955760405162461bcd60e51b8152600401610af99061296e565b601d55565b6000546001600160a01b03163314610dc45760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e195760405162461bcd60e51b8152600401610af99061296e565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e655760405162461bcd60e51b8152600401610af99061296e565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6016546001600160a01b0316336001600160a01b03161480610eb857506017546001600160a01b0316336001600160a01b0316145b610ec157600080fd5b47610ecb81611e31565b50565b6001600160a01b038116600090815260026020526040812054610ac990611ecd565b6000546001600160a01b03163314610f1a5760405162461bcd60e51b8152600401610af99061296e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610af99061296e565b6509184e72a000811015610fa157600080fd5b602055565b6000546001600160a01b03163314610fd05760405162461bcd60e51b8152600401610af99061296e565b602255565b6000546001600160a01b03163314610fff5760405162461bcd60e51b8152600401610af99061296e565b6008859055600a849055600c8190556009839055600b82905560148161102585886129b9565b61102f91906129b9565b11156110675760405162461bcd60e51b81526020600482015260076024820152666d61782032302560c81b6044820152606401610af9565b601481600b54600a5461107a91906129b9565b61108491906129b9565b11156110bc5760405162461bcd60e51b81526020600482015260076024820152666d61782032302560c81b6044820152606401610af9565b5050505050565b6000610ac533848461159d565b6000546001600160a01b031633146110fa5760405162461bcd60e51b8152600401610af99061296e565b610e1081111561113a5760405162461bcd60e51b815260206004820152600b60248201526a26b0bc101890103437bab960a91b6044820152606401610af9565b600d55565b6000546001600160a01b031633146111695760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03919091166000908152602360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111be5760405162461bcd60e51b8152600401610af99061296e565b601f805460ff1916911515919091179055565b6016546001600160a01b0316336001600160a01b0316148061120657506017546001600160a01b0316336001600160a01b0316145b61120f57600080fd5b600061121a30610ece565b9050610ecb81611f51565b6000546001600160a01b0316331461124f5760405162461bcd60e51b8152600401610af99061296e565b60005b828110156112c0578160056000868685818110611271576112716129d1565b905060200201602081019061128691906127fd565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806112b8816129e7565b915050611252565b50505050565b6000546001600160a01b031633146112f05760405162461bcd60e51b8152600401610af99061296e565b6019805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461132f5760405162461bcd60e51b8152600401610af99061296e565b60198054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b031633146113775760405162461bcd60e51b8152600401610af99061296e565b6509184e72a00081101561138a57600080fd5b602155565b6000546001600160a01b031633146113b95760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03811661141e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166114db5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af9565b6001600160a01b03821661153c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af9565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116015760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610af9565b6001600160a01b0382166116635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610af9565b600081116116c55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610af9565b6019546001600160a01b038381169116141561171657601954600160b81b900460ff161580156116f55750601a54155b15611716576019805460ff60b81b1916600160b81b17905542601a5543601b555b601a541561184a57601f5460ff161561184a576001600160a01b03831660009081526027602052604090205460ff1615801561176b57506001600160a01b03821660009081526027602052604090205460ff16155b1561184a57601c54601b546117809043612a02565b1161184a5760286000601b54436117979190612a02565b815260208101919091526040016000205460ff1661180257600160286000601b54436117c39190612a02565b815260200190815260200160002060006101000a81548160ff021916908315150217905550601d54601e60008282546117fc91906129b9565b90915550505b601e5481111561184a5760405162461bcd60e51b81526020600482015260136024820152724d617820616d6f756e7420726561636865642160681b6044820152606401610af9565b6000546001600160a01b0384811691161480159061187657506000546001600160a01b03838116911614155b801561189b57506001600160a01b03831660009081526014602052604090205460ff16155b80156118c057506001600160a01b03821660009081526014602052604090205460ff16155b15611cf057601954600160a01b900460ff16611964576001600160a01b03831660009081526014602052604090205460ff166119645760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610af9565b601954600160c01b900460ff1615611a0f576001600160a01b03831660009081526023602052604090205460ff161580156119b857506001600160a01b03821660009081526023602052604090205460ff16155b15611a0f57602054811115611a0f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610af9565b6019546001600160a01b03838116911614801590611a2f57506000602154115b15611aeb576001600160a01b03831660009081526024602052604090205460ff16158015611a7657506001600160a01b03821660009081526024602052604090205460ff16155b15611aeb5760215481611a8884610ece565b611a9291906129b9565b10611aeb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610af9565b6001600160a01b03831660009081526026602052604090205460ff16158015611b2d57506001600160a01b03821660009081526026602052604090205460ff16155b15611bc257600d546001600160a01b038416600090815260256020526040902054611b589042612a02565b1015611ba65760405162461bcd60e51b815260206004820152601c60248201527f57616974206265666f7265206d616b65207472616e73616374696f6e000000006044820152606401610af9565b6001600160a01b03831660009081526025602052604090204290555b6000611bcd30610ece565b602254602054919250821015908210611be65760205491505b808015611bfd5750601954600160a81b900460ff16155b8015611c1757506019546001600160a01b03868116911614155b8015611c2c5750601954600160b01b900460ff165b8015611c5157506001600160a01b03851660009081526005602052604090205460ff16155b8015611c7657506001600160a01b03841660009081526005602052604090205460ff16155b15611ced57611c8e611c898360026120cb565b611f51565b6000611cb7600c54600f54611ca391906129b9565b600c54611cb190479061210d565b906120cb565b9050611ccd611cc78460026120cb565b8261218c565b6000611cd94783612236565b90508015611cea57611cea81611e31565b50505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680611d3257506001600160a01b03831660009081526005602052604090205460ff165b80611d6457506019546001600160a01b03858116911614801590611d6457506019546001600160a01b03848116911614155b15611d7157506000611deb565b6019546001600160a01b038581169116148015611d9c57506018546001600160a01b03848116911614155b15611dae57600854600e55600954600f555b6019546001600160a01b038481169116148015611dd957506018546001600160a01b03858116911614155b15611deb57600a54600e55600b54600f555b6112c084848484612278565b60008184841115611e1b5760405162461bcd60e51b8152600401610af99190612704565b506000611e288486612a02565b95945050505050565b6000611e436064611cb184601461210d565b90506000611e576064611cb185605061210d565b6016546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611e92573d6000803e3d6000fd5b506017546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156112c0573d6000803e3d6000fd5b6000600654821115611f345760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610af9565b6000611f3e6122ac565b9050611f4a83826120cb565b9392505050565b6019805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611f9957611f996129d1565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120169190612a19565b81600181518110612029576120296129d1565b6001600160a01b03928316602091820292909201015260185461204f9130911684611479565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790612088908590600090869030904290600401612a36565b600060405180830381600087803b1580156120a257600080fd5b505af11580156120b6573d6000803e3d6000fd5b50506019805460ff60a81b1916905550505050565b6000611f4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122cf565b60008261211c57506000610ac9565b60006121288385612aa7565b9050826121358583612ac6565b14611f4a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610af9565b6018546121a49030906001600160a01b031684611479565b60185460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612211573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110bc9190612ae8565b6000611f4a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df7565b80612285576122856122fd565b612290848484612341565b806112c0576112c0601154600e55601254600f55601054600c55565b60008060006122b9612447565b90925090506122c882826120cb565b9250505090565b600081836122f05760405162461bcd60e51b8152600401610af99190612704565b506000611e288486612ac6565b600e5415801561230d5750600f54155b80156123195750600c54155b1561232057565b600e8054601155600f8054601255600c805460105560009283905582905555565b600061234c82612487565b80516001600160a01b0386166000908152600260205260409020549192506123749190612236565b6001600160a01b03808616600090815260026020908152604080832094909455840151918616815291909120546123aa9161255a565b6001600160a01b03841660009081526002602052604090205560a08101516123d1906125b9565b6123de8160c001516125b9565b6123f081604001518260800151612603565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836060015160405161243991815260200190565b60405180910390a350505050565b6006546000908190670de0b6b3a764000061246282826120cb565b82101561247e57505060065492670de0b6b3a764000092509050565b90939092509050565b6124c76040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060006124db85600e54600f54612627565b92509250925060006124fd6064611cb1600c548961210d90919063ffffffff16565b905060006125096122ac565b9050600080600061251d8a88888888612686565b6040805160e081018252938452602084019290925290820152606081019890985250505050608084019290925260a083015260c082015292915050565b60008061256783856129b9565b905083811015611f4a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610af9565b60006125c36122ac565b905060006125d1838361210d565b306000908152600260205260409020549091506125ee908261255a565b30600090815260026020526040902055505050565b6006546126109083612236565b600655600754612620908261255a565b6007555050565b600080808061263b6064611cb1898961210d565b9050600061264e6064611cb18a8961210d565b9050600061265b896126e8565b905060006126758261266f85818e89612236565b90612236565b9a9399509197509195505050505050565b6000808080612695898661210d565b905060006126a3898761210d565b905060006126b1898861210d565b905060006126bf898961210d565b905060006126d38261266f85818989612236565b949d949c50929a509298505050505050505050565b6000610ac96064611cb1600c548561210d90919063ffffffff16565b600060208083528351808285015260005b8181101561273157858101830151858201604001528201612715565b81811115612743576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610ecb57600080fd5b6000806040838503121561278157600080fd5b823561278c81612759565b946020939093013593505050565b6000602082840312156127ac57600080fd5b5035919050565b803580151581146127c357600080fd5b919050565b600080604083850312156127db57600080fd5b82356127e681612759565b91506127f4602084016127b3565b90509250929050565b60006020828403121561280f57600080fd5b8135611f4a81612759565b60008060006060848603121561282f57600080fd5b833561283a81612759565b9250602084013561284a81612759565b929592945050506040919091013590565b60006020828403121561286d57600080fd5b611f4a826127b3565b600080600080600060a0868803121561288e57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806000604084860312156128c657600080fd5b833567ffffffffffffffff808211156128de57600080fd5b818601915086601f8301126128f257600080fd5b81358181111561290157600080fd5b8760208260051b850101111561291657600080fd5b60209283019550935061292c91860190506127b3565b90509250925092565b6000806040838503121561294857600080fd5b823561295381612759565b9150602083013561296381612759565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156129cc576129cc6129a3565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156129fb576129fb6129a3565b5060010190565b600082821015612a1457612a146129a3565b500390565b600060208284031215612a2b57600080fd5b8151611f4a81612759565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a865784516001600160a01b031683529383019391830191600101612a61565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615612ac157612ac16129a3565b500290565b600082612ae357634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215612afd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c8177114478e6c1fb32919288d6db347cb7ebd4426dc6e880613a2a2b291939f64736f6c634300080b00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000a439e4794bbd5ac4eca2179225f731093e7b521c

Deployed Bytecode

0x6080604052600436106103545760003560e01c806374010ece116101c6578063bdd795ef116100f7578063c9567bf911610095578063ea1644d51161006f578063ea1644d514610a1e578063f2fde38b14610a3e578063f383877a14610a5e578063ff59958814610a9757600080fd5b8063c9567bf9146109a3578063cb0da419146109b8578063dd62ed3e146109d857600080fd5b8063c0e61de0116100d1578063c0e61de014610938578063c3c3960c14610958578063c3c8cd801461096e578063c492f0461461098357600080fd5b8063bdd795ef146108b8578063bfd79284146108e8578063c097bbdc1461091857600080fd5b806395d89b4111610164578063a2e00d631161013e578063a2e00d631461081f578063a5d7144c1461083f578063a9059cbb14610878578063bbf5de771461089857600080fd5b806395d89b411461079857806398a5c315146107c65780639b29abee146107e657600080fd5b8063840da3b4116101a0578063840da3b41461072d57806386ea8459146107435780638da5cb5b146107645780638f9a55c01461078257600080fd5b806374010ece146106e1578063790ca413146107015780637d1db4a51461071757600080fd5b8063313ce567116102a05780636bc87c3a1161023e5780636fc3eaec116102185780636fc3eaec1461067d57806370a08231146106925780637141d189146106b2578063715018a6146106cc57600080fd5b80636bc87c3a1461060e5780636d8aa8f8146106245780636dd3d39f1461064457600080fd5b806346b4676d1161027a57806346b4676d1461058e57806349bd5a5e146105ae57806357d9a2fb146105ce5780635d098b38146105ee57600080fd5b8063313ce5671461053c5780633bf7840c146105585780633c10bcce1461056e57600080fd5b806318160ddd1161030d57806323b872dd116102e757806323b872dd146104d0578063275853a6146104f05780632f9c4569146105065780632fd689e31461052657600080fd5b806318160ddd146104755780631b6d804c146104905780631f53ac02146104b057600080fd5b806306fdde0314610360578063095ea7b3146103a75780630a09095e146103d75780630a3647c6146103fb57806316862c951461041d5780631694505e1461043d57600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b5060408051808201909152600c81526b23b7b63232b7102a34b3b2b960a11b60208201525b60405161039e9190612704565b60405180910390f35b3480156103b357600080fd5b506103c76103c236600461276e565b610ab8565b604051901515815260200161039e565b3480156103e357600080fd5b506103ed600d5481565b60405190815260200161039e565b34801561040757600080fd5b5061041b61041636600461279a565b610acf565b005b34801561042957600080fd5b5061041b6104383660046127c8565b610b19565b34801561044957600080fd5b5060185461045d906001600160a01b031681565b6040516001600160a01b03909116815260200161039e565b34801561048157600080fd5b50670de0b6b3a76400006103ed565b34801561049c57600080fd5b5061041b6104ab36600461279a565b610b6e565b3480156104bc57600080fd5b5061041b6104cb3660046127fd565b610b9d565b3480156104dc57600080fd5b506103c76104eb36600461281a565b610be9565b3480156104fc57600080fd5b506103ed601e5481565b34801561051257600080fd5b5061041b6105213660046127c8565b610c52565b34801561053257600080fd5b506103ed60225481565b34801561054857600080fd5b506040516009815260200161039e565b34801561056457600080fd5b506103ed601c5481565b34801561057a57600080fd5b5061041b6105893660046127c8565b610d16565b34801561059a57600080fd5b5061041b6105a936600461279a565b610d6b565b3480156105ba57600080fd5b5060195461045d906001600160a01b031681565b3480156105da57600080fd5b5061041b6105e93660046127c8565b610d9a565b3480156105fa57600080fd5b5061041b6106093660046127fd565b610def565b34801561061a57600080fd5b506103ed600c5481565b34801561063057600080fd5b5061041b61063f36600461285b565b610e3b565b34801561065057600080fd5b506103c761065f3660046127fd565b6001600160a01b031660009081526024602052604090205460ff1690565b34801561068957600080fd5b5061041b610e83565b34801561069e57600080fd5b506103ed6106ad3660046127fd565b610ece565b3480156106be57600080fd5b50601f546103c79060ff1681565b3480156106d857600080fd5b5061041b610ef0565b3480156106ed57600080fd5b5061041b6106fc36600461279a565b610f64565b34801561070d57600080fd5b506103ed601a5481565b34801561072357600080fd5b506103ed60205481565b34801561073957600080fd5b506103ed601d5481565b34801561074f57600080fd5b506019546103c790600160b81b900460ff1681565b34801561077057600080fd5b506000546001600160a01b031661045d565b34801561078e57600080fd5b506103ed60215481565b3480156107a457600080fd5b506040805180820190915260058152642a24a3a2a960d91b6020820152610391565b3480156107d257600080fd5b5061041b6107e136600461279a565b610fa6565b3480156107f257600080fd5b506103c76108013660046127fd565b6001600160a01b031660009081526026602052604090205460ff1690565b34801561082b57600080fd5b5061041b61083a366004612876565b610fd5565b34801561084b57600080fd5b506103c761085a3660046127fd565b6001600160a01b031660009081526023602052604090205460ff1690565b34801561088457600080fd5b506103c761089336600461276e565b6110c3565b3480156108a457600080fd5b5061041b6108b336600461279a565b6110d0565b3480156108c457600080fd5b506103c76108d33660046127fd565b60146020526000908152604090205460ff1681565b3480156108f457600080fd5b506103c76109033660046127fd565b60136020526000908152604090205460ff1681565b34801561092457600080fd5b5061041b6109333660046127c8565b61113f565b34801561094457600080fd5b5061041b61095336600461285b565b611194565b34801561096457600080fd5b506103ed601b5481565b34801561097a57600080fd5b5061041b6111d1565b34801561098f57600080fd5b5061041b61099e3660046128b1565b611225565b3480156109af57600080fd5b5061041b6112c6565b3480156109c457600080fd5b5061041b6109d336600461285b565b611305565b3480156109e457600080fd5b506103ed6109f3366004612935565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a2a57600080fd5b5061041b610a3936600461279a565b61134d565b348015610a4a57600080fd5b5061041b610a593660046127fd565b61138f565b348015610a6a57600080fd5b506103c7610a793660046127fd565b6001600160a01b031660009081526027602052604090205460ff1690565b348015610aa357600080fd5b506019546103c790600160c01b900460ff1681565b6000610ac5338484611479565b5060015b92915050565b6000546001600160a01b03163314610b025760405162461bcd60e51b8152600401610af99061296e565b60405180910390fd5b64174876e800811015610b1457600080fd5b601e55565b6000546001600160a01b03163314610b435760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03919091166000908152602460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b985760405162461bcd60e51b8152600401610af99061296e565b601c55565b6000546001600160a01b03163314610bc75760405162461bcd60e51b8152600401610af99061296e565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bf684848461159d565b610c488433610c4385604051806060016040528060288152602001612b17602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611df7565b611479565b5060019392505050565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03821660009081526014602052604090205460ff1615158115151415610ceb5760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610af9565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d405760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03919091166000908152602660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d955760405162461bcd60e51b8152600401610af99061296e565b601d55565b6000546001600160a01b03163314610dc45760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e195760405162461bcd60e51b8152600401610af99061296e565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e655760405162461bcd60e51b8152600401610af99061296e565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6016546001600160a01b0316336001600160a01b03161480610eb857506017546001600160a01b0316336001600160a01b0316145b610ec157600080fd5b47610ecb81611e31565b50565b6001600160a01b038116600090815260026020526040812054610ac990611ecd565b6000546001600160a01b03163314610f1a5760405162461bcd60e51b8152600401610af99061296e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610af99061296e565b6509184e72a000811015610fa157600080fd5b602055565b6000546001600160a01b03163314610fd05760405162461bcd60e51b8152600401610af99061296e565b602255565b6000546001600160a01b03163314610fff5760405162461bcd60e51b8152600401610af99061296e565b6008859055600a849055600c8190556009839055600b82905560148161102585886129b9565b61102f91906129b9565b11156110675760405162461bcd60e51b81526020600482015260076024820152666d61782032302560c81b6044820152606401610af9565b601481600b54600a5461107a91906129b9565b61108491906129b9565b11156110bc5760405162461bcd60e51b81526020600482015260076024820152666d61782032302560c81b6044820152606401610af9565b5050505050565b6000610ac533848461159d565b6000546001600160a01b031633146110fa5760405162461bcd60e51b8152600401610af99061296e565b610e1081111561113a5760405162461bcd60e51b815260206004820152600b60248201526a26b0bc101890103437bab960a91b6044820152606401610af9565b600d55565b6000546001600160a01b031633146111695760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03919091166000908152602360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111be5760405162461bcd60e51b8152600401610af99061296e565b601f805460ff1916911515919091179055565b6016546001600160a01b0316336001600160a01b0316148061120657506017546001600160a01b0316336001600160a01b0316145b61120f57600080fd5b600061121a30610ece565b9050610ecb81611f51565b6000546001600160a01b0316331461124f5760405162461bcd60e51b8152600401610af99061296e565b60005b828110156112c0578160056000868685818110611271576112716129d1565b905060200201602081019061128691906127fd565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806112b8816129e7565b915050611252565b50505050565b6000546001600160a01b031633146112f05760405162461bcd60e51b8152600401610af99061296e565b6019805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461132f5760405162461bcd60e51b8152600401610af99061296e565b60198054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b031633146113775760405162461bcd60e51b8152600401610af99061296e565b6509184e72a00081101561138a57600080fd5b602155565b6000546001600160a01b031633146113b95760405162461bcd60e51b8152600401610af99061296e565b6001600160a01b03811661141e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166114db5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af9565b6001600160a01b03821661153c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af9565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116015760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610af9565b6001600160a01b0382166116635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610af9565b600081116116c55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610af9565b6019546001600160a01b038381169116141561171657601954600160b81b900460ff161580156116f55750601a54155b15611716576019805460ff60b81b1916600160b81b17905542601a5543601b555b601a541561184a57601f5460ff161561184a576001600160a01b03831660009081526027602052604090205460ff1615801561176b57506001600160a01b03821660009081526027602052604090205460ff16155b1561184a57601c54601b546117809043612a02565b1161184a5760286000601b54436117979190612a02565b815260208101919091526040016000205460ff1661180257600160286000601b54436117c39190612a02565b815260200190815260200160002060006101000a81548160ff021916908315150217905550601d54601e60008282546117fc91906129b9565b90915550505b601e5481111561184a5760405162461bcd60e51b81526020600482015260136024820152724d617820616d6f756e7420726561636865642160681b6044820152606401610af9565b6000546001600160a01b0384811691161480159061187657506000546001600160a01b03838116911614155b801561189b57506001600160a01b03831660009081526014602052604090205460ff16155b80156118c057506001600160a01b03821660009081526014602052604090205460ff16155b15611cf057601954600160a01b900460ff16611964576001600160a01b03831660009081526014602052604090205460ff166119645760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610af9565b601954600160c01b900460ff1615611a0f576001600160a01b03831660009081526023602052604090205460ff161580156119b857506001600160a01b03821660009081526023602052604090205460ff16155b15611a0f57602054811115611a0f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610af9565b6019546001600160a01b03838116911614801590611a2f57506000602154115b15611aeb576001600160a01b03831660009081526024602052604090205460ff16158015611a7657506001600160a01b03821660009081526024602052604090205460ff16155b15611aeb5760215481611a8884610ece565b611a9291906129b9565b10611aeb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610af9565b6001600160a01b03831660009081526026602052604090205460ff16158015611b2d57506001600160a01b03821660009081526026602052604090205460ff16155b15611bc257600d546001600160a01b038416600090815260256020526040902054611b589042612a02565b1015611ba65760405162461bcd60e51b815260206004820152601c60248201527f57616974206265666f7265206d616b65207472616e73616374696f6e000000006044820152606401610af9565b6001600160a01b03831660009081526025602052604090204290555b6000611bcd30610ece565b602254602054919250821015908210611be65760205491505b808015611bfd5750601954600160a81b900460ff16155b8015611c1757506019546001600160a01b03868116911614155b8015611c2c5750601954600160b01b900460ff165b8015611c5157506001600160a01b03851660009081526005602052604090205460ff16155b8015611c7657506001600160a01b03841660009081526005602052604090205460ff16155b15611ced57611c8e611c898360026120cb565b611f51565b6000611cb7600c54600f54611ca391906129b9565b600c54611cb190479061210d565b906120cb565b9050611ccd611cc78460026120cb565b8261218c565b6000611cd94783612236565b90508015611cea57611cea81611e31565b50505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680611d3257506001600160a01b03831660009081526005602052604090205460ff165b80611d6457506019546001600160a01b03858116911614801590611d6457506019546001600160a01b03848116911614155b15611d7157506000611deb565b6019546001600160a01b038581169116148015611d9c57506018546001600160a01b03848116911614155b15611dae57600854600e55600954600f555b6019546001600160a01b038481169116148015611dd957506018546001600160a01b03858116911614155b15611deb57600a54600e55600b54600f555b6112c084848484612278565b60008184841115611e1b5760405162461bcd60e51b8152600401610af99190612704565b506000611e288486612a02565b95945050505050565b6000611e436064611cb184601461210d565b90506000611e576064611cb185605061210d565b6016546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611e92573d6000803e3d6000fd5b506017546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156112c0573d6000803e3d6000fd5b6000600654821115611f345760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610af9565b6000611f3e6122ac565b9050611f4a83826120cb565b9392505050565b6019805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611f9957611f996129d1565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120169190612a19565b81600181518110612029576120296129d1565b6001600160a01b03928316602091820292909201015260185461204f9130911684611479565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790612088908590600090869030904290600401612a36565b600060405180830381600087803b1580156120a257600080fd5b505af11580156120b6573d6000803e3d6000fd5b50506019805460ff60a81b1916905550505050565b6000611f4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122cf565b60008261211c57506000610ac9565b60006121288385612aa7565b9050826121358583612ac6565b14611f4a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610af9565b6018546121a49030906001600160a01b031684611479565b60185460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612211573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110bc9190612ae8565b6000611f4a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df7565b80612285576122856122fd565b612290848484612341565b806112c0576112c0601154600e55601254600f55601054600c55565b60008060006122b9612447565b90925090506122c882826120cb565b9250505090565b600081836122f05760405162461bcd60e51b8152600401610af99190612704565b506000611e288486612ac6565b600e5415801561230d5750600f54155b80156123195750600c54155b1561232057565b600e8054601155600f8054601255600c805460105560009283905582905555565b600061234c82612487565b80516001600160a01b0386166000908152600260205260409020549192506123749190612236565b6001600160a01b03808616600090815260026020908152604080832094909455840151918616815291909120546123aa9161255a565b6001600160a01b03841660009081526002602052604090205560a08101516123d1906125b9565b6123de8160c001516125b9565b6123f081604001518260800151612603565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836060015160405161243991815260200190565b60405180910390a350505050565b6006546000908190670de0b6b3a764000061246282826120cb565b82101561247e57505060065492670de0b6b3a764000092509050565b90939092509050565b6124c76040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060006124db85600e54600f54612627565b92509250925060006124fd6064611cb1600c548961210d90919063ffffffff16565b905060006125096122ac565b9050600080600061251d8a88888888612686565b6040805160e081018252938452602084019290925290820152606081019890985250505050608084019290925260a083015260c082015292915050565b60008061256783856129b9565b905083811015611f4a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610af9565b60006125c36122ac565b905060006125d1838361210d565b306000908152600260205260409020549091506125ee908261255a565b30600090815260026020526040902055505050565b6006546126109083612236565b600655600754612620908261255a565b6007555050565b600080808061263b6064611cb1898961210d565b9050600061264e6064611cb18a8961210d565b9050600061265b896126e8565b905060006126758261266f85818e89612236565b90612236565b9a9399509197509195505050505050565b6000808080612695898661210d565b905060006126a3898761210d565b905060006126b1898861210d565b905060006126bf898961210d565b905060006126d38261266f85818989612236565b949d949c50929a509298505050505050505050565b6000610ac96064611cb1600c548561210d90919063ffffffff16565b600060208083528351808285015260005b8181101561273157858101830151858201604001528201612715565b81811115612743576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610ecb57600080fd5b6000806040838503121561278157600080fd5b823561278c81612759565b946020939093013593505050565b6000602082840312156127ac57600080fd5b5035919050565b803580151581146127c357600080fd5b919050565b600080604083850312156127db57600080fd5b82356127e681612759565b91506127f4602084016127b3565b90509250929050565b60006020828403121561280f57600080fd5b8135611f4a81612759565b60008060006060848603121561282f57600080fd5b833561283a81612759565b9250602084013561284a81612759565b929592945050506040919091013590565b60006020828403121561286d57600080fd5b611f4a826127b3565b600080600080600060a0868803121561288e57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806000604084860312156128c657600080fd5b833567ffffffffffffffff808211156128de57600080fd5b818601915086601f8301126128f257600080fd5b81358181111561290157600080fd5b8760208260051b850101111561291657600080fd5b60209283019550935061292c91860190506127b3565b90509250925092565b6000806040838503121561294857600080fd5b823561295381612759565b9150602083013561296381612759565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156129cc576129cc6129a3565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156129fb576129fb6129a3565b5060010190565b600082821015612a1457612a146129a3565b500390565b600060208284031215612a2b57600080fd5b8151611f4a81612759565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a865784516001600160a01b031683529383019391830191600101612a61565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615612ac157612ac16129a3565b500290565b600082612ae357634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215612afd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c8177114478e6c1fb32919288d6db347cb7ebd4426dc6e880613a2a2b291939f64736f6c634300080b0033

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

000000000000000000000000a439e4794bbd5ac4eca2179225f731093e7b521c

-----Decoded View---------------
Arg [0] : _newOwner (address): 0xa439e4794Bbd5AC4EcA2179225f731093e7b521C

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a439e4794bbd5ac4eca2179225f731093e7b521c


Deployed Bytecode Sourcemap

4078:23253:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11066:83;;;;;;;;;;-1:-1:-1;11136:5:0;;;;;;;;;;;;-1:-1:-1;;;11136:5:0;;;;11066:83;;;;;;;:::i;:::-;;;;;;;;13777:193;;;;;;;;;;-1:-1:-1;13777:193:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;13777:193:0;1072:187:1;5001:51:0;;;;;;;;;;;;;;;;;;;1410:25:1;;;1398:2;1383:18;5001:51:0;1264:177:1;11900:140:0;;;;;;;;;;-1:-1:-1;11900:140:0;;;;;:::i;:::-;;:::i;:::-;;12880:123;;;;;;;;;;-1:-1:-1;12880:123:0;;;;;:::i;:::-;;:::i;5938:41::-;;;;;;;;;;-1:-1:-1;5938:41:0;;;;-1:-1:-1;;;;;5938:41:0;;;;;;-1:-1:-1;;;;;2306:32:1;;;2288:51;;2276:2;2261:18;5938:41:0;2116:229:1;11587:95:0;;;;;;;;;;-1:-1:-1;4637:18:0;11587:95;;11690:100;;;;;;;;;;-1:-1:-1;11690:100:0;;;;;:::i;:::-;;:::i;11465:112::-;;;;;;;;;;-1:-1:-1;11465:112:0;;;;;:::i;:::-;;:::i;13978:446::-;;;;;;;;;;-1:-1:-1;13978:446:0;;;;;:::i;:::-;;:::i;6447:46::-;;;;;;;;;;;;;;;;27017:196;;;;;;;;;;-1:-1:-1;27017:196:0;;;;;:::i;:::-;;:::i;6658:52::-;;;;;;;;;;;;;;;;11252:83;;;;;;;;;;-1:-1:-1;11252:83:0;;4311:1;3213:36:1;;3201:2;3186:18;11252:83:0;3071:184:1;6348:37:0;;;;;;;;;;;;;;;;13430:147;;;;;;;;;;-1:-1:-1;13430:147:0;;;;;:::i;:::-;;:::i;11796:98::-;;;;;;;;;;-1:-1:-1;11796:98:0;;;;;:::i;:::-;;:::i;5986:28::-;;;;;;;;;;-1:-1:-1;5986:28:0;;;;-1:-1:-1;;;;;5986:28:0;;;13141:131;;;;;;;;;;-1:-1:-1;13141:131:0;;;;;:::i;:::-;;:::i;11343:116::-;;;;;;;;;;-1:-1:-1;11343:116:0;;;;;:::i;:::-;;:::i;4960:32::-;;;;;;;;;;;;;;;;26290:101;;;;;;;;;;-1:-1:-1;26290:101:0;;;;;:::i;:::-;;:::i;12754:120::-;;;;;;;;;;-1:-1:-1;12754:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;12841:25:0;12820:4;12841:25;;;:20;:25;;;;;;;;;12754:120;20915:235;;;;;;;;;;;;;:::i;12153:138::-;;;;;;;;;;-1:-1:-1;12153:138:0;;;;;:::i;:::-;;:::i;6502:32::-;;;;;;;;;;-1:-1:-1;6502:32:0;;;;;;;;1557:148;;;;;;;;;;;;;:::i;26430:154::-;;;;;;;;;;-1:-1:-1;26430:154:0;;;;;:::i;:::-;;:::i;6220:29::-;;;;;;;;;;;;;;;;6545:46;;;;;;;;;;;;;;;;6392:48;;;;;;;;;;;;;;;;6132:38;;;;;;;;;;-1:-1:-1;6132:38:0;;;;-1:-1:-1;;;6132:38:0;;;;;;1343:79;;;;;;;;;;-1:-1:-1;1381:7:0;1408:6;-1:-1:-1;;;;;1408:6:0;1343:79;;6599:48;;;;;;;;;;;;;;;;11157:87;;;;;;;;;;-1:-1:-1;11229:7:0;;;;;;;;;;;;-1:-1:-1;;;11229:7:0;;;;11157:87;;26095:139;;;;;;;;;;-1:-1:-1;26095:139:0;;;;;:::i;:::-;;:::i;13281:143::-;;;;;;;;;;-1:-1:-1;13281:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13377:39:0;13357:4;13377:39;;;:34;:39;;;;;;;;;13281:143;25551:492;;;;;;;;;;-1:-1:-1;25551:492:0;;;;;:::i;:::-;;:::i;12504:115::-;;;;;;;;;;-1:-1:-1;12504:115:0;;;;;:::i;:::-;-1:-1:-1;;;;;12586:25:0;12566:4;12586:25;;;:20;:25;;;;;;;;;12504:115;12299:199;;;;;;;;;;-1:-1:-1;12299:199:0;;;;;:::i;:::-;;:::i;10896:162::-;;;;;;;;;;-1:-1:-1;10896:162:0;;;;;:::i;:::-;;:::i;5620:42::-;;;;;;;;;;-1:-1:-1;5620:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5577:36;;;;;;;;;;-1:-1:-1;5577:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12625:123;;;;;;;;;;-1:-1:-1;12625:123:0;;;;;:::i;:::-;;:::i;12048:97::-;;;;;;;;;;-1:-1:-1;12048:97:0;;;;;:::i;:::-;;:::i;6310:31::-;;;;;;;;;;;;;;;;20671:236;;;;;;;;;;;;;:::i;26774:234::-;;;;;;;;;;-1:-1:-1;26774:234:0;;;;;:::i;:::-;;:::i;20586:77::-;;;;;;;;;;;;;:::i;27226:102::-;;;;;;;;;;-1:-1:-1;27226:102:0;;;;;:::i;:::-;;:::i;13585:184::-;;;;;;;;;;-1:-1:-1;13585:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;13734:18:0;;;13702:7;13734:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13585:184;26603:163;;;;;;;;;;-1:-1:-1;26603:163:0;;;;;:::i;:::-;;:::i;1717:244::-;;;;;;;;;;-1:-1:-1;1717:244:0;;;;;:::i;:::-;;:::i;13011:124::-;;;;;;;;;;-1:-1:-1;13011:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;13098:29:0;13077:4;13098:29;;;:24;:29;;;;;;;;;13011:124;6177:36;;;;;;;;;;-1:-1:-1;6177:36:0;;;;-1:-1:-1;;;6177:36:0;;;;;;13777:193;13879:4;13901:39;182:10;13924:7;13933:6;13901:8;:39::i;:::-;-1:-1:-1;13958:4:0;13777:193;;;;;:::o;11900:140::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;;;;;;;;;11984:12:::1;11976:4;:20;;11968:29;;;::::0;::::1;;12008:17;:24:::0;11900:140::o;12880:123::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12962:25:0;;;::::1;;::::0;;;:20:::1;:25;::::0;;;;:33;;-1:-1:-1;;12962:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12880:123::o;11690:100::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;11758:17:::1;:24:::0;11690:100::o;11465:112::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;11540:19:::1;:29:::0;;-1:-1:-1;;;;;;11540:29:0::1;-1:-1:-1::0;;;;;11540:29:0;;;::::1;::::0;;;::::1;::::0;;11465:112::o;13978:446::-;14110:4;14127:36;14137:6;14145:9;14156:6;14127:9;:36::i;:::-;14174:220;14197:6;182:10;14245:138;14301:6;14245:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14245:19:0;;;;;;:11;:19;;;;;;;;182:10;14245:33;;;;;;;;;;:37;:138::i;:::-;14174:8;:220::i;:::-;-1:-1:-1;14412:4:0;13978:446;;;;;:::o;27017:196::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27109:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;:29;;::::0;::::1;;;;27101:65;;;::::0;-1:-1:-1;;;27101:65:0;;6014:2:1;27101:65:0::1;::::0;::::1;5996:21:1::0;6053:2;6033:18;;;6026:30;6092:25;6072:18;;;6065:53;6135:18;;27101:65:0::1;5812:347:1::0;27101:65:0::1;-1:-1:-1::0;;;;;27177:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;-1:-1:-1;;27177:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27017:196::o;13430:147::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13522:39:0;;;::::1;;::::0;;;:34:::1;:39;::::0;;;;:47;;-1:-1:-1;;13522:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13430:147::o;11796:98::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;11863:17:::1;:23:::0;11796:98::o;13141:131::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13227:29:0;;;::::1;;::::0;;;:24:::1;:29;::::0;;;;:37;;-1:-1:-1;;13227:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13141:131::o;11343:116::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;11424:17:::1;:27:::0;;-1:-1:-1;;;;;;11424:27:0::1;-1:-1:-1::0;;;;;11424:27:0;;;::::1;::::0;;;::::1;::::0;;11343:116::o;26290:101::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;26357:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;26357:26:0::1;-1:-1:-1::0;;;;26357:26:0;;::::1;::::0;;;::::1;::::0;;26290:101::o;20915:235::-;20981:19;;-1:-1:-1;;;;;20981:19:0;182:10;-1:-1:-1;;;;;20965:35:0;;:72;;;-1:-1:-1;21020:17:0;;-1:-1:-1;;;;;21020:17:0;182:10;-1:-1:-1;;;;;21004:33:0;;20965:72;20957:81;;;;;;21078:21;21110:32;21078:21;21110:12;:32::i;:::-;20946:204;20915:235::o;12153:138::-;-1:-1:-1;;;;;12266:16:0;;12219:7;12266:16;;;:7;:16;;;;;;12246:37;;:19;:37::i;1557:148::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;1664:1:::1;1648:6:::0;;1627:40:::1;::::0;-1:-1:-1;;;;;1648:6:0;;::::1;::::0;1627:40:::1;::::0;1664:1;;1627:40:::1;1695:1;1678:19:::0;;-1:-1:-1;;;;;;1678:19:0::1;::::0;;1557:148::o;26430:154::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;26527:11:::1;26512;:26;;26504:35;;;::::0;::::1;;26550:12;:26:::0;26430:154::o;26095:139::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;26186:19:::1;:40:::0;26095:139::o;25551:492::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;25701:14:::1;:30:::0;;;25742:15:::1;:32:::0;;;25785:13:::1;:22:::0;;;25818:12:::1;:26:::0;;;25855:13:::1;:28:::0;;;25944:2:::1;25801:6:::0;25902:29:::1;25833:11:::0;25718:13;25902:29:::1;:::i;:::-;:38;;;;:::i;:::-;:44;;25894:64;;;::::0;-1:-1:-1;;;25894:64:0;;6631:2:1;25894:64:0::1;::::0;::::1;6613:21:1::0;6670:1;6650:18;;;6643:29;-1:-1:-1;;;6688:18:1;;;6681:37;6735:18;;25894:64:0::1;6429:330:1::0;25894:64:0::1;26021:2;26011:6;25995:13;;25977:15;;:31;;;;:::i;:::-;:40;;;;:::i;:::-;:46;;25969:66;;;::::0;-1:-1:-1;;;25969:66:0;;6631:2:1;25969:66:0::1;::::0;::::1;6613:21:1::0;6670:1;6650:18;;;6643:29;-1:-1:-1;;;6688:18:1;;;6681:37;6735:18;;25969:66:0::1;6429:330:1::0;25969:66:0::1;25551:492:::0;;;;;:::o;12299:199::-;12404:4;12426:42;182:10;12450:9;12461:6;12426:9;:42::i;10896:162::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;10985:7:::1;10977:4;:15;;10969:39;;;::::0;-1:-1:-1;;;10969:39:0;;6966:2:1;10969:39:0::1;::::0;::::1;6948:21:1::0;7005:2;6985:18;;;6978:30;-1:-1:-1;;;7024:18:1;;;7017:41;7075:18;;10969:39:0::1;6764:335:1::0;10969:39:0::1;11019:24;:31:::0;10896:162::o;12625:123::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12707:25:0;;;::::1;;::::0;;;:20:::1;:25;::::0;;;;:33;;-1:-1:-1;;12707:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12625:123::o;12048:97::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;12115:13:::1;:22:::0;;-1:-1:-1;;12115:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12048:97::o;20671:236::-;20737:19;;-1:-1:-1;;;;;20737:19:0;182:10;-1:-1:-1;;;;;20721:35:0;;:72;;;-1:-1:-1;20776:17:0;;-1:-1:-1;;;;;20776:17:0;182:10;-1:-1:-1;;;;;20760:33:0;;20721:72;20713:81;;;;;;20805:23;20831:24;20849:4;20831:9;:24::i;:::-;20805:50;;20866:33;20883:15;20866:16;:33::i;26774:234::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;26891:9:::1;26887:114;26906:19:::0;;::::1;26887:114;;;26981:8;26947:18;:31;26966:8;;26975:1;26966:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26947:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;26947:31:0;:42;;-1:-1:-1;;26947:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26927:3;::::1;::::0;::::1;:::i;:::-;;;;26887:114;;;;26774:234:::0;;;:::o;20586:77::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;20637:11:::1;:18:::0;;-1:-1:-1;;;;20637:18:0::1;-1:-1:-1::0;;;20637:18:0::1;::::0;;20586:77::o;27226:102::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;27295:16:::1;:25:::0;;;::::1;;-1:-1:-1::0;;;27295:25:0::1;-1:-1:-1::0;;;;27295:25:0;;::::1;::::0;;;::::1;::::0;;27226:102::o;26603:163::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;26705:11:::1;26688:13;:28;;26680:37;;;::::0;::::1;;26728:14;:30:::0;26603:163::o;1717:244::-;1470:6;;-1:-1:-1;;;;;1470:6:0;182:10;1470:22;1462:67;;;;-1:-1:-1;;;1462:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1806:22:0;::::1;1798:73;;;::::0;-1:-1:-1;;;1798:73:0;;7578:2:1;1798:73:0::1;::::0;::::1;7560:21:1::0;7617:2;7597:18;;;7590:30;7656:34;7636:18;;;7629:62;-1:-1:-1;;;7707:18:1;;;7700:36;7753:19;;1798:73:0::1;7376:402:1::0;1798:73:0::1;1908:6;::::0;;1887:38:::1;::::0;-1:-1:-1;;;;;1887:38:0;;::::1;::::0;1908:6;::::1;::::0;1887:38:::1;::::0;::::1;1936:6;:17:::0;;-1:-1:-1;;;;;;1936:17:0::1;-1:-1:-1::0;;;;;1936:17:0;;;::::1;::::0;;;::::1;::::0;;1717:244::o;15258:369::-;-1:-1:-1;;;;;15385:19:0;;15377:68;;;;-1:-1:-1;;;15377:68:0;;7985:2:1;15377:68:0;;;7967:21:1;8024:2;8004:18;;;7997:30;8063:34;8043:18;;;8036:62;-1:-1:-1;;;8114:18:1;;;8107:34;8158:19;;15377:68:0;7783:400:1;15377:68:0;-1:-1:-1;;;;;15464:21:0;;15456:68;;;;-1:-1:-1;;;15456:68:0;;8390:2:1;15456:68:0;;;8372:21:1;8429:2;8409:18;;;8402:30;8468:34;8448:18;;;8441:62;-1:-1:-1;;;8519:18:1;;;8512:32;8561:19;;15456:68:0;8188:398:1;15456:68:0;-1:-1:-1;;;;;15535:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15587:32;;1410:25:1;;;15587:32:0;;1383:18:1;15587:32:0;;;;;;;15258:369;;;:::o;15635:4178::-;-1:-1:-1;;;;;15757:18:0;;15749:68;;;;-1:-1:-1;;;15749:68:0;;8793:2:1;15749:68:0;;;8775:21:1;8832:2;8812:18;;;8805:30;8871:34;8851:18;;;8844:62;-1:-1:-1;;;8922:18:1;;;8915:35;8967:19;;15749:68:0;8591:401:1;15749:68:0;-1:-1:-1;;;;;15836:16:0;;15828:64;;;;-1:-1:-1;;;15828:64:0;;9199:2:1;15828:64:0;;;9181:21:1;9238:2;9218:18;;;9211:30;9277:34;9257:18;;;9250:62;-1:-1:-1;;;9328:18:1;;;9321:33;9371:19;;15828:64:0;8997:399:1;15828:64:0;15920:1;15911:6;:10;15903:64;;;;-1:-1:-1;;;15903:64:0;;9603:2:1;15903:64:0;;;9585:21:1;9642:2;9622:18;;;9615:30;9681:34;9661:18;;;9654:62;-1:-1:-1;;;9732:18:1;;;9725:39;9781:19;;15903:64:0;9401:405:1;15903:64:0;15988:13;;-1:-1:-1;;;;;15982:19:0;;;15988:13;;15982:19;15978:278;;;16026:18;;-1:-1:-1;;;16026:18:0;;;;16025:19;:38;;;;-1:-1:-1;16048:10:0;;:15;16025:38;16022:219;;;16085:18;:25;;-1:-1:-1;;;;16085:25:0;-1:-1:-1;;;16085:25:0;;;16142:15;16129:10;:28;16191:12;16176;:27;16022:219;16275:10;;:14;16272:645;;16313:13;;;;16309:593;;;-1:-1:-1;;;;;16351:30:0;;;;;;:24;:30;;;;;;;;16350:31;:64;;;;-1:-1:-1;;;;;;16386:28:0;;;;;;:24;:28;;;;;;;;16385:29;16350:64;16347:537;;;16473:17;;16457:12;;16442:27;;:12;:27;:::i;:::-;:48;16439:426;;16523:17;:46;16556:12;;16541;:27;;;;:::i;:::-;16523:46;;;;;;;;;;;-1:-1:-1;16523:46:0;;;;16519:241;;16655:4;16606:17;:46;16639:12;;16624;:27;;;;:::i;:::-;16606:46;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;16715:17;;16694;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;;16519:241:0;16800:17;;16790:6;:27;;16782:59;;;;-1:-1:-1;;;16782:59:0;;10143:2:1;16782:59:0;;;10125:21:1;10182:2;10162:18;;;10155:30;-1:-1:-1;;;10201:18:1;;;10194:49;10260:18;;16782:59:0;9941:343:1;16782:59:0;1381:7;1408:6;-1:-1:-1;;;;;16945:15:0;;;1408:6;;16945:15;;;;:32;;-1:-1:-1;1381:7:0;1408:6;-1:-1:-1;;;;;16964:13:0;;;1408:6;;16964:13;;16945:32;:52;;;;-1:-1:-1;;;;;;16982:15:0;;;;;;:9;:15;;;;;;;;16981:16;16945:52;:70;;;;-1:-1:-1;;;;;;17002:13:0;;;;;;:9;:13;;;;;;;;17001:14;16945:70;16941:2110;;;17084:11;;-1:-1:-1;;;17084:11:0;;;;17079:144;;-1:-1:-1;;;;;17124:15:0;;;;;;:9;:15;;;;;;;;17116:91;;;;-1:-1:-1;;;17116:91:0;;10491:2:1;17116:91:0;;;10473:21:1;10530:2;10510:18;;;10503:30;10569:34;10549:18;;;10542:62;10640:33;10620:18;;;10613:61;10691:19;;17116:91:0;10289:427:1;17116:91:0;17257:16;;-1:-1:-1;;;17257:16:0;;;;17253:224;;;-1:-1:-1;;;;;17299:26:0;;;;;;:20;:26;;;;;;;;17298:27;:56;;;;-1:-1:-1;;;;;;17330:24:0;;;;;;:20;:24;;;;;;;;17329:25;17298:56;17294:168;;;17397:12;;17387:6;:22;;17379:63;;;;-1:-1:-1;;;17379:63:0;;10923:2:1;17379:63:0;;;10905:21:1;10962:2;10942:18;;;10935:30;11001;10981:18;;;10974:58;11049:18;;17379:63:0;10721:352:1;17379:63:0;17524:13;;-1:-1:-1;;;;;17518:19:0;;;17524:13;;17518:19;;;;:41;;;17558:1;17541:14;;:18;17518:41;17515:272;;;-1:-1:-1;;;;;17585:26:0;;;;;;:20;:26;;;;;;;;17584:27;:56;;;;-1:-1:-1;;;;;;17616:24:0;;;;;;:20;:24;;;;;;;;17615:25;17584:56;17580:192;;;17698:14;;17689:6;17673:13;17683:2;17673:9;:13::i;:::-;:22;;;;:::i;:::-;:39;17665:87;;;;-1:-1:-1;;;17665:87:0;;11280:2:1;17665:87:0;;;11262:21:1;11319:2;11299:18;;;11292:30;11358:34;11338:18;;;11331:62;-1:-1:-1;;;11409:18:1;;;11402:33;11452:19;;17665:87:0;11078:399:1;17665:87:0;-1:-1:-1;;;;;17806:40:0;;;;;;:34;:40;;;;;;;;17805:41;:84;;;;-1:-1:-1;;;;;;17851:38:0;;;;;;:34;:38;;;;;;;;17850:39;17805:84;17801:309;;;17970:24;;-1:-1:-1;;;;;17940:26:0;;;;;;:20;:26;;;;;;17922:44;;:15;:44;:::i;:::-;:72;;17914:113;;;;-1:-1:-1;;;17914:113:0;;11684:2:1;17914:113:0;;;11666:21:1;11723:2;11703:18;;;11696:30;11762;11742:18;;;11735:58;11810:18;;17914:113:0;11482:352:1;17914:113:0;-1:-1:-1;;;;;18050:26:0;;;;;;:20;:26;;;;;18079:15;18050:44;;17801:309;18138:28;18169:24;18187:4;18169:9;:24::i;:::-;18247:19;;18310:12;;18138:55;;-1:-1:-1;18223:43:0;;;;18286:36;;18283:124;;18379:12;;18356:35;;18283:124;18439:7;:18;;;;-1:-1:-1;18451:6:0;;-1:-1:-1;;;18451:6:0;;;;18450:7;18439:18;:43;;;;-1:-1:-1;18469:13:0;;-1:-1:-1;;;;;18461:21:0;;;18469:13;;18461:21;;18439:43;:58;;;;-1:-1:-1;18486:11:0;;-1:-1:-1;;;18486:11:0;;;;18439:58;:87;;;;-1:-1:-1;;;;;;18502:24:0;;;;;;:18;:24;;;;;;;;18501:25;18439:87;:114;;;;-1:-1:-1;;;;;;18531:22:0;;;;;;:18;:22;;;;;;;;18530:23;18439:114;18435:605;;;18574:45;18591:27;:20;18616:1;18591:24;:27::i;:::-;18574:16;:45::i;:::-;18638:24;18665:69;18720:13;;18710:7;;:23;;;;:::i;:::-;18691:13;;18665:40;;:21;;:25;:40::i;:::-;:44;;:69::i;:::-;18638:96;-1:-1:-1;18753:59:0;18766:27;:20;18791:1;18766:24;:27::i;:::-;18795:16;18753:12;:59::i;:::-;18831:26;18860:43;:21;18886:16;18860:25;:43::i;:::-;18831:72;-1:-1:-1;18926:22:0;;18922:103;;18973:32;18986:18;18973:12;:32::i;:::-;18555:485;;18435:605;17017:2034;;16941:2110;-1:-1:-1;;;;;19135:24:0;;19071:12;19135:24;;;:18;:24;;;;;;19086:4;;19135:24;;;:50;;-1:-1:-1;;;;;;19163:22:0;;;;;;:18;:22;;;;;;;;19135:50;19134:102;;;-1:-1:-1;19199:13:0;;-1:-1:-1;;;;;19191:21:0;;;19199:13;;19191:21;;;;:44;;-1:-1:-1;19222:13:0;;-1:-1:-1;;;;;19216:19:0;;;19222:13;;19216:19;;19191:44;19130:622;;;-1:-1:-1;19263:5:0;19130:622;;;19358:13;;-1:-1:-1;;;;;19350:21:0;;;19358:13;;19350:21;:55;;;;-1:-1:-1;19389:15:0;;-1:-1:-1;;;;;19375:30:0;;;19389:15;;19375:30;;19350:55;19347:162;;;19438:14;;19426:9;:26;19481:12;;19471:7;:22;19347:162;19572:13;;-1:-1:-1;;;;;19566:19:0;;;19572:13;;19566:19;:55;;;;-1:-1:-1;19605:15:0;;-1:-1:-1;;;;;19589:32:0;;;19605:15;;19589:32;;19566:55;19562:165;;;19654:15;;19642:9;:27;19698:13;;19688:7;:23;19562:165;19764:41;19779:4;19785:2;19789:6;19797:7;19764:14;:41::i;2329:224::-;2449:7;2485:12;2477:6;;;;2469:29;;;;-1:-1:-1;;;2469:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2509:9:0;2521:5;2525:1;2521;:5;:::i;:::-;2509:17;2329:224;-1:-1:-1;;;;;2329:224:0:o;20312:266::-;20369:14;20386:23;20405:3;20386:14;:6;20397:2;20386:10;:14::i;:23::-;20369:40;-1:-1:-1;20420:20:0;20443:23;20462:3;20443:14;:6;20454:2;20443:10;:14::i;:23::-;20477:19;;:39;;20420:46;;-1:-1:-1;;;;;;20477:19:0;;:39;;;;;20506:9;;20477:19;:39;:19;:39;20506:9;20477:19;:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20527:17:0;;:43;;-1:-1:-1;;;;;20527:17:0;;;;:43;;;;;20554:15;;20527:17;:43;:17;:43;20554:15;20527:17;:43;;;;;;;;;;;;;;;;;;;14432:323;14527:7;14585;;14574;:18;;14552:110;;;;-1:-1:-1;;;14552:110:0;;12041:2:1;14552:110:0;;;12023:21:1;12080:2;12060:18;;;12053:30;12119:34;12099:18;;;12092:62;-1:-1:-1;;;12170:18:1;;;12163:40;12220:19;;14552:110:0;11839:406:1;14552:110:0;14673:19;14695:10;:8;:10::i;:::-;14673:32;-1:-1:-1;14723:24:0;:7;14673:32;14723:11;:24::i;:::-;14716:31;14432:323;-1:-1:-1;;;14432:323:0:o;19821:483::-;7186:6;:13;;-1:-1:-1;;;;7186:13:0;-1:-1:-1;;;7186:13:0;;;19923:16:::1;::::0;;19937:1:::1;19923:16:::0;;;;;::::1;::::0;;-1:-1:-1;;19923:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19923:16:0::1;19899:40;;19968:4;19950;19955:1;19950:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19950:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19994:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;19994:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;19950:7;;19994:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19984:4;19989:1;19984:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19984:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;20059:15:::1;::::0;20027:62:::1;::::0;20044:4:::1;::::0;20059:15:::1;20077:11:::0;20027:8:::1;:62::i;:::-;20100:15;::::0;:196:::1;::::0;-1:-1:-1;;;20100:196:0;;-1:-1:-1;;;;;20100:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;20181:11;;20100:15:::1;::::0;20223:4;;20250::::1;::::0;20270:15:::1;::::0;20100:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7222:6:0;:14;;-1:-1:-1;;;;7222:14:0;;;-1:-1:-1;;;;19821:483:0:o;2815:132::-;2873:7;2900:39;2904:1;2907;2900:39;;;;;;;;;;;;;;;;;:3;:39::i;2561:246::-;2619:7;2643:6;2639:47;;-1:-1:-1;2673:1:0;2666:8;;2639:47;2696:9;2708:5;2712:1;2708;:5;:::i;:::-;2696:17;-1:-1:-1;2741:1:0;2732:5;2736:1;2696:17;2732:5;:::i;:::-;:10;2724:56;;;;-1:-1:-1;;;2724:56:0;;14220:2:1;2724:56:0;;;14202:21:1;14259:2;14239:18;;;14232:30;14298:34;14278:18;;;14271:62;-1:-1:-1;;;14349:18:1;;;14342:31;14390:19;;2724:56:0;14018:397:1;23391:516:0;23571:15;;23539:62;;23556:4;;-1:-1:-1;;;;;23571:15:0;23589:11;23539:8;:62::i;:::-;23644:15;;:255;;-1:-1:-1;;;23644:255:0;;23716:4;23644:255;;;14761:34:1;14811:18;;;14804:34;;;23644:15:0;14854:18:1;;;14847:34;;;14897:18;;;14890:34;;;14940:19;;;14933:44;23873:15:0;14993:19:1;;;14986:35;-1:-1:-1;;;;;23644:15:0;;;;:31;;23683:9;;14695:19:1;;23644:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2185:136::-;2243:7;2270:43;2274:1;2277;2270:43;;;;;;;;;;;;;;;;;:3;:43::i;21163:302::-;21319:7;21314:28;;21328:14;:12;:14::i;:::-;21362:44;21380:6;21388:9;21399:6;21362:17;:44::i;:::-;21422:7;21417:29;;21431:15;15140:17;;15128:9;:29;15178:15;;15168:7;:25;15220:15;;15204:13;:31;15084:159;25102:166;25144:7;25165:15;25182;25201:19;:17;:19::i;:::-;25164:56;;-1:-1:-1;25164:56:0;-1:-1:-1;25240:20:0;25164:56;;25240:11;:20::i;:::-;25233:27;;;;25102:166;:::o;2955:223::-;3075:7;3110:12;3103:5;3095:28;;;;-1:-1:-1;;;3095:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3134:9:0;3146:5;3150:1;3146;:5;:::i;14763:313::-;14810:9;;:14;:30;;;;-1:-1:-1;14828:7:0;;:12;14810:30;:52;;;;-1:-1:-1;14844:13:0;;:18;14810:52;14806:65;;;14763:313::o;14806:65::-;14907:9;;;14887:17;:29;14945:7;;;14927:15;:25;14981:13;;;14963:15;:31;-1:-1:-1;15005:13:0;;;;15029:17;;;15057:11;14763:313::o;21728:492::-;21859:20;21882:19;21893:7;21882:10;:19::i;:::-;21950:11;;-1:-1:-1;;;;;21930:15:0;;21950:11;21930:15;;;:7;:15;;;;;;21859:42;;-1:-1:-1;21930:32:0;;:15;:19;:32::i;:::-;-1:-1:-1;;;;;21912:15:0;;;;;;;:7;:15;;;;;;;;:50;;;;22017:19;;;21994:18;;;;;;;;;;:43;;:22;:43::i;:::-;-1:-1:-1;;;;;21973:18:0;;;;;;:7;:18;;;;;:64;22058:9;;;;22048:20;;:9;:20::i;:::-;22082:24;22097:3;:8;;;22082:14;:24::i;:::-;22117:31;22129:3;:8;;;22139:3;:8;;;22117:11;:31::i;:::-;22181:9;-1:-1:-1;;;;;22164:48:0;22173:6;-1:-1:-1;;;;;22164:48:0;;22192:3;:19;;;22164:48;;;;1410:25:1;;1398:2;1383:18;;1264:177;22164:48:0;;;;;;;;21849:371;21728:492;;;:::o;25276:263::-;25374:7;;25327;;;;4637:18;25442:20;25374:7;4637:18;25442:11;:20::i;:::-;25432:7;:30;25428:61;;;-1:-1:-1;;25472:7:0;;;4637:18;;-1:-1:-1;25276:263:0;-1:-1:-1;25276:263:0:o;25428:61::-;25514:7;;25523;;-1:-1:-1;25276:263:0;-1:-1:-1;25276:263:0:o;22639:598::-;22726:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22726:16:0;22770:23;22795:12;22809:13;22839:40;22851:7;22860:9;;22871:7;;22839:11;:40::i;:::-;22769:110;;;;;;22890:11;22904:35;22935:3;22904:26;22916:13;;22904:7;:11;;:26;;;;:::i;:35::-;22890:49;;22950:19;22972:10;:8;:10::i;:::-;22950:32;;22994:15;23011:23;23036:12;23065:51;23077:7;23086:4;23092:5;23098:3;23104:11;23065;:51::i;:::-;23153:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;23153:76:0;;;;;;;;;;;;;;;;22639:598;-1:-1:-1;;22639:598:0:o;1998:179::-;2056:7;;2088:5;2092:1;2088;:5;:::i;:::-;2076:17;;2117:1;2112;:6;;2104:46;;;;-1:-1:-1;;;2104:46:0;;15545:2:1;2104:46:0;;;15527:21:1;15584:2;15564:18;;;15557:30;15623:29;15603:18;;;15596:57;15670:18;;2104:46:0;15343:351:1;22228:211:0;22281:19;22303:10;:8;:10::i;:::-;22281:32;-1:-1:-1;22324:13:0;22340:22;:5;22281:32;22340:9;:22::i;:::-;22414:4;22398:22;;;;:7;:22;;;;;;22324:38;;-1:-1:-1;22398:33:0;;22324:38;22398:26;:33::i;:::-;22389:4;22373:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;22228:211:0:o;22447:147::-;22525:7;;:17;;22537:4;22525:11;:17::i;:::-;22515:7;:27;22566:10;;:20;;22581:4;22566:14;:20::i;:::-;22553:10;:33;-1:-1:-1;;22447:147:0:o;23919:550::-;24089:7;;;;24183:30;24209:3;24183:21;:7;24195:8;24183:11;:21::i;:30::-;24168:45;-1:-1:-1;24224:13:0;24240:28;24264:3;24240:19;:7;24252:6;24240:11;:19::i;:28::-;24224:44;;24279:18;24300:30;24322:7;24300:21;:30::i;:::-;24279:51;-1:-1:-1;24341:23:0;24367:44;24279:51;24367:28;24389:5;24367:28;:7;24379:4;24367:11;:17::i;:::-;:21;;:28::i;:44::-;24341:70;24449:4;;-1:-1:-1;24455:5:0;;-1:-1:-1;23919:550:0;;-1:-1:-1;;;;;;23919:550:0:o;24477:617::-;24695:7;;;;24792:24;:7;24804:11;24792;:24::i;:::-;24774:42;-1:-1:-1;24827:12:0;24842:21;:4;24851:11;24842:8;:21::i;:::-;24827:36;-1:-1:-1;24874:13:0;24890:22;:5;24900:11;24890:9;:22::i;:::-;24874:38;-1:-1:-1;24923:12:0;24938:21;:4;24947:11;24938:8;:21::i;:::-;24923:36;-1:-1:-1;24970:23:0;24996:38;24923:36;24996:28;25018:5;24996:28;:7;25008:4;24996:11;:17::i;:38::-;25055:7;;;;-1:-1:-1;25081:4:0;;-1:-1:-1;24477:617:0;;-1:-1:-1;;;;;;;;;24477:617:0:o;23245:138::-;23314:7;23341:34;23371:3;23341:25;23352:13;;23341:6;:10;;:25;;;;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:180::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;-1:-1:-1;1597:23:1;;1446:180;-1:-1:-1;1446:180:1:o;1631:160::-;1696:20;;1752:13;;1745:21;1735:32;;1725:60;;1781:1;1778;1771:12;1725:60;1631:160;;;:::o;1796:315::-;1861:6;1869;1922:2;1910:9;1901:7;1897:23;1893:32;1890:52;;;1938:1;1935;1928:12;1890:52;1977:9;1964:23;1996:31;2021:5;1996:31;:::i;:::-;2046:5;-1:-1:-1;2070:35:1;2101:2;2086:18;;2070:35;:::i;:::-;2060:45;;1796:315;;;;;:::o;2350:255::-;2417:6;2470:2;2458:9;2449:7;2445:23;2441:32;2438:52;;;2486:1;2483;2476:12;2438:52;2525:9;2512:23;2544:31;2569:5;2544:31;:::i;2610:456::-;2687:6;2695;2703;2756:2;2744:9;2735:7;2731:23;2727:32;2724:52;;;2772:1;2769;2762:12;2724:52;2811:9;2798:23;2830:31;2855:5;2830:31;:::i;:::-;2880:5;-1:-1:-1;2937:2:1;2922:18;;2909:32;2950:33;2909:32;2950:33;:::i;:::-;2610:456;;3002:7;;-1:-1:-1;;;3056:2:1;3041:18;;;;3028:32;;2610:456::o;3468:180::-;3524:6;3577:2;3565:9;3556:7;3552:23;3548:32;3545:52;;;3593:1;3590;3583:12;3545:52;3616:26;3632:9;3616:26;:::i;3905:454::-;4000:6;4008;4016;4024;4032;4085:3;4073:9;4064:7;4060:23;4056:33;4053:53;;;4102:1;4099;4092:12;4053:53;-1:-1:-1;;4125:23:1;;;4195:2;4180:18;;4167:32;;-1:-1:-1;4246:2:1;4231:18;;4218:32;;4297:2;4282:18;;4269:32;;-1:-1:-1;4348:3:1;4333:19;4320:33;;-1:-1:-1;3905:454:1;-1:-1:-1;3905:454:1:o;4364:689::-;4456:6;4464;4472;4525:2;4513:9;4504:7;4500:23;4496:32;4493:52;;;4541:1;4538;4531:12;4493:52;4581:9;4568:23;4610:18;4651:2;4643:6;4640:14;4637:34;;;4667:1;4664;4657:12;4637:34;4705:6;4694:9;4690:22;4680:32;;4750:7;4743:4;4739:2;4735:13;4731:27;4721:55;;4772:1;4769;4762:12;4721:55;4812:2;4799:16;4838:2;4830:6;4827:14;4824:34;;;4854:1;4851;4844:12;4824:34;4909:7;4902:4;4892:6;4889:1;4885:14;4881:2;4877:23;4873:34;4870:47;4867:67;;;4930:1;4927;4920:12;4867:67;4961:4;4953:13;;;;-1:-1:-1;4985:6:1;-1:-1:-1;5010:37:1;;5026:20;;;-1:-1:-1;5010:37:1;:::i;:::-;5000:47;;4364:689;;;;;:::o;5058:388::-;5126:6;5134;5187:2;5175:9;5166:7;5162:23;5158:32;5155:52;;;5203:1;5200;5193:12;5155:52;5242:9;5229:23;5261:31;5286:5;5261:31;:::i;:::-;5311:5;-1:-1:-1;5368:2:1;5353:18;;5340:32;5381:33;5340:32;5381:33;:::i;:::-;5433:7;5423:17;;;5058:388;;;;;:::o;5451:356::-;5653:2;5635:21;;;5672:18;;;5665:30;5731:34;5726:2;5711:18;;5704:62;5798:2;5783:18;;5451:356::o;6164:127::-;6225:10;6220:3;6216:20;6213:1;6206:31;6256:4;6253:1;6246:15;6280:4;6277:1;6270:15;6296:128;6336:3;6367:1;6363:6;6360:1;6357:13;6354:39;;;6373:18;;:::i;:::-;-1:-1:-1;6409:9:1;;6296:128::o;7104:127::-;7165:10;7160:3;7156:20;7153:1;7146:31;7196:4;7193:1;7186:15;7220:4;7217:1;7210:15;7236:135;7275:3;-1:-1:-1;;7296:17:1;;7293:43;;;7316:18;;:::i;:::-;-1:-1:-1;7363:1:1;7352:13;;7236:135::o;9811:125::-;9851:4;9879:1;9876;9873:8;9870:34;;;9884:18;;:::i;:::-;-1:-1:-1;9921:9:1;;9811:125::o;12382:251::-;12452:6;12505:2;12493:9;12484:7;12480:23;12476:32;12473:52;;;12521:1;12518;12511:12;12473:52;12553:9;12547:16;12572:31;12597:5;12572:31;:::i;12638:980::-;12900:4;12948:3;12937:9;12933:19;12979:6;12968:9;12961:25;13005:2;13043:6;13038:2;13027:9;13023:18;13016:34;13086:3;13081:2;13070:9;13066:18;13059:31;13110:6;13145;13139:13;13176:6;13168;13161:22;13214:3;13203:9;13199:19;13192:26;;13253:2;13245:6;13241:15;13227:29;;13274:1;13284:195;13298:6;13295:1;13292:13;13284:195;;;13363:13;;-1:-1:-1;;;;;13359:39:1;13347:52;;13454:15;;;;13419:12;;;;13395:1;13313:9;13284:195;;;-1:-1:-1;;;;;;;13535:32:1;;;;13530:2;13515:18;;13508:60;-1:-1:-1;;;13599:3:1;13584:19;13577:35;13496:3;12638:980;-1:-1:-1;;;12638:980:1:o;13623:168::-;13663:7;13729:1;13725;13721:6;13717:14;13714:1;13711:21;13706:1;13699:9;13692:17;13688:45;13685:71;;;13736:18;;:::i;:::-;-1:-1:-1;13776:9:1;;13623:168::o;13796:217::-;13836:1;13862;13852:132;;13906:10;13901:3;13897:20;13894:1;13887:31;13941:4;13938:1;13931:15;13969:4;13966:1;13959:15;13852:132;-1:-1:-1;13998:9:1;;13796:217::o;15032:306::-;15120:6;15128;15136;15189:2;15177:9;15168:7;15164:23;15160:32;15157:52;;;15205:1;15202;15195:12;15157:52;15234:9;15228:16;15218:26;;15284:2;15273:9;15269:18;15263:25;15253:35;;15328:2;15317:9;15313:18;15307:25;15297:35;;15032:306;;;;;:::o

Swarm Source

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