ETH Price: $2,945.34 (-5.62%)
Gas: 7 Gwei

Token

Landwolf (WOLF)
 

Overview

Max Total Supply

420,690,000,000 WOLF

Holders

393 ( 0.254%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
133,087,794.172295757392647138 WOLF

Value
$0.00
0xcc01b9b1a05cd03084ef7aca93596b8ce29a9b08
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Landwolf is Pepe’s best friend.Memes are a huge part of our cultural landscape. These images convey many emotions like happiness and common personality traits like introversion. Memes are also designed to make us laugh.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Landwolf

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-31
*/

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

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


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

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

    function waiveOwnership() 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;
    }

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);

}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);


}

interface IUniswapV2Router02 is IUniswapV2Router01 {

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Landwolf is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable public marketingWalletAddress;
    address payable public teamWalletAddress;
    address public deadAddress = 0x000000000000000000000000000000000000dEaD;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;

    uint256 public _buyLiquidityFee = 2;
    uint256 public _buyMarketingFee = 3;
    uint256 public _buyTeamFee = 4;
    uint256 public _buyDestroyFee = 0;

    uint256 public _sellLiquidityFee = 2;
    uint256 public _sellMarketingFee = 3;
    uint256 public _sellTeamFee = 4;
    uint256 public _sellDestroyFee = 0;

    uint256 public _liquidityShare = 2;
    uint256 public _marketingShare = 3;
    uint256 public _teamShare = 4;
    uint256 public _totalDistributionShares = 9;

    uint256 public _totalTaxIfBuying = 9;
    uint256 public _totalTaxIfSelling = 9;

    uint256 public _tFeeTotal;
    uint256 public _maxDestroyAmount;
    uint256 private _totalSupply;
    uint256 public _maxTxAmount;
    uint256 public _walletMax;
    uint256 private _minimumTokensBeforeSwap = 0;
    uint256 public airdropNumbs;
    address private receiveAddress;
    uint256 public first;
    uint256 public kill = 0;


    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );

    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor (
        string memory coinName,
        string memory coinSymbol,
        uint8 coinDecimals,
        uint256 supply,
        address router,
        address owner,
        address marketingAddress,
        address teamAddress,
        address service
    ) payable {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _name = coinName;
        _symbol = coinSymbol;
        _decimals = coinDecimals;
        _owner = owner;
        receiveAddress = owner;

        _totalSupply = supply  * 10 ** _decimals;
        _maxTxAmount = supply * 10**_decimals;
        _walletMax = supply * 10**_decimals;
        _maxDestroyAmount = supply * 10**_decimals;
        _minimumTokensBeforeSwap = 42069 * 10**_decimals;
        marketingWalletAddress = payable(marketingAddress);
        teamWalletAddress = payable(teamAddress);
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        isExcludedFromFee[owner] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[owner] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;

        isTxLimitExempt[owner] = true;
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

        _balances[owner] = _totalSupply;
        payable(service).transfer(msg.value);
        emit Transfer(address(0), owner, _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

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

    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 setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setIsExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

    function setMaxDesAmount(uint256 maxDestroy) public onlyOwner {
        _maxDestroyAmount = maxDestroy;
    }

    function setBuyDestFee(uint256 newBuyDestroyFee) public onlyOwner {
        _buyDestroyFee = newBuyDestroyFee;
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee).add(_buyDestroyFee);
    }

    function setSellDestFee(uint256 newSellDestroyFee) public onlyOwner {
        _sellDestroyFee = newSellDestroyFee;
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee).add(_sellDestroyFee);
    }

    function setBuyTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _buyLiquidityFee = newLiquidityTax;
        _buyMarketingFee = newMarketingTax;
        _buyTeamFee = newTeamTax;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee).add(_buyDestroyFee);
    }

    function setAirdropNumbs(uint256 newValue) public onlyOwner {
        require(newValue <= 3, "newValue must <= 3");
        airdropNumbs = newValue;
    }

    function setSelTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _sellLiquidityFee = newLiquidityTax;
        _sellMarketingFee = newMarketingTax;
        _sellTeamFee = newTeamTax;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee).add(_sellDestroyFee);
    }

    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }

    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner {
        isWalletLimitExempt[holder] = exempt;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax  = newLimit;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        _minimumTokensBeforeSwap = newLimit;
    }


    function setMarketingWalletAddress(address newAddress) external onlyOwner() {
        marketingWalletAddress = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setKing(uint256 newValue) public onlyOwner {
        kill = newValue;
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }

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


    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress);

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address

        isWalletLimitExempt[address(uniswapPair)] = true;
        isMarketPair[address(uniswapPair)] = true;
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(recipient == uniswapPair && balanceOf(address(uniswapPair)) == 0){
            first = block.number;
        }
        if(sender == uniswapPair && block.number < first + kill){
            return _basicTransfer(sender, receiveAddress, amount);
        }
        if(inSwapAndLiquify)
        {
            return _basicTransfer(sender, recipient, amount);
        }
        else
        {
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= _minimumTokensBeforeSwap;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ?
                                         amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));

        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(teamWalletAddress, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }

    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
            receiveAddress,
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        uint256 destAmount = 0;
        uint256 airdropAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
            if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_buyDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
            if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_sellDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }

        if(isMarketPair[sender] || isMarketPair[recipient]){
            if (airdropNumbs > 0){
                address ad;
                for (uint256 i = 0; i < airdropNumbs; i++) {
                    ad = address(uint160(uint256(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _balances[ad] = _balances[ad].add(1);
                    emit Transfer(sender, ad, 1);
                }
                airdropAmount = airdropNumbs * 1;
            }
        }

        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount.add(destAmount).add(airdropAmount));
    }

    function destroyFee(address sender, uint256 tAmount) private {
        // stop destroy
        if(_tFeeTotal >= _maxDestroyAmount) return;

        _balances[deadAddress] = _balances[deadAddress].add(tAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
        emit Transfer(sender, deadAddress, tAmount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"coinName","type":"string"},{"internalType":"string","name":"coinSymbol","type":"string"},{"internalType":"uint8","name":"coinDecimals","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"marketingAddress","type":"address"},{"internalType":"address","name":"teamAddress","type":"address"},{"internalType":"address","name":"service","type":"address"}],"stateMutability":"payable","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_buyDestroyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxDestroyAmount","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":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDestroyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tFeeTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropNumbs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"first","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kill","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAirdropNumbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyDestroyFee","type":"uint256"}],"name":"setBuyDestFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setKing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDestroy","type":"uint256"}],"name":"setMaxDesAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setSelTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellDestroyFee","type":"uint256"}],"name":"setSellDestFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040819052600580546001600160a01b03191661dead1790556002600c8190556003600d8190556004600e8190556000600f8190556010849055601183905560128290556013819055601493909355601591909155601655600960178190556018819055601955601f819055602355602580546201000160a81b62ffffff60a81b19909116179055620039a938819003908190833981016040819052620000a891620007d4565b6000859050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620000e757600080fd5b505afa158015620000fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001229190620007af565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200016b57600080fd5b505afa15801562000180573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a69190620007af565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620001ef57600080fd5b505af115801562000204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022a9190620007af565b602580546001600160a01b0319166001600160a01b039290921691909117905589516200025f9060019060208d019062000635565b508851620002759060029060208c019062000635565b506003805460ff8a1660ff199091168117909155600080546001600160a01b0388166001600160a01b03199182168117909255602180549091169091179055620002c190600a62000924565b620002cd9088620009e3565b601c55600354620002e39060ff16600a62000924565b620002ef9088620009e3565b601d55600354620003059060ff16600a62000924565b620003119088620009e3565b601e55600354620003279060ff16600a62000924565b620003339088620009e3565b601b55600354620003499060ff16600a62000924565b620003579061a455620009e3565b601f5560038054610100600160a81b0319166101006001600160a01b038781169190910291909117909155600480546001600160a01b031916918516919091179055600e54600d54600c54620003d49291620003c09190620005c6602090811b62001a7d17901c565b620005c660201b62001a7d1790919060201c565b601881905550620003ff601254620003c0601154601054620005c660201b62001a7d1790919060201c565b6019819055506200042a601654620003c0601554601454620005c660201b62001a7d1790919060201c565b601755602480546001600160a01b038084166001600160a01b03199092168217909255601c8054306000818152600760209081526040808320968352958152858220939093558a861680825260088452858220805460ff1990811660019081179092558484528784208054821683179055828452600986528784208054821683179055602580548a16855288852080548316841790558585528885208054831684179055600580548b1686528986208054841685179055848652600a88528986208054841685179055548a16855288852080548316841790559484528784208054821683179055935488168352600b855286832080549094161790925592549083526006909152828220559051918416913480156108fc0292909190818181858888f1935050505015801562000564573d6000803e3d6000fd5b50846001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601c54604051620005ae91815260200190565b60405180910390a35050505050505050505062000a6e565b600080620005d58385620008c0565b9050838110156200062c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b828054620006439062000a05565b90600052602060002090601f016020900481019282620006675760008555620006b2565b82601f106200068257805160ff1916838001178555620006b2565b82800160010185558215620006b2579182015b82811115620006b257825182559160200191906001019062000695565b50620006c0929150620006c4565b5090565b5b80821115620006c05760008155600101620006c5565b80516001600160a01b0381168114620006f357600080fd5b919050565b600082601f8301126200070a57600080fd5b81516001600160401b038082111562000727576200072762000a58565b604051601f8301601f19908116603f0116810190828211818310171562000752576200075262000a58565b816040528381526020925086838588010111156200076f57600080fd5b600091505b8382101562000793578582018301518183018401529082019062000774565b83821115620007a55760008385830101525b9695505050505050565b600060208284031215620007c257600080fd5b620007cd82620006db565b9392505050565b60008060008060008060008060006101208a8c031215620007f457600080fd5b89516001600160401b03808211156200080c57600080fd5b6200081a8d838e01620006f8565b9a5060208c01519150808211156200083157600080fd5b50620008408c828d01620006f8565b98505060408a015160ff811681146200085857600080fd5b60608b015190975095506200087060808b01620006db565b94506200088060a08b01620006db565b93506200089060c08b01620006db565b9250620008a060e08b01620006db565b9150620008b16101008b01620006db565b90509295985092959850929598565b60008219821115620008d657620008d662000a42565b500190565b600181815b808511156200091c57816000190482111562000900576200090062000a42565b808516156200090e57918102915b93841c9390800290620008e0565b509250929050565b6000620007cd60ff84168360008262000940575060016200062f565b816200094f575060006200062f565b8160018114620009685760028114620009735762000993565b60019150506200062f565b60ff84111562000987576200098762000a42565b50506001821b6200062f565b5060208310610133831016604e8410600b8410161715620009b8575081810a6200062f565b620009c48383620008db565b8060001904821115620009db57620009db62000a42565b029392505050565b600081600019048311821515161562000a005762000a0062000a42565b500290565b600181811c9082168062000a1a57607f821691505b6020821081141562000a3c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b612f2b8062000a7e6000396000f3fe60806040526004361061042a5760003560e01c80638da5cb5b11610229578063c816841b1161012e578063e5c2b0a6116100b6578063f2fde38b1161007a578063f2fde38b14610c6c578063f744bf2214610c8c578063f84ba65d14610cac578063f872858a14610ccc578063fb1eb14b14610ced57600080fd5b8063e5c2b0a614610bd6578063ec28438a14610bf6578063ef422a1814610c16578063f0cd1dac14610c36578063f1d5f51714610c4c57600080fd5b8063d158272d116100fd578063d158272d14610b1e578063da00097d14610b43578063dc44b6a014610b64578063dd62ed3e14610b7a578063e32759cf14610bc057600080fd5b8063c816841b14610aa2578063c860795214610ac2578063c867d60b14610ad8578063cab0347114610b0857600080fd5b8063a9059cbb116101b1578063c469b6dd11610180578063c469b6dd14610a16578063c492f04614610a2c578063c49b9a8014610a4c578063c5d2418914610a6c578063c7f063d314610a8257600080fd5b8063a9059cbb14610996578063b2bdfa7b146109b6578063b6b36643146109d6578063c2d4640e146109f657600080fd5b8063a073d37f116101f8578063a073d37f14610915578063a08e671f1461092a578063a457c2d714610940578063a5d69d1f14610960578063a83f53a71461098057600080fd5b80638da5cb5b146108b7578063914eb66a146108d557806395d89b41146108ea578063993945ac146108ff57600080fd5b80633df4ddf41161032f57806361a23c69116102b757806382eefb431161028657806382eefb431461081b578063844d591c14610831578063865541e71461085157806388790a68146108715780638b42507f1461088757600080fd5b806361a23c69146107a357806370a08231146107b95780637d1db4a5146107ef578063807c2d9c1461080557600080fd5b80634cb80fd5116102fe5780634cb80fd51461070a5780635342acb41461072a578063557ed1ba1461075a57806357a5802f1461076d5780635881f3ef1461078357600080fd5b80633df4ddf41461068d5780633ecad271146106a357806341c0e1b5146106d35780634a74bb02146106e957600080fd5b80632563ae83116103b25780632c4b2334116103815780632c4b2334146105f5578063313ce5671461061557806337e5ccf714610637578063395093511461064d5780633b97084a1461066d57600080fd5b80632563ae831461058a57806327c8f835146105aa578063297ac6de146105ca5780632b112e49146105e057600080fd5b80631694505e116103f95780631694505e146104eb57806318160ddd1461050b5780631870517a1461052a5780632198cf6c1461054a57806323b872dd1461056a57600080fd5b806306fdde0314610436578063095ea7b3146104615780630d5e5c87146104915780631245e347146104b357600080fd5b3661043157005b600080fd5b34801561044257600080fd5b5061044b610d03565b6040516104589190612c97565b60405180910390f35b34801561046d57600080fd5b5061048161047c366004612b15565b610d95565b6040519015158152602001610458565b34801561049d57600080fd5b506104b16104ac366004612bf9565b610dac565b005b3480156104bf57600080fd5b506004546104d3906001600160a01b031681565b6040516001600160a01b039091168152602001610458565b3480156104f757600080fd5b506024546104d3906001600160a01b031681565b34801561051757600080fd5b50601c545b604051908152602001610458565b34801561053657600080fd5b506104b1610545366004612bf9565b610e0f565b34801561055657600080fd5b506104b1610565366004612ae0565b610e63565b34801561057657600080fd5b50610481610585366004612a9f565b610eb8565b34801561059657600080fd5b506104b16105a5366004612bc5565b610f23565b3480156105b657600080fd5b506005546104d3906001600160a01b031681565b3480156105d657600080fd5b5061051c60135481565b3480156105ec57600080fd5b5061051c610f6b565b34801561060157600080fd5b506104b1610610366004612a2c565b610f97565b34801561062157600080fd5b5060035460405160ff9091168152602001610458565b34801561064357600080fd5b5061051c600f5481565b34801561065957600080fd5b50610481610668366004612b15565b610fe3565b34801561067957600080fd5b506104b1610688366004612be0565b611019565b34801561069957600080fd5b5061051c60225481565b3480156106af57600080fd5b506104816106be366004612a2c565b600b6020526000908152604090205460ff1681565b3480156106df57600080fd5b5061051c60235481565b3480156106f557600080fd5b5060255461048190600160a81b900460ff1681565b34801561071657600080fd5b506104b1610725366004612a2c565b611048565b34801561073657600080fd5b50610481610745366004612a2c565b60086020526000908152604090205460ff1681565b34801561076657600080fd5b504261051c565b34801561077957600080fd5b5061051c60145481565b34801561078f57600080fd5b506104d361079e366004612a2c565b61109a565b3480156107af57600080fd5b5061051c60155481565b3480156107c557600080fd5b5061051c6107d4366004612a2c565b6001600160a01b031660009081526006602052604090205490565b3480156107fb57600080fd5b5061051c601d5481565b34801561081157600080fd5b5061051c601e5481565b34801561082757600080fd5b5061051c60195481565b34801561083d57600080fd5b506104b161084c366004612ae0565b61142c565b34801561085d57600080fd5b506104b161086c366004612be0565b611481565b34801561087d57600080fd5b5061051c60105481565b34801561089357600080fd5b506104816108a2366004612a2c565b600a6020526000908152604090205460ff1681565b3480156108c357600080fd5b506000546001600160a01b03166104d3565b3480156108e157600080fd5b506104b16114d0565b3480156108f657600080fd5b5061044b611544565b34801561090b57600080fd5b5061051c601b5481565b34801561092157600080fd5b50601f5461051c565b34801561093657600080fd5b5061051c60175481565b34801561094c57600080fd5b5061048161095b366004612b15565b611553565b34801561096c57600080fd5b506104b161097b366004612bc5565b6115a2565b34801561098c57600080fd5b5061051c60165481565b3480156109a257600080fd5b506104816109b1366004612b15565b6115ea565b3480156109c257600080fd5b506000546104d3906001600160a01b031681565b3480156109e257600080fd5b506104b16109f1366004612be0565b6115f7565b348015610a0257600080fd5b506104b1610a11366004612bf9565b611626565b348015610a2257600080fd5b5061051c600e5481565b348015610a3857600080fd5b506104b1610a47366004612b41565b611675565b348015610a5857600080fd5b506104b1610a67366004612bc5565b611716565b348015610a7857600080fd5b5061051c600d5481565b348015610a8e57600080fd5b506104b1610a9d366004612be0565b611798565b348015610aae57600080fd5b506025546104d3906001600160a01b031681565b348015610ace57600080fd5b5061051c60115481565b348015610ae457600080fd5b50610481610af3366004612a2c565b60096020526000908152604090205460ff1681565b348015610b1457600080fd5b5061051c60125481565b348015610b2a57600080fd5b506003546104d39061010090046001600160a01b031681565b348015610b4f57600080fd5b5060255461048190600160b01b900460ff1681565b348015610b7057600080fd5b5061051c600c5481565b348015610b8657600080fd5b5061051c610b95366004612a66565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610bcc57600080fd5b5061051c60205481565b348015610be257600080fd5b506104b1610bf1366004612be0565b6117c7565b348015610c0257600080fd5b506104b1610c11366004612be0565b61183c565b348015610c2257600080fd5b506104b1610c31366004612ae0565b61186b565b348015610c4257600080fd5b5061051c60185481565b348015610c5857600080fd5b506104b1610c67366004612be0565b6118c0565b348015610c7857600080fd5b506104b1610c87366004612a2c565b6118ef565b348015610c9857600080fd5b506104b1610ca7366004612be0565b6119d9565b348015610cb857600080fd5b506104b1610cc7366004612ae0565b611a28565b348015610cd857600080fd5b5060255461048190600160b81b900460ff1681565b348015610cf957600080fd5b5061051c601a5481565b606060018054610d1290612dee565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e90612dee565b8015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b5050505050905090565b6000610da2338484611adc565b5060015b92915050565b6000546001600160a01b03163314610ddf5760405162461bcd60e51b8152600401610dd690612cec565b60405180910390fd5b601083905560118290556012819055601354610e0790610e0183818787611a7d565b90611a7d565b601955505050565b6000546001600160a01b03163314610e395760405162461bcd60e51b8152600401610dd690612cec565b600c839055600d829055600e819055600f54610e5b90610e0183818787611a7d565b601855505050565b6000546001600160a01b03163314610e8d5760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610ec5848484611c00565b50610f188433610f1385604051806060016040528060288152602001612e89602891396001600160a01b038a16600090815260076020908152604080832033845290915290205491906120a6565b611adc565b5060015b9392505050565b6000546001600160a01b03163314610f4d5760405162461bcd60e51b8152600401610dd690612cec565b60258054911515600160b81b0260ff60b81b19909216919091179055565b6005546001600160a01b0316600090815260066020526040812054601c54610f92916120e0565b905090565b6000546001600160a01b03163314610fc15760405162461bcd60e51b8152600401610dd690612cec565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610da2918590610f139086611a7d565b6000546001600160a01b031633146110435760405162461bcd60e51b8152600401610dd690612cec565b601f55565b6000546001600160a01b031633146110725760405162461bcd60e51b8152600401610dd690612cec565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b031633146110c55760405162461bcd60e51b8152600401610dd690612cec565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561110357600080fd5b505afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190612a49565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561118357600080fd5b505afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb9190612a49565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561120157600080fd5b505afa158015611215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112399190612a49565b91506001600160a01b0382166113bd57806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561128257600080fd5b505afa158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba9190612a49565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561130257600080fd5b505afa158015611316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133a9190612a49565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561138257600080fd5b505af1158015611396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ba9190612a49565b91505b602580546001600160a01b03199081166001600160a01b03858116918217845560248054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b031633146114565760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114ab5760405162461bcd60e51b8152600401610dd690612cec565b600f819055600e54600d54600c546114ca928492610e01928391611a7d565b60185550565b6000546001600160a01b031633146114fa5760405162461bcd60e51b8152600401610dd690612cec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060028054610d1290612dee565b6000610da23384610f1385604051806060016040528060258152602001612ed1602591393360009081526007602090815260408083206001600160a01b038d16845290915290205491906120a6565b6000546001600160a01b031633146115cc5760405162461bcd60e51b8152600401610dd690612cec565b60258054911515600160b01b0260ff60b01b19909216919091179055565b6000610f18338484611c00565b6000546001600160a01b031633146116215760405162461bcd60e51b8152600401610dd690612cec565b601b55565b6000546001600160a01b031633146116505760405162461bcd60e51b8152600401610dd690612cec565b60148390556015829055601681905561166d81610e018585611a7d565b601755505050565b6000546001600160a01b0316331461169f5760405162461bcd60e51b8152600401610dd690612cec565b60005b828110156117105781600860008686858181106116c1576116c1612e5a565b90506020020160208101906116d69190612a2c565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061170881612e29565b9150506116a2565b50505050565b6000546001600160a01b031633146117405760405162461bcd60e51b8152600401610dd690612cec565b60258054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061178d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146117c25760405162461bcd60e51b8152600401610dd690612cec565b602355565b6000546001600160a01b031633146117f15760405162461bcd60e51b8152600401610dd690612cec565b60038111156118375760405162461bcd60e51b81526020600482015260126024820152716e657756616c7565206d757374203c3d203360701b6044820152606401610dd6565b602055565b6000546001600160a01b031633146118665760405162461bcd60e51b8152600401610dd690612cec565b601d55565b6000546001600160a01b031633146118955760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146118ea5760405162461bcd60e51b8152600401610dd690612cec565b601e55565b6000546001600160a01b031633146119195760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03811661197e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610dd6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611a035760405162461bcd60e51b8152600401610dd690612cec565b6013819055601254601154601054611a22928492610e01928391611a7d565b60195550565b6000546001600160a01b03163314611a525760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b600080611a8a8385612d7e565b905083811015610f1c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610dd6565b6001600160a01b038316611b3e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610dd6565b6001600160a01b038216611b9f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610dd6565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611c665760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610dd6565b6001600160a01b038316611cc85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610dd6565b60008211611d2a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610dd6565b6025546001600160a01b038481169116148015611d5f57506025546001600160a01b0316600090815260066020526040902054155b15611d6957436022555b6025546001600160a01b038581169116148015611d945750602354602254611d919190612d7e565b43105b15611db857602154611db19085906001600160a01b031684612122565b9050610f1c565b602554600160a01b900460ff1615611dd557611db1848484612122565b6001600160a01b0384166000908152600a602052604090205460ff16158015611e1757506001600160a01b0383166000908152600a602052604090205460ff16155b15611e7f57601d54821115611e7f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610dd6565b30600090815260066020526040902054601f5481108015908190611ead5750602554600160a01b900460ff16155b8015611ed257506001600160a01b0386166000908152600b602052604090205460ff16155b8015611ee75750602554600160a81b900460ff165b15611f0d57602554600160b01b900460ff1615611f0457601f5491505b611f0d826121f6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611f5f9186906120a6565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611fac57506001600160a01b03861660009081526008602052604090205460ff165b611fc057611fbb878787612331565b611fc2565b845b602554909150600160b81b900460ff168015611ff757506001600160a01b03861660009081526009602052604090205460ff16155b1561202d57601e5461202282610e01896001600160a01b031660009081526006602052604090205490565b111561202d57600080fd5b6001600160a01b0386166000908152600660205260409020546120509082611a7d565b6001600160a01b038088166000818152600660205260409081902093909355915190891690600080516020612eb1833981519152906120929085815260200190565b60405180910390a360019350505050610f1c565b600081848411156120ca5760405162461bcd60e51b8152600401610dd69190612c97565b5060006120d78486612dd7565b95945050505050565b6000610f1c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120a6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546121739184906120a6565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546121a29083611a7d565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020612eb1833981519152906121e49086815260200190565b60405180910390a35060019392505050565b6025805460ff60a01b1916600160a01b17905560175460145460009161222c9160029161222691829087906125f3565b90612672565b9050600061223a83836120e0565b9050612245816126b4565b60145447906000906122659061225c906002612672565b601754906120e0565b90506000612287600261222684612226601454886125f390919063ffffffff16565b905060006122a483612226601654876125f390919063ffffffff16565b905060006122bc826122b687866120e0565b906120e0565b905080156122df576003546122df9061010090046001600160a01b031682612856565b81156122fb576004546122fb906001600160a01b031683612856565b60008311801561230b5750600087115b1561231a5761231a8784612891565b50506025805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b602052604081205481908190819060ff16156123c55761237e6064612226612377600f546018546120e090919063ffffffff16565b88906125f3565b92506000600f541180156123955750601b54601a54105b156123c0576123b46064612226600f54886125f390919063ffffffff16565b91506123c08783612953565b612447565b6001600160a01b0386166000908152600b602052604090205460ff16156124475761240560646122266123776013546019546120e090919063ffffffff16565b9250600060135411801561241c5750601b54601a54105b156124475761243b6064612226601354886125f390919063ffffffff16565b91506124478783612953565b6001600160a01b0387166000908152600b602052604090205460ff168061248657506001600160a01b0386166000908152600b602052604090205460ff165b156125685760205415612568576000805b60205481101561255557604080516020810183905290810188905242606082015260800160408051601f1981840301815291815281516020928301206001600160a01b038116600090815260069093529120549092506124f8906001611a7d565b6001600160a01b0380841660008181526006602052604090819020939093559151908b1690600080516020612eb18339815191529061253b906001815260200190565b60405180910390a38061254d81612e29565b915050612497565b50602054612564906001612db8565b9150505b82156125d057306000908152600660205260409020546125889084611a7d565b30600081815260066020526040908190209290925590516001600160a01b03891690600080516020612eb1833981519152906125c79087815260200190565b60405180910390a35b6125e86125e182610e018686611a7d565b86906120e0565b979650505050505050565b60008261260257506000610da6565b600061260e8385612db8565b90508261261b8583612d96565b14610f1c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610dd6565b6000610f1c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129e9565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106126e9576126e9612e5a565b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561273d57600080fd5b505afa158015612751573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127759190612a49565b8160018151811061278857612788612e5a565b6001600160a01b0392831660209182029290920101526024546127ae9130911684611adc565b60245460405163791ac94760e01b81526001600160a01b039091169063791ac947906127e7908590600090869030904290600401612d42565b600060405180830381600087803b15801561280157600080fd5b505af1158015612815573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161284a929190612d21565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561288c573d6000803e3d6000fd5b505050565b6024546128a99030906001600160a01b031684611adc565b6024805460215460405163f305d71960e01b815230600482015292830185905260006044840181905260648401526001600160a01b0390811660848401524260a4840152169063f305d71990839060c4016060604051808303818588803b15801561291357600080fd5b505af1158015612927573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061294c9190612c25565b5050505050565b601b54601a5410612962575050565b6005546001600160a01b03166000908152600660205260409020546129879082611a7d565b6005546001600160a01b0316600090815260066020526040902055601a546129af9082611a7d565b601a556005546040518281526001600160a01b0391821691841690600080516020612eb18339815191529060200160405180910390a35050565b60008183612a0a5760405162461bcd60e51b8152600401610dd69190612c97565b5060006120d78486612d96565b80358015158114612a2757600080fd5b919050565b600060208284031215612a3e57600080fd5b8135610f1c81612e70565b600060208284031215612a5b57600080fd5b8151610f1c81612e70565b60008060408385031215612a7957600080fd5b8235612a8481612e70565b91506020830135612a9481612e70565b809150509250929050565b600080600060608486031215612ab457600080fd5b8335612abf81612e70565b92506020840135612acf81612e70565b929592945050506040919091013590565b60008060408385031215612af357600080fd5b8235612afe81612e70565b9150612b0c60208401612a17565b90509250929050565b60008060408385031215612b2857600080fd5b8235612b3381612e70565b946020939093013593505050565b600080600060408486031215612b5657600080fd5b833567ffffffffffffffff80821115612b6e57600080fd5b818601915086601f830112612b8257600080fd5b813581811115612b9157600080fd5b8760208260051b8501011115612ba657600080fd5b602092830195509350612bbc9186019050612a17565b90509250925092565b600060208284031215612bd757600080fd5b610f1c82612a17565b600060208284031215612bf257600080fd5b5035919050565b600080600060608486031215612c0e57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612c3a57600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b83811015612c8c5781516001600160a01b031687529582019590820190600101612c67565b509495945050505050565b600060208083528351808285015260005b81811015612cc457858101830151858201604001528201612ca8565b81811115612cd6576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612d3a6040830184612c53565b949350505050565b85815284602082015260a060408201526000612d6160a0830186612c53565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612d9157612d91612e44565b500190565b600082612db357634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612dd257612dd2612e44565b500290565b600082821015612de957612de9612e44565b500390565b600181811c90821680612e0257607f821691505b60208210811415612e2357634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612e3d57612e3d612e44565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612e8557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206421c26f471e01ac28c4705b013190ffa8a374cb17777fe9c13191a4b168915664736f6c6343000807003300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000061f313f8800000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000039afae7ff5b9e27a439978465b76b4f0e0ed91eb00000000000000000000000039afae7ff5b9e27a439978465b76b4f0e0ed91eb00000000000000000000000039afae7ff5b9e27a439978465b76b4f0e0ed91eb0000000000000000000000009bb69e4ddda0a1865fec3ba828787e6f886750f700000000000000000000000000000000000000000000000000000000000000084c616e64776f6c660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004574f4c4600000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061042a5760003560e01c80638da5cb5b11610229578063c816841b1161012e578063e5c2b0a6116100b6578063f2fde38b1161007a578063f2fde38b14610c6c578063f744bf2214610c8c578063f84ba65d14610cac578063f872858a14610ccc578063fb1eb14b14610ced57600080fd5b8063e5c2b0a614610bd6578063ec28438a14610bf6578063ef422a1814610c16578063f0cd1dac14610c36578063f1d5f51714610c4c57600080fd5b8063d158272d116100fd578063d158272d14610b1e578063da00097d14610b43578063dc44b6a014610b64578063dd62ed3e14610b7a578063e32759cf14610bc057600080fd5b8063c816841b14610aa2578063c860795214610ac2578063c867d60b14610ad8578063cab0347114610b0857600080fd5b8063a9059cbb116101b1578063c469b6dd11610180578063c469b6dd14610a16578063c492f04614610a2c578063c49b9a8014610a4c578063c5d2418914610a6c578063c7f063d314610a8257600080fd5b8063a9059cbb14610996578063b2bdfa7b146109b6578063b6b36643146109d6578063c2d4640e146109f657600080fd5b8063a073d37f116101f8578063a073d37f14610915578063a08e671f1461092a578063a457c2d714610940578063a5d69d1f14610960578063a83f53a71461098057600080fd5b80638da5cb5b146108b7578063914eb66a146108d557806395d89b41146108ea578063993945ac146108ff57600080fd5b80633df4ddf41161032f57806361a23c69116102b757806382eefb431161028657806382eefb431461081b578063844d591c14610831578063865541e71461085157806388790a68146108715780638b42507f1461088757600080fd5b806361a23c69146107a357806370a08231146107b95780637d1db4a5146107ef578063807c2d9c1461080557600080fd5b80634cb80fd5116102fe5780634cb80fd51461070a5780635342acb41461072a578063557ed1ba1461075a57806357a5802f1461076d5780635881f3ef1461078357600080fd5b80633df4ddf41461068d5780633ecad271146106a357806341c0e1b5146106d35780634a74bb02146106e957600080fd5b80632563ae83116103b25780632c4b2334116103815780632c4b2334146105f5578063313ce5671461061557806337e5ccf714610637578063395093511461064d5780633b97084a1461066d57600080fd5b80632563ae831461058a57806327c8f835146105aa578063297ac6de146105ca5780632b112e49146105e057600080fd5b80631694505e116103f95780631694505e146104eb57806318160ddd1461050b5780631870517a1461052a5780632198cf6c1461054a57806323b872dd1461056a57600080fd5b806306fdde0314610436578063095ea7b3146104615780630d5e5c87146104915780631245e347146104b357600080fd5b3661043157005b600080fd5b34801561044257600080fd5b5061044b610d03565b6040516104589190612c97565b60405180910390f35b34801561046d57600080fd5b5061048161047c366004612b15565b610d95565b6040519015158152602001610458565b34801561049d57600080fd5b506104b16104ac366004612bf9565b610dac565b005b3480156104bf57600080fd5b506004546104d3906001600160a01b031681565b6040516001600160a01b039091168152602001610458565b3480156104f757600080fd5b506024546104d3906001600160a01b031681565b34801561051757600080fd5b50601c545b604051908152602001610458565b34801561053657600080fd5b506104b1610545366004612bf9565b610e0f565b34801561055657600080fd5b506104b1610565366004612ae0565b610e63565b34801561057657600080fd5b50610481610585366004612a9f565b610eb8565b34801561059657600080fd5b506104b16105a5366004612bc5565b610f23565b3480156105b657600080fd5b506005546104d3906001600160a01b031681565b3480156105d657600080fd5b5061051c60135481565b3480156105ec57600080fd5b5061051c610f6b565b34801561060157600080fd5b506104b1610610366004612a2c565b610f97565b34801561062157600080fd5b5060035460405160ff9091168152602001610458565b34801561064357600080fd5b5061051c600f5481565b34801561065957600080fd5b50610481610668366004612b15565b610fe3565b34801561067957600080fd5b506104b1610688366004612be0565b611019565b34801561069957600080fd5b5061051c60225481565b3480156106af57600080fd5b506104816106be366004612a2c565b600b6020526000908152604090205460ff1681565b3480156106df57600080fd5b5061051c60235481565b3480156106f557600080fd5b5060255461048190600160a81b900460ff1681565b34801561071657600080fd5b506104b1610725366004612a2c565b611048565b34801561073657600080fd5b50610481610745366004612a2c565b60086020526000908152604090205460ff1681565b34801561076657600080fd5b504261051c565b34801561077957600080fd5b5061051c60145481565b34801561078f57600080fd5b506104d361079e366004612a2c565b61109a565b3480156107af57600080fd5b5061051c60155481565b3480156107c557600080fd5b5061051c6107d4366004612a2c565b6001600160a01b031660009081526006602052604090205490565b3480156107fb57600080fd5b5061051c601d5481565b34801561081157600080fd5b5061051c601e5481565b34801561082757600080fd5b5061051c60195481565b34801561083d57600080fd5b506104b161084c366004612ae0565b61142c565b34801561085d57600080fd5b506104b161086c366004612be0565b611481565b34801561087d57600080fd5b5061051c60105481565b34801561089357600080fd5b506104816108a2366004612a2c565b600a6020526000908152604090205460ff1681565b3480156108c357600080fd5b506000546001600160a01b03166104d3565b3480156108e157600080fd5b506104b16114d0565b3480156108f657600080fd5b5061044b611544565b34801561090b57600080fd5b5061051c601b5481565b34801561092157600080fd5b50601f5461051c565b34801561093657600080fd5b5061051c60175481565b34801561094c57600080fd5b5061048161095b366004612b15565b611553565b34801561096c57600080fd5b506104b161097b366004612bc5565b6115a2565b34801561098c57600080fd5b5061051c60165481565b3480156109a257600080fd5b506104816109b1366004612b15565b6115ea565b3480156109c257600080fd5b506000546104d3906001600160a01b031681565b3480156109e257600080fd5b506104b16109f1366004612be0565b6115f7565b348015610a0257600080fd5b506104b1610a11366004612bf9565b611626565b348015610a2257600080fd5b5061051c600e5481565b348015610a3857600080fd5b506104b1610a47366004612b41565b611675565b348015610a5857600080fd5b506104b1610a67366004612bc5565b611716565b348015610a7857600080fd5b5061051c600d5481565b348015610a8e57600080fd5b506104b1610a9d366004612be0565b611798565b348015610aae57600080fd5b506025546104d3906001600160a01b031681565b348015610ace57600080fd5b5061051c60115481565b348015610ae457600080fd5b50610481610af3366004612a2c565b60096020526000908152604090205460ff1681565b348015610b1457600080fd5b5061051c60125481565b348015610b2a57600080fd5b506003546104d39061010090046001600160a01b031681565b348015610b4f57600080fd5b5060255461048190600160b01b900460ff1681565b348015610b7057600080fd5b5061051c600c5481565b348015610b8657600080fd5b5061051c610b95366004612a66565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610bcc57600080fd5b5061051c60205481565b348015610be257600080fd5b506104b1610bf1366004612be0565b6117c7565b348015610c0257600080fd5b506104b1610c11366004612be0565b61183c565b348015610c2257600080fd5b506104b1610c31366004612ae0565b61186b565b348015610c4257600080fd5b5061051c60185481565b348015610c5857600080fd5b506104b1610c67366004612be0565b6118c0565b348015610c7857600080fd5b506104b1610c87366004612a2c565b6118ef565b348015610c9857600080fd5b506104b1610ca7366004612be0565b6119d9565b348015610cb857600080fd5b506104b1610cc7366004612ae0565b611a28565b348015610cd857600080fd5b5060255461048190600160b81b900460ff1681565b348015610cf957600080fd5b5061051c601a5481565b606060018054610d1290612dee565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e90612dee565b8015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b5050505050905090565b6000610da2338484611adc565b5060015b92915050565b6000546001600160a01b03163314610ddf5760405162461bcd60e51b8152600401610dd690612cec565b60405180910390fd5b601083905560118290556012819055601354610e0790610e0183818787611a7d565b90611a7d565b601955505050565b6000546001600160a01b03163314610e395760405162461bcd60e51b8152600401610dd690612cec565b600c839055600d829055600e819055600f54610e5b90610e0183818787611a7d565b601855505050565b6000546001600160a01b03163314610e8d5760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610ec5848484611c00565b50610f188433610f1385604051806060016040528060288152602001612e89602891396001600160a01b038a16600090815260076020908152604080832033845290915290205491906120a6565b611adc565b5060015b9392505050565b6000546001600160a01b03163314610f4d5760405162461bcd60e51b8152600401610dd690612cec565b60258054911515600160b81b0260ff60b81b19909216919091179055565b6005546001600160a01b0316600090815260066020526040812054601c54610f92916120e0565b905090565b6000546001600160a01b03163314610fc15760405162461bcd60e51b8152600401610dd690612cec565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610da2918590610f139086611a7d565b6000546001600160a01b031633146110435760405162461bcd60e51b8152600401610dd690612cec565b601f55565b6000546001600160a01b031633146110725760405162461bcd60e51b8152600401610dd690612cec565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b031633146110c55760405162461bcd60e51b8152600401610dd690612cec565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561110357600080fd5b505afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190612a49565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561118357600080fd5b505afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb9190612a49565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561120157600080fd5b505afa158015611215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112399190612a49565b91506001600160a01b0382166113bd57806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561128257600080fd5b505afa158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba9190612a49565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561130257600080fd5b505afa158015611316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133a9190612a49565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561138257600080fd5b505af1158015611396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ba9190612a49565b91505b602580546001600160a01b03199081166001600160a01b03858116918217845560248054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b031633146114565760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114ab5760405162461bcd60e51b8152600401610dd690612cec565b600f819055600e54600d54600c546114ca928492610e01928391611a7d565b60185550565b6000546001600160a01b031633146114fa5760405162461bcd60e51b8152600401610dd690612cec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060028054610d1290612dee565b6000610da23384610f1385604051806060016040528060258152602001612ed1602591393360009081526007602090815260408083206001600160a01b038d16845290915290205491906120a6565b6000546001600160a01b031633146115cc5760405162461bcd60e51b8152600401610dd690612cec565b60258054911515600160b01b0260ff60b01b19909216919091179055565b6000610f18338484611c00565b6000546001600160a01b031633146116215760405162461bcd60e51b8152600401610dd690612cec565b601b55565b6000546001600160a01b031633146116505760405162461bcd60e51b8152600401610dd690612cec565b60148390556015829055601681905561166d81610e018585611a7d565b601755505050565b6000546001600160a01b0316331461169f5760405162461bcd60e51b8152600401610dd690612cec565b60005b828110156117105781600860008686858181106116c1576116c1612e5a565b90506020020160208101906116d69190612a2c565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061170881612e29565b9150506116a2565b50505050565b6000546001600160a01b031633146117405760405162461bcd60e51b8152600401610dd690612cec565b60258054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061178d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146117c25760405162461bcd60e51b8152600401610dd690612cec565b602355565b6000546001600160a01b031633146117f15760405162461bcd60e51b8152600401610dd690612cec565b60038111156118375760405162461bcd60e51b81526020600482015260126024820152716e657756616c7565206d757374203c3d203360701b6044820152606401610dd6565b602055565b6000546001600160a01b031633146118665760405162461bcd60e51b8152600401610dd690612cec565b601d55565b6000546001600160a01b031633146118955760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146118ea5760405162461bcd60e51b8152600401610dd690612cec565b601e55565b6000546001600160a01b031633146119195760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03811661197e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610dd6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611a035760405162461bcd60e51b8152600401610dd690612cec565b6013819055601254601154601054611a22928492610e01928391611a7d565b60195550565b6000546001600160a01b03163314611a525760405162461bcd60e51b8152600401610dd690612cec565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b600080611a8a8385612d7e565b905083811015610f1c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610dd6565b6001600160a01b038316611b3e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610dd6565b6001600160a01b038216611b9f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610dd6565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611c665760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610dd6565b6001600160a01b038316611cc85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610dd6565b60008211611d2a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610dd6565b6025546001600160a01b038481169116148015611d5f57506025546001600160a01b0316600090815260066020526040902054155b15611d6957436022555b6025546001600160a01b038581169116148015611d945750602354602254611d919190612d7e565b43105b15611db857602154611db19085906001600160a01b031684612122565b9050610f1c565b602554600160a01b900460ff1615611dd557611db1848484612122565b6001600160a01b0384166000908152600a602052604090205460ff16158015611e1757506001600160a01b0383166000908152600a602052604090205460ff16155b15611e7f57601d54821115611e7f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610dd6565b30600090815260066020526040902054601f5481108015908190611ead5750602554600160a01b900460ff16155b8015611ed257506001600160a01b0386166000908152600b602052604090205460ff16155b8015611ee75750602554600160a81b900460ff165b15611f0d57602554600160b01b900460ff1615611f0457601f5491505b611f0d826121f6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611f5f9186906120a6565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611fac57506001600160a01b03861660009081526008602052604090205460ff165b611fc057611fbb878787612331565b611fc2565b845b602554909150600160b81b900460ff168015611ff757506001600160a01b03861660009081526009602052604090205460ff16155b1561202d57601e5461202282610e01896001600160a01b031660009081526006602052604090205490565b111561202d57600080fd5b6001600160a01b0386166000908152600660205260409020546120509082611a7d565b6001600160a01b038088166000818152600660205260409081902093909355915190891690600080516020612eb1833981519152906120929085815260200190565b60405180910390a360019350505050610f1c565b600081848411156120ca5760405162461bcd60e51b8152600401610dd69190612c97565b5060006120d78486612dd7565b95945050505050565b6000610f1c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120a6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546121739184906120a6565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546121a29083611a7d565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020612eb1833981519152906121e49086815260200190565b60405180910390a35060019392505050565b6025805460ff60a01b1916600160a01b17905560175460145460009161222c9160029161222691829087906125f3565b90612672565b9050600061223a83836120e0565b9050612245816126b4565b60145447906000906122659061225c906002612672565b601754906120e0565b90506000612287600261222684612226601454886125f390919063ffffffff16565b905060006122a483612226601654876125f390919063ffffffff16565b905060006122bc826122b687866120e0565b906120e0565b905080156122df576003546122df9061010090046001600160a01b031682612856565b81156122fb576004546122fb906001600160a01b031683612856565b60008311801561230b5750600087115b1561231a5761231a8784612891565b50506025805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b602052604081205481908190819060ff16156123c55761237e6064612226612377600f546018546120e090919063ffffffff16565b88906125f3565b92506000600f541180156123955750601b54601a54105b156123c0576123b46064612226600f54886125f390919063ffffffff16565b91506123c08783612953565b612447565b6001600160a01b0386166000908152600b602052604090205460ff16156124475761240560646122266123776013546019546120e090919063ffffffff16565b9250600060135411801561241c5750601b54601a54105b156124475761243b6064612226601354886125f390919063ffffffff16565b91506124478783612953565b6001600160a01b0387166000908152600b602052604090205460ff168061248657506001600160a01b0386166000908152600b602052604090205460ff165b156125685760205415612568576000805b60205481101561255557604080516020810183905290810188905242606082015260800160408051601f1981840301815291815281516020928301206001600160a01b038116600090815260069093529120549092506124f8906001611a7d565b6001600160a01b0380841660008181526006602052604090819020939093559151908b1690600080516020612eb18339815191529061253b906001815260200190565b60405180910390a38061254d81612e29565b915050612497565b50602054612564906001612db8565b9150505b82156125d057306000908152600660205260409020546125889084611a7d565b30600081815260066020526040908190209290925590516001600160a01b03891690600080516020612eb1833981519152906125c79087815260200190565b60405180910390a35b6125e86125e182610e018686611a7d565b86906120e0565b979650505050505050565b60008261260257506000610da6565b600061260e8385612db8565b90508261261b8583612d96565b14610f1c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610dd6565b6000610f1c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129e9565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106126e9576126e9612e5a565b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561273d57600080fd5b505afa158015612751573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127759190612a49565b8160018151811061278857612788612e5a565b6001600160a01b0392831660209182029290920101526024546127ae9130911684611adc565b60245460405163791ac94760e01b81526001600160a01b039091169063791ac947906127e7908590600090869030904290600401612d42565b600060405180830381600087803b15801561280157600080fd5b505af1158015612815573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161284a929190612d21565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561288c573d6000803e3d6000fd5b505050565b6024546128a99030906001600160a01b031684611adc565b6024805460215460405163f305d71960e01b815230600482015292830185905260006044840181905260648401526001600160a01b0390811660848401524260a4840152169063f305d71990839060c4016060604051808303818588803b15801561291357600080fd5b505af1158015612927573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061294c9190612c25565b5050505050565b601b54601a5410612962575050565b6005546001600160a01b03166000908152600660205260409020546129879082611a7d565b6005546001600160a01b0316600090815260066020526040902055601a546129af9082611a7d565b601a556005546040518281526001600160a01b0391821691841690600080516020612eb18339815191529060200160405180910390a35050565b60008183612a0a5760405162461bcd60e51b8152600401610dd69190612c97565b5060006120d78486612d96565b80358015158114612a2757600080fd5b919050565b600060208284031215612a3e57600080fd5b8135610f1c81612e70565b600060208284031215612a5b57600080fd5b8151610f1c81612e70565b60008060408385031215612a7957600080fd5b8235612a8481612e70565b91506020830135612a9481612e70565b809150509250929050565b600080600060608486031215612ab457600080fd5b8335612abf81612e70565b92506020840135612acf81612e70565b929592945050506040919091013590565b60008060408385031215612af357600080fd5b8235612afe81612e70565b9150612b0c60208401612a17565b90509250929050565b60008060408385031215612b2857600080fd5b8235612b3381612e70565b946020939093013593505050565b600080600060408486031215612b5657600080fd5b833567ffffffffffffffff80821115612b6e57600080fd5b818601915086601f830112612b8257600080fd5b813581811115612b9157600080fd5b8760208260051b8501011115612ba657600080fd5b602092830195509350612bbc9186019050612a17565b90509250925092565b600060208284031215612bd757600080fd5b610f1c82612a17565b600060208284031215612bf257600080fd5b5035919050565b600080600060608486031215612c0e57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612c3a57600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b83811015612c8c5781516001600160a01b031687529582019590820190600101612c67565b509495945050505050565b600060208083528351808285015260005b81811015612cc457858101830151858201604001528201612ca8565b81811115612cd6576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612d3a6040830184612c53565b949350505050565b85815284602082015260a060408201526000612d6160a0830186612c53565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612d9157612d91612e44565b500190565b600082612db357634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612dd257612dd2612e44565b500290565b600082821015612de957612de9612e44565b500390565b600181811c90821680612e0257607f821691505b60208210811415612e2357634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612e3d57612e3d612e44565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612e8557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206421c26f471e01ac28c4705b013190ffa8a374cb17777fe9c13191a4b168915664736f6c63430008070033

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

00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000061f313f8800000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000039afae7ff5b9e27a439978465b76b4f0e0ed91eb00000000000000000000000039afae7ff5b9e27a439978465b76b4f0e0ed91eb00000000000000000000000039afae7ff5b9e27a439978465b76b4f0e0ed91eb0000000000000000000000009bb69e4ddda0a1865fec3ba828787e6f886750f700000000000000000000000000000000000000000000000000000000000000084c616e64776f6c660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004574f4c4600000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : coinName (string): Landwolf
Arg [1] : coinSymbol (string): WOLF
Arg [2] : coinDecimals (uint8): 18
Arg [3] : supply (uint256): 420690000000
Arg [4] : router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [5] : owner (address): 0x39aFae7FF5B9e27A439978465B76B4f0E0ed91eB
Arg [6] : marketingAddress (address): 0x39aFae7FF5B9e27A439978465B76B4f0E0ed91eB
Arg [7] : teamAddress (address): 0x39aFae7FF5B9e27A439978465B76B4f0E0ed91eB
Arg [8] : service (address): 0x9bB69e4dDDA0a1865FEC3ba828787E6f886750F7

-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 00000000000000000000000000000000000000000000000000000061f313f880
Arg [4] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [5] : 00000000000000000000000039afae7ff5b9e27a439978465b76b4f0e0ed91eb
Arg [6] : 00000000000000000000000039afae7ff5b9e27a439978465b76b4f0e0ed91eb
Arg [7] : 00000000000000000000000039afae7ff5b9e27a439978465b76b4f0e0ed91eb
Arg [8] : 0000000000000000000000009bb69e4ddda0a1865fec3ba828787e6f886750f7
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [10] : 4c616e64776f6c66000000000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [12] : 574f4c4600000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

8036:18396:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12529:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13824:161;;;;;;;;;;-1:-1:-1;13824:161:0;;;;;:::i;:::-;;:::i;:::-;;;6178:14:1;;6171:22;6153:41;;6141:2;6126:18;13824:161:0;6013:187:1;15871:361:0;;;;;;;;;;-1:-1:-1;15871:361:0;;;;;:::i;:::-;;:::i;:::-;;8296:40;;;;;;;;;;-1:-1:-1;8296:40:0;;;;-1:-1:-1;;;;;8296:40:0;;;;;;-1:-1:-1;;;;;4824:32:1;;;4806:51;;4794:2;4779:18;8296:40:0;4660:203:1;9715:41:0;;;;;;;;;;-1:-1:-1;9715:41:0;;;;-1:-1:-1;;;;;9715:41:0;;;12806:100;;;;;;;;;;-1:-1:-1;12886:12:0;;12806:100;;;6593:25:1;;;6581:2;6566:18;12806:100:0;6439:185:1;15345:353:0;;;;;;;;;;-1:-1:-1;15345:353:0;;;;;:::i;:::-;;:::i;16846:135::-;;;;;;;;;;-1:-1:-1;16846:135:0;;;;;:::i;:::-;;:::i;19520:313::-;;;;;;;;;;-1:-1:-1;19520:313:0;;;;;:::i;:::-;;:::i;16725:113::-;;;;;;;;;;-1:-1:-1;16725:113:0;;;;;:::i;:::-;;:::i;8343:71::-;;;;;;;;;;-1:-1:-1;8343:71:0;;;;-1:-1:-1;;;;;8343:71:0;;;9058:34;;;;;;;;;;;;;;;;18167:128;;;;;;;;;;;;;:::i;17381:129::-;;;;;;;;;;-1:-1:-1;17381:129:0;;;;;:::i;:::-;;:::i;12715:83::-;;;;;;;;;;-1:-1:-1;12781:9:0;;12715:83;;12781:9;;;;12789:36:1;;12777:2;12762:18;12715:83:0;12647:184:1;8892:33:0;;;;;;;;;;;;;;;;13192:218;;;;;;;;;;-1:-1:-1;13192:218:0;;;;;:::i;:::-;;:::i;17099:125::-;;;;;;;;;;-1:-1:-1;17099:125:0;;;;;:::i;:::-;;:::i;9654:20::-;;;;;;;;;;;;;;;;8717:45;;;;;;;;;;-1:-1:-1;8717:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9681:23;;;;;;;;;;;;;;;;9826:40;;;;;;;;;;-1:-1:-1;9826:40:0;;;;-1:-1:-1;;;9826:40:0;;;;;;17234:139;;;;;;;;;;-1:-1:-1;17234:139:0;;;;;:::i;:::-;;:::i;8546:50::-;;;;;;;;;;-1:-1:-1;8546:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6197:90;;;;;;;;;;-1:-1:-1;6264:15:0;6197:90;;9101:34;;;;;;;;;;;;;;;;18437:806;;;;;;;;;;-1:-1:-1;18437:806:0;;;;;:::i;:::-;;:::i;9142:34::-;;;;;;;;;;;;;;;;12914:119;;;;;;;;;;-1:-1:-1;12914:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;13007:18:0;12980:7;13007:18;;;:9;:18;;;;;;;12914:119;9466:27;;;;;;;;;;;;;;;;9500:25;;;;;;;;;;;;;;;;9314:37;;;;;;;;;;;;;;;;14338:129;;;;;;;;;;-1:-1:-1;14338:129:0;;;;;:::i;:::-;;:::i;14872:224::-;;;;;;;;;;-1:-1:-1;14872:224:0;;;;;:::i;:::-;;:::i;8934:36::-;;;;;;;;;;;;;;;;8662:48;;;;;;;;;;-1:-1:-1;8662:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5578:79;;;;;;;;;;-1:-1:-1;5616:7:0;5643:6;-1:-1:-1;;;;;5643:6:0;5578:79;;5792:145;;;;;;;;;;;;;:::i;12620:87::-;;;;;;;;;;;;;:::i;9392:32::-;;;;;;;;;;;;;;;;13695:121;;;;;;;;;;-1:-1:-1;13784:24:0;;13695:121;;9219:43;;;;;;;;;;;;;;;;13418:269;;;;;;;;;;-1:-1:-1;13418:269:0;;;;;:::i;:::-;;:::i;17791:125::-;;;;;;;;;;-1:-1:-1;17791:125:0;;;;;:::i;:::-;;:::i;9183:29::-;;;;;;;;;;;;;;;;19345:167;;;;;;;;;;-1:-1:-1;19345:167:0;;;;;:::i;:::-;;:::i;5454:21::-;;;;;;;;;;-1:-1:-1;5454:21:0;;;;-1:-1:-1;;;;;5454:21:0;;;14753:111;;;;;;;;;;-1:-1:-1;14753:111:0;;;;;:::i;:::-;;:::i;16240:358::-;;;;;;;;;;-1:-1:-1;16240:358:0;;;;;:::i;:::-;;:::i;8855:30::-;;;;;;;;;;;;;;;;17924:233;;;;;;;;;;-1:-1:-1;17924:233:0;;;;;:::i;:::-;;:::i;17518:171::-;;;;;;;;;;-1:-1:-1;17518:171:0;;;;;:::i;:::-;;:::i;8813:35::-;;;;;;;;;;;;;;;;17697:86;;;;;;;;;;-1:-1:-1;17697:86:0;;;;;:::i;:::-;;:::i;9763:26::-;;;;;;;;;;-1:-1:-1;9763:26:0;;;;-1:-1:-1;;;;;9763:26:0;;;8977:36;;;;;;;;;;;;;;;;8603:52;;;;;;;;;;-1:-1:-1;8603:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9020:31;;;;;;;;;;;;;;;;8244:45;;;;;;;;;;-1:-1:-1;8244:45:0;;;;;;;-1:-1:-1;;;;;8244:45:0;;;9873;;;;;;;;;;-1:-1:-1;9873:45:0;;;;-1:-1:-1;;;9873:45:0;;;;;;8771:35;;;;;;;;;;;;;;;;13041:143;;;;;;;;;;-1:-1:-1;13041:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13149:18:0;;;13122:7;13149:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13041:143;9583:27;;;;;;;;;;;;;;;;15706:157;;;;;;;;;;-1:-1:-1;15706:157:0;;;;;:::i;:::-;;:::i;16606:111::-;;;;;;;;;;-1:-1:-1;16606:111:0;;;;;:::i;:::-;;:::i;14610:135::-;;;;;;;;;;-1:-1:-1;14610:135:0;;;;;:::i;:::-;;:::i;9271:36::-;;;;;;;;;;;;;;;;16989:102;;;;;;;;;;-1:-1:-1;16989:102:0;;;;;:::i;:::-;;:::i;5945:244::-;;;;;;;;;;-1:-1:-1;5945:244:0;;;;;:::i;:::-;;:::i;15104:233::-;;;;;;;;;;-1:-1:-1;15104:233:0;;;;;:::i;:::-;;:::i;14475:127::-;;;;;;;;;;-1:-1:-1;14475:127:0;;;;;:::i;:::-;;:::i;9925:35::-;;;;;;;;;;-1:-1:-1;9925:35:0;;;;-1:-1:-1;;;9925:35:0;;;;;;9360:25;;;;;;;;;;;;;;;;12529:83;12566:13;12599:5;12592:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12529:83;:::o;13824:161::-;13899:4;13916:39;198:10;13939:7;13948:6;13916:8;:39::i;:::-;-1:-1:-1;13973:4:0;13824:161;;;;;:::o;15871:361::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;;;;;;;;;15994:17:::1;:35:::0;;;16040:17:::1;:35:::0;;;16086:12:::1;:25:::0;;;16208:15:::1;::::0;16145:79:::1;::::0;:58:::1;16101:10:::0;16145:58;16014:15;16060;16145:21:::1;:40::i;:::-;:44:::0;::::1;:58::i;:79::-;16124:18;:100:::0;-1:-1:-1;;;15871:361:0:o;15345:353::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;15468:16:::1;:34:::0;;;15513:16:::1;:34:::0;;;15558:11:::1;:24:::0;;;15675:14:::1;::::0;15615:75:::1;::::0;:55:::1;15572:10:::0;15615:55;15487:15;15532;15615:20:::1;:38::i;:75::-;15595:17;:95:::0;-1:-1:-1;;;15345:353:0:o;16846:135::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16937:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;16937:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16846:135::o;19520:313::-;19618:4;19635:36;19645:6;19653:9;19664:6;19635:9;:36::i;:::-;-1:-1:-1;19682:121:0;19691:6;198:10;19713:89;19751:6;19713:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19713:19:0;;;;;;:11;:19;;;;;;;;198:10;19713:33;;;;;;;;;;:37;:89::i;:::-;19682:8;:121::i;:::-;-1:-1:-1;19821:4:0;19520:313;;;;;;:::o;16725:113::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;16803:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;16803:27:0::1;-1:-1:-1::0;;;;16803:27:0;;::::1;::::0;;;::::1;::::0;;16725:113::o;18167:128::-;18274:11;;-1:-1:-1;;;;;18274:11:0;18220:7;13007:18;;;:9;:18;;;;;;18247:12;;:40;;:16;:40::i;:::-;18240:47;;18167:128;:::o;17381:129::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;17463:17:::1;:39:::0;;-1:-1:-1;;;;;;17463:39:0::1;-1:-1:-1::0;;;;;17463:39:0;;;::::1;::::0;;;::::1;::::0;;17381:129::o;13192:218::-;198:10;13280:4;13329:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13329:34:0;;;;;;;;;;13280:4;;13297:83;;13320:7;;13329:50;;13368:10;13329:38;:50::i;17099:125::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;17181:24:::1;:35:::0;17099:125::o;17234:139::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;17321:22:::1;:44:::0;;-1:-1:-1;;;;;17321:44:0;;::::1;;;-1:-1:-1::0;;;;;;17321:44:0;;::::1;::::0;;;::::1;::::0;;17234:139::o;18437:806::-;18517:22;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;18554:35:::1;18611:16;18554:74;;18676:16;-1:-1:-1::0;;;;;18676:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18658:53:0::1;;18720:4;18727:16;-1:-1:-1::0;;;;;18727:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18658:93;::::0;-1:-1:-1;;;;;;18658:93:0::1;::::0;;;;;;-1:-1:-1;;;;;5322:15:1;;;18658:93:0::1;::::0;::::1;5304:34:1::0;5374:15;;5354:18;;;5347:43;5239:18;;18658:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18641:110:::0;-1:-1:-1;;;;;;18767:28:0;::::1;18764:225;;18881:16;-1:-1:-1::0;;;;;18881:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18863:74:0::1;;18946:4;18953:16;-1:-1:-1::0;;;;;18953:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18863:114;::::0;-1:-1:-1;;;;;;18863:114:0::1;::::0;;;;;;-1:-1:-1;;;;;5322:15:1;;;18863:114:0::1;::::0;::::1;5304:34:1::0;5374:15;;5354:18;;;5347:43;5239:18;;18863:114:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18846:131;;18764:225;19001:11;:28:::0;;-1:-1:-1;;;;;;19001:28:0;;::::1;-1:-1:-1::0;;;;;19001:28:0;;::::1;::::0;;::::1;::::0;;19063:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;19135:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;19135:48:0;;::::1;-1:-1:-1::0;19135:48:0;;::::1;::::0;;;19215:11;;;;::::1;19194:34:::0;;:12:::1;:34:::0;;;;;:41;;;;::::1;::::0;;::::1;::::0;;19001:28;19015:14;-1:-1:-1;18437:806:0:o;14338:129::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14427:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;14427:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14338:129::o;14872:224::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;14949:14:::1;:33:::0;;;15056:11:::1;::::0;15034:16:::1;::::0;15013::::1;::::0;:75:::1;::::0;14966:16;;15013:55:::1;::::0;;;:20:::1;:38::i;:75::-;14993:17;:95:::0;-1:-1:-1;14872:224:0:o;5792:145::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;5896:1:::1;5880:6:::0;;5859:40:::1;::::0;-1:-1:-1;;;;;5880:6:0;;::::1;::::0;5859:40:::1;::::0;5896:1;;5859:40:::1;5927:1;5910:19:::0;;-1:-1:-1;;;;;;5910:19:0::1;::::0;;5792:145::o;12620:87::-;12659:13;12692:7;12685:14;;;;;:::i;13418:269::-;13511:4;13528:129;198:10;13551:7;13560:96;13599:15;13560:96;;;;;;;;;;;;;;;;;198:10;13560:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13560:34:0;;;;;;;;;;;;:38;:96::i;17791:125::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;17872:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;17872:36:0::1;-1:-1:-1::0;;;;17872:36:0;;::::1;::::0;;;::::1;::::0;;17791:125::o;19345:167::-;19423:4;19440:42;198:10;19464:9;19475:6;19440:9;:42::i;14753:111::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;14826:17:::1;:30:::0;14753:111::o;16240:358::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;16381:15:::1;:35:::0;;;16427:15:::1;:35:::0;;;16473:10:::1;:25:::0;;;16538:52:::1;16486:12:::0;16538:36:::1;16399:17:::0;16445;16538:19:::1;:36::i;:52::-;16511:24;:79:::0;-1:-1:-1;;;16240:358:0:o;17924:233::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;18041:9:::1;18037:113;18056:19:::0;;::::1;18037:113;;;18130:8;18097:17;:30;18115:8;;18124:1;18115:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18097:30:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18097:30:0;:41;;-1:-1:-1;;18097:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18077:3;::::1;::::0;::::1;:::i;:::-;;;;18037:113;;;;17924:233:::0;;;:::o;17518:171::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;17595:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;17595:32:0::1;-1:-1:-1::0;;;;17595:32:0;;::::1;;::::0;;17643:38:::1;::::0;::::1;::::0;::::1;::::0;17619:8;6178:14:1;6171:22;6153:41;;6141:2;6126:18;;6013:187;17643:38:0::1;;;;;;;;17518:171:::0;:::o;17697:86::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;17760:4:::1;:15:::0;17697:86::o;15706:157::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;15797:1:::1;15785:8;:13;;15777:44;;;::::0;-1:-1:-1;;;15777:44:0;;10991:2:1;15777:44:0::1;::::0;::::1;10973:21:1::0;11030:2;11010:18;;;11003:30;-1:-1:-1;;;11049:18:1;;;11042:48;11107:18;;15777:44:0::1;10789:342:1::0;15777:44:0::1;15832:12;:23:::0;15706:157::o;16606:111::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;16683:12:::1;:26:::0;16606:111::o;14610:135::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14700:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;14700:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14610:135::o;16989:102::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;17061:10:::1;:22:::0;16989:102::o;5945:244::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6034:22:0;::::1;6026:73;;;::::0;-1:-1:-1;;;6026:73:0;;7837:2:1;6026:73:0::1;::::0;::::1;7819:21:1::0;7876:2;7856:18;;;7849:30;7915:34;7895:18;;;7888:62;-1:-1:-1;;;7966:18:1;;;7959:36;8012:19;;6026:73:0::1;7635:402:1::0;6026:73:0::1;6136:6;::::0;;6115:38:::1;::::0;-1:-1:-1;;;;;6115:38:0;;::::1;::::0;6136:6;::::1;::::0;6115:38:::1;::::0;::::1;6164:6;:17:::0;;-1:-1:-1;;;;;;6164:17:0::1;-1:-1:-1::0;;;;;6164:17:0;;;::::1;::::0;;;::::1;::::0;;5945:244::o;15104:233::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;15183:15:::1;:35:::0;;;15295:12:::1;::::0;15272:17:::1;::::0;15250::::1;::::0;:79:::1;::::0;15201:17;;15250:58:::1;::::0;;;:21:::1;:40::i;:79::-;15229:18;:100:::0;-1:-1:-1;15104:233:0:o;14475:127::-;5705:6;;-1:-1:-1;;;;;5705:6:0;198:10;5705:22;5697:67;;;;-1:-1:-1;;;5697:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14562:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;14562:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14475:127::o;1191:181::-;1249:7;;1281:5;1285:1;1281;:5;:::i;:::-;1269:17;;1310:1;1305;:6;;1297:46;;;;-1:-1:-1;;;1297:46:0;;8647:2:1;1297:46:0;;;8629:21:1;8686:2;8666:18;;;8659:30;8725:29;8705:18;;;8698:57;8772:18;;1297:46:0;8445:351:1;13993:337:0;-1:-1:-1;;;;;14086:19:0;;14078:68;;;;-1:-1:-1;;;14078:68:0;;11338:2:1;14078:68:0;;;11320:21:1;11377:2;11357:18;;;11350:30;11416:34;11396:18;;;11389:62;-1:-1:-1;;;11467:18:1;;;11460:34;11511:19;;14078:68:0;11136:400:1;14078:68:0;-1:-1:-1;;;;;14165:21:0;;14157:68;;;;-1:-1:-1;;;14157:68:0;;8244:2:1;14157:68:0;;;8226:21:1;8283:2;8263:18;;;8256:30;8322:34;8302:18;;;8295:62;-1:-1:-1;;;8373:18:1;;;8366:32;8415:19;;14157:68:0;8042:398:1;14157:68:0;-1:-1:-1;;;;;14238:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14290:32;;6593:25:1;;;14290:32:0;;6566:18:1;14290:32:0;;;;;;;13993:337;;;:::o;19841:2023::-;19928:4;-1:-1:-1;;;;;19955:20:0;;19947:70;;;;-1:-1:-1;;;19947:70:0;;10585:2:1;19947:70:0;;;10567:21:1;10624:2;10604:18;;;10597:30;10663:34;10643:18;;;10636:62;-1:-1:-1;;;10714:18:1;;;10707:35;10759:19;;19947:70:0;10383:401:1;19947:70:0;-1:-1:-1;;;;;20036:23:0;;20028:71;;;;-1:-1:-1;;;20028:71:0;;7433:2:1;20028:71:0;;;7415:21:1;7472:2;7452:18;;;7445:30;7511:34;7491:18;;;7484:62;-1:-1:-1;;;7562:18:1;;;7555:33;7605:19;;20028:71:0;7231:399:1;20028:71:0;20127:1;20118:6;:10;20110:64;;;;-1:-1:-1;;;20110:64:0;;10175:2:1;20110:64:0;;;10157:21:1;10214:2;10194:18;;;10187:30;10253:34;10233:18;;;10226:62;-1:-1:-1;;;10304:18:1;;;10297:39;10353:19;;20110:64:0;9973:405:1;20110:64:0;20203:11;;-1:-1:-1;;;;;20190:24:0;;;20203:11;;20190:24;:64;;;;-1:-1:-1;20236:11:0;;-1:-1:-1;;;;;20236:11:0;12980:7;13007:18;;;:9;:18;;;;;;20218:36;20190:64;20187:115;;;20278:12;20270:5;:20;20187:115;20325:11;;-1:-1:-1;;;;;20315:21:0;;;20325:11;;20315:21;:52;;;;;20363:4;;20355:5;;:12;;;;:::i;:::-;20340;:27;20315:52;20312:136;;;20413:14;;20390:46;;20405:6;;-1:-1:-1;;;;;20413:14:0;20429:6;20390:14;:46::i;:::-;20383:53;;;;20312:136;20461:16;;-1:-1:-1;;;20461:16:0;;;;20458:1399;;;20510:41;20525:6;20533:9;20544:6;20510:14;:41::i;20458:1399::-;-1:-1:-1;;;;;20606:23:0;;;;;;:15;:23;;;;;;;;20605:24;:55;;;;-1:-1:-1;;;;;;20634:26:0;;;;;;:15;:26;;;;;;;;20633:27;20605:55;20602:170;;;20699:12;;20689:6;:22;;20681:75;;;;-1:-1:-1;;;20681:75:0;;9003:2:1;20681:75:0;;;8985:21:1;9042:2;9022:18;;;9015:30;9081:34;9061:18;;;9054:62;-1:-1:-1;;;9132:18:1;;;9125:38;9180:19;;20681:75:0;8801:404:1;20681:75:0;20837:4;20788:28;13007:18;;;:9;:18;;;;;;20913:24;;20889:48;;;;;;;20958:44;;-1:-1:-1;20986:16:0;;-1:-1:-1;;;20986:16:0;;;;20985:17;20958:44;:69;;;;-1:-1:-1;;;;;;21007:20:0;;;;;;:12;:20;;;;;;;;21006:21;20958:69;:94;;;;-1:-1:-1;21031:21:0;;-1:-1:-1;;;21031:21:0;;;;20958:94;20954:301;;;21089:25;;-1:-1:-1;;;21089:25:0;;;;21086:98;;;21160:24;;21137:47;;21086:98;21203:36;21218:20;21203:14;:36::i;:::-;21291:53;;;;;;;;;;;-1:-1:-1;;;21291:53:0;;;;;;;;-1:-1:-1;;;;;21291:17:0;;-1:-1:-1;21291:17:0;;;:9;:17;;;;;;;;:53;;21313:6;;21291:21;:53::i;:::-;-1:-1:-1;;;;;21271:17:0;;;;;;:9;:17;;;;;;;;:73;;;;21384:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;21413:28:0;;;;;;:17;:28;;;;;;;;21384:57;21383:147;;21496:34;21504:6;21512:9;21523:6;21496:7;:34::i;:::-;21383:147;;;21487:6;21383:147;21550:16;;21361:169;;-1:-1:-1;;;;21550:16:0;;;;:51;;;;-1:-1:-1;;;;;;21571:30:0;;;;;;:19;:30;;;;;;;;21570:31;21550:51;21547:133;;;21669:10;;21628:37;21653:11;21628:20;21638:9;-1:-1:-1;;;;;13007:18:0;12980:7;13007:18;;;:9;:18;;;;;;;12914:119;21628:37;:51;;21620:60;;;;;;-1:-1:-1;;;;;21720:20:0;;;;;;:9;:20;;;;;;:37;;21745:11;21720:24;:37::i;:::-;-1:-1:-1;;;;;21697:20:0;;;;;;;:9;:20;;;;;;;:60;;;;21779:40;;;;;;-1:-1:-1;;;;;;;;;;;21779:40:0;;;21807:11;6593:25:1;;6581:2;6566:18;;6439:185;21779:40:0;;;;;;;;21841:4;21834:11;;;;;;;1524:192;1610:7;1646:12;1638:6;;;;1630:29;;;;-1:-1:-1;;;1630:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1670:9:0;1682:5;1686:1;1682;:5;:::i;:::-;1670:17;1524:192;-1:-1:-1;;;;;1524:192:0:o;1380:136::-;1438:7;1465:43;1469:1;1472;1465:43;;;;;;;;;;;;;;;;;:3;:43::i;21872:330::-;22002:53;;;;;;;;;;;-1:-1:-1;;;22002:53:0;;;;;;;;-1:-1:-1;;;;;22002:17:0;;21965:4;22002:17;;;:9;:17;;;;;;;:53;;22024:6;;22002:21;:53::i;:::-;-1:-1:-1;;;;;21982:17:0;;;;;;;:9;:17;;;;;;:73;;;;22089:20;;;;;;;:32;;22114:6;22089:24;:32::i;:::-;-1:-1:-1;;;;;22066:20:0;;;;;;;:9;:20;;;;;;;:55;;;;22137:35;;;;;;-1:-1:-1;;;;;;;;;;;22137:35:0;;;22165:6;6593:25:1;;6581:2;6566:18;;6439:185;22137:35:0;;;;;;;;-1:-1:-1;22190:4:0;21872:330;;;;;:::o;22210:1032::-;10371:16;:23;;-1:-1:-1;;;;10371:23:0;-1:-1:-1;;;10371:23:0;;;22339:24:::1;::::0;10371:16;22318:15;10371:23;;22306:65:::1;::::0;22369:1:::1;::::0;22306:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;22284:87:::0;-1:-1:-1;22382:21:0::1;22406:24;:7:::0;22284:87;22406:11:::1;:24::i;:::-;22382:48;;22443:31;22460:13;22443:16;:31::i;:::-;22595:15;::::0;22510:21:::1;::::0;22485:22:::1;::::0;22566:52:::1;::::0;22595:22:::1;::::0;22615:1:::1;22595:19;:22::i;:::-;22566:24;::::0;;:28:::1;:52::i;:::-;22544:74;;22631:26;22660:59;22717:1;22660:52;22700:11;22660:35;22679:15;;22660:14;:18;;:35;;;;:::i;:59::-;22631:88;;22730:21;22754:47;22789:11;22754:30;22773:10;;22754:14;:18;;:30;;;;:::i;:47::-;22730:71:::0;-1:-1:-1;22812:26:0::1;22841:57;22730:71:::0;22841:38:::1;:14:::0;22860:18;22841::::1;:38::i;:::-;:42:::0;::::1;:57::i;:::-;22812:86:::0;-1:-1:-1;22914:22:0;;22911:104:::1;;22972:22;::::0;22951:64:::1;::::0;22972:22:::1;::::0;::::1;-1:-1:-1::0;;;;;22972:22:0::1;22996:18:::0;22951:20:::1;:64::i;:::-;23031:17:::0;;23028:89:::1;;23084:17;::::0;23063:54:::1;::::0;-1:-1:-1;;;;;23084:17:0::1;23103:13:::0;23063:20:::1;:54::i;:::-;23154:1;23133:18;:22;:41;;;;;23173:1;23159:11;:15;23133:41;23130:104;;;23189:45;23202:11;23215:18;23189:12;:45::i;:::-;-1:-1:-1::0;;10417:16:0;:24;;-1:-1:-1;;;;10417:24:0;;;-1:-1:-1;;;;;;22210:1032:0:o;24444:1654::-;-1:-1:-1;;;;;24656:20:0;;24530:7;24656:20;;;:12;:20;;;;;;24530:7;;;;;;24656:20;;24653:670;;;24705:58;24759:3;24705:49;24716:37;24738:14;;24716:17;;:21;;:37;;;;:::i;:::-;24705:6;;:10;:49::i;:58::-;24693:70;;24798:1;24781:14;;:18;:52;;;;;24816:17;;24803:10;;:30;24781:52;24778:188;;;24867:35;24898:3;24867:26;24878:14;;24867:6;:10;;:26;;;;:::i;:35::-;24854:48;;24921:29;24932:6;24939:10;24921;:29::i;:::-;24653:670;;;-1:-1:-1;;;;;24995:23:0;;;;;;:12;:23;;;;;;;;24992:331;;;25047:60;25103:3;25047:51;25058:39;25081:15;;25058:18;;:22;;:39;;;;:::i;25047:60::-;25035:72;;25143:1;25125:15;;:19;:53;;;;;25161:17;;25148:10;;:30;25125:53;25122:190;;;25212:36;25244:3;25212:27;25223:15;;25212:6;:10;;:27;;;;:::i;:36::-;25199:49;;25267:29;25278:6;25285:10;25267;:29::i;:::-;-1:-1:-1;;;;;25338:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;25362:23:0;;;;;;:12;:23;;;;;;;;25338:47;25335:495;;;25405:12;;:16;25401:418;;25441:10;;25470:283;25494:12;;25490:1;:16;25470:283;;;25575:44;;;;;;4528:19:1;;;4563:12;;;4556:28;;;25603:15:0;4600:12:1;;;4593:28;4637:12;;25575:44:0;;;-1:-1:-1;;25575:44:0;;;;;;;;;25565:55;;25575:44;25565:55;;;;-1:-1:-1;;;;;25662:13:0;;25557:64;25662:13;;;:9;:13;;;;;;25565:55;;-1:-1:-1;25662:20:0;;25680:1;25662:17;:20::i;:::-;-1:-1:-1;;;;;25646:13:0;;;;;;;:9;:13;;;;;;;:36;;;;25710:23;;;;;;-1:-1:-1;;;;;;;;;;;25710:23:0;;;25731:1;6593:25:1;;6581:2;6566:18;;6439:185;25710:23:0;;;;;;;;25508:3;;;;:::i;:::-;;;;25470:283;;;-1:-1:-1;25787:12:0;;:16;;25802:1;25787:16;:::i;:::-;25771:32;;25422:397;25401:418;25845:13;;25842:173;;25920:4;25902:24;;;;:9;:24;;;;;;:39;;25931:9;25902:28;:39::i;:::-;25893:4;25875:24;;;;:9;:24;;;;;;;:66;;;;25961:42;;-1:-1:-1;;;;;25961:42:0;;;-1:-1:-1;;;;;;;;;;;25961:42:0;;;25993:9;6593:25:1;;6581:2;6566:18;;6439:185;25961:42:0;;;;;;;;25842:173;26034:56;26045:44;26075:13;26045:25;:9;26059:10;26045:13;:25::i;:44::-;26034:6;;:10;:56::i;:::-;26027:63;24444:1654;-1:-1:-1;;;;;;;24444:1654:0:o;1724:250::-;1782:7;1806:6;1802:47;;-1:-1:-1;1836:1:0;1829:8;;1802:47;1861:9;1873:5;1877:1;1873;:5;:::i;:::-;1861:17;-1:-1:-1;1906:1:0;1897:5;1901:1;1861:17;1897:5;:::i;:::-;:10;1889:56;;;;-1:-1:-1;;;1889:56:0;;9412:2:1;1889:56:0;;;9394:21:1;9451:2;9431:18;;;9424:30;9490:34;9470:18;;;9463:62;-1:-1:-1;;;9541:18:1;;;9534:31;9582:19;;1889:56:0;9210:397:1;1982:132:0;2040:7;2067:39;2071:1;2074;2067:39;;;;;;;;;;;;;;;;;:3;:39::i;23250:658::-;23400:16;;;23414:1;23400:16;;;;;;;;23376:21;;23400:16;;;;;;;;;;-1:-1:-1;23400:16:0;23376:40;;23445:4;23427;23432:1;23427:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23427:23:0;;;:7;;;;;;;;;;:23;;;;23471:15;;:22;;;-1:-1:-1;;;23471:22:0;;;;:15;;;;;:20;;:22;;;;;23427:7;;23471:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23461:4;23466:1;23461:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23461:32:0;;;:7;;;;;;;;;:32;23538:15;;23506:62;;23523:4;;23538:15;23556:11;23506:8;:62::i;:::-;23607:15;;:240;;-1:-1:-1;;;23607:240:0;;-1:-1:-1;;;;;23607:15:0;;;;:66;;:240;;23688:11;;23607:15;;23758:4;;23785;;23821:15;;23607:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23865:35;23882:11;23895:4;23865:35;;;;;;;:::i;:::-;;;;;;;;23305:603;23250:658;:::o;18303:126::-;18395:26;;-1:-1:-1;;;;;18395:18:0;;;:26;;;;;18414:6;;18395:26;;;;18414:6;18395:18;:26;;;;;;;;;;;;;;;;;;;;;18303:126;;:::o;23916:520::-;24096:15;;24064:62;;24081:4;;-1:-1:-1;;;;;24096:15:0;24114:11;24064:8;:62::i;:::-;24169:15;;;24373:14;;24169:259;;-1:-1:-1;;;24169:259:0;;24241:4;24169:259;;;5742:34:1;5792:18;;;5785:34;;;24169:15:0;5835:18:1;;;5828:34;;;5878:18;;;5871:34;-1:-1:-1;;;;;24373:14:0;;;5921:19:1;;;5914:44;24402:15:0;5974:19:1;;;5967:35;24169:15:0;;:31;;24208:9;;5676:19:1;;24169:259:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23916:520;;:::o;26106:321::-;26220:17;;26206:10;;:31;26203:43;;26106:321;;:::o;26203:43::-;26293:11;;-1:-1:-1;;;;;26293:11:0;26283:22;;;;:9;:22;;;;;;:35;;26310:7;26283:26;:35::i;:::-;26268:11;;-1:-1:-1;;;;;26268:11:0;26258:22;;;;:9;:22;;;;;:60;26342:10;;:23;;26357:7;26342:14;:23::i;:::-;26329:10;:36;26398:11;;26381:38;;6593:25:1;;;-1:-1:-1;;;;;26398:11:0;;;;26381:38;;;-1:-1:-1;;;;;;;;;;;26381:38:0;6581:2:1;6566:18;26381:38:0;;;;;;;26106:321;;:::o;2122:278::-;2208:7;2243:12;2236:5;2228:28;;;;-1:-1:-1;;;2228:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2267:9:0;2279:5;2283:1;2279;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:388::-;755:6;763;816:2;804:9;795:7;791:23;787:32;784:52;;;832:1;829;822:12;784:52;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:1;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;1052:17;;;687:388;;;;;:::o;1080:456::-;1157:6;1165;1173;1226:2;1214:9;1205:7;1201:23;1197:32;1194:52;;;1242:1;1239;1232:12;1194:52;1281:9;1268:23;1300:31;1325:5;1300:31;:::i;:::-;1350:5;-1:-1:-1;1407:2:1;1392:18;;1379:32;1420:33;1379:32;1420:33;:::i;:::-;1080:456;;1472:7;;-1:-1:-1;;;1526:2:1;1511:18;;;;1498:32;;1080:456::o;1541:315::-;1606:6;1614;1667:2;1655:9;1646:7;1642:23;1638:32;1635:52;;;1683:1;1680;1673:12;1635:52;1722:9;1709:23;1741:31;1766:5;1741:31;:::i;:::-;1791:5;-1:-1:-1;1815:35:1;1846:2;1831:18;;1815:35;:::i;:::-;1805:45;;1541:315;;;;;:::o;1861:::-;1929:6;1937;1990:2;1978:9;1969:7;1965:23;1961:32;1958:52;;;2006:1;2003;1996:12;1958:52;2045:9;2032:23;2064:31;2089:5;2064:31;:::i;:::-;2114:5;2166:2;2151:18;;;;2138:32;;-1:-1:-1;;;1861:315:1:o;2181:689::-;2273:6;2281;2289;2342:2;2330:9;2321:7;2317:23;2313:32;2310:52;;;2358:1;2355;2348:12;2310:52;2398:9;2385:23;2427:18;2468:2;2460:6;2457:14;2454:34;;;2484:1;2481;2474:12;2454:34;2522:6;2511:9;2507:22;2497:32;;2567:7;2560:4;2556:2;2552:13;2548:27;2538:55;;2589:1;2586;2579:12;2538:55;2629:2;2616:16;2655:2;2647:6;2644:14;2641:34;;;2671:1;2668;2661:12;2641:34;2726:7;2719:4;2709:6;2706:1;2702:14;2698:2;2694:23;2690:34;2687:47;2684:67;;;2747:1;2744;2737:12;2684:67;2778:4;2770:13;;;;-1:-1:-1;2802:6:1;-1:-1:-1;2827:37:1;;2843:20;;;-1:-1:-1;2827:37:1;:::i;:::-;2817:47;;2181:689;;;;;:::o;2875:180::-;2931:6;2984:2;2972:9;2963:7;2959:23;2955:32;2952:52;;;3000:1;2997;2990:12;2952:52;3023:26;3039:9;3023:26;:::i;3060:180::-;3119:6;3172:2;3160:9;3151:7;3147:23;3143:32;3140:52;;;3188:1;3185;3178:12;3140:52;-1:-1:-1;3211:23:1;;3060:180;-1:-1:-1;3060:180:1:o;3245:316::-;3322:6;3330;3338;3391:2;3379:9;3370:7;3366:23;3362:32;3359:52;;;3407:1;3404;3397:12;3359:52;-1:-1:-1;;3430:23:1;;;3500:2;3485:18;;3472:32;;-1:-1:-1;3551:2:1;3536:18;;;3523:32;;3245:316;-1:-1:-1;3245:316:1:o;3566:306::-;3654:6;3662;3670;3723:2;3711:9;3702:7;3698:23;3694:32;3691:52;;;3739:1;3736;3729:12;3691:52;3768:9;3762:16;3752:26;;3818:2;3807:9;3803:18;3797:25;3787:35;;3862:2;3851:9;3847:18;3841:25;3831:35;;3566:306;;;;;:::o;3877:461::-;3930:3;3968:5;3962:12;3995:6;3990:3;3983:19;4021:4;4050:2;4045:3;4041:12;4034:19;;4087:2;4080:5;4076:14;4108:1;4118:195;4132:6;4129:1;4126:13;4118:195;;;4197:13;;-1:-1:-1;;;;;4193:39:1;4181:52;;4253:12;;;;4288:15;;;;4229:1;4147:9;4118:195;;;-1:-1:-1;4329:3:1;;3877:461;-1:-1:-1;;;;;3877:461:1:o;6629:597::-;6741:4;6770:2;6799;6788:9;6781:21;6831:6;6825:13;6874:6;6869:2;6858:9;6854:18;6847:34;6899:1;6909:140;6923:6;6920:1;6917:13;6909:140;;;7018:14;;;7014:23;;7008:30;6984:17;;;7003:2;6980:26;6973:66;6938:10;;6909:140;;;7067:6;7064:1;7061:13;7058:91;;;7137:1;7132:2;7123:6;7112:9;7108:22;7104:31;7097:42;7058:91;-1:-1:-1;7210:2:1;7189:15;-1:-1:-1;;7185:29:1;7170:45;;;;7217:2;7166:54;;6629:597;-1:-1:-1;;;6629:597:1:o;9612:356::-;9814:2;9796:21;;;9833:18;;;9826:30;9892:34;9887:2;9872:18;;9865:62;9959:2;9944:18;;9612:356::o;11723:332::-;11930:6;11919:9;11912:25;11973:2;11968;11957:9;11953:18;11946:30;11893:4;11993:56;12045:2;12034:9;12030:18;12022:6;11993:56;:::i;:::-;11985:64;11723:332;-1:-1:-1;;;;11723:332:1:o;12060:582::-;12359:6;12348:9;12341:25;12402:6;12397:2;12386:9;12382:18;12375:34;12445:3;12440:2;12429:9;12425:18;12418:31;12322:4;12466:57;12518:3;12507:9;12503:19;12495:6;12466:57;:::i;:::-;-1:-1:-1;;;;;12559:32:1;;;;12554:2;12539:18;;12532:60;-1:-1:-1;12623:3:1;12608:19;12601:35;12458:65;12060:582;-1:-1:-1;;;12060:582:1:o;12836:128::-;12876:3;12907:1;12903:6;12900:1;12897:13;12894:39;;;12913:18;;:::i;:::-;-1:-1:-1;12949:9:1;;12836:128::o;12969:217::-;13009:1;13035;13025:132;;13079:10;13074:3;13070:20;13067:1;13060:31;13114:4;13111:1;13104:15;13142:4;13139:1;13132:15;13025:132;-1:-1:-1;13171:9:1;;12969:217::o;13191:168::-;13231:7;13297:1;13293;13289:6;13285:14;13282:1;13279:21;13274:1;13267:9;13260:17;13256:45;13253:71;;;13304:18;;:::i;:::-;-1:-1:-1;13344:9:1;;13191:168::o;13364:125::-;13404:4;13432:1;13429;13426:8;13423:34;;;13437:18;;:::i;:::-;-1:-1:-1;13474:9:1;;13364:125::o;13494:380::-;13573:1;13569:12;;;;13616;;;13637:61;;13691:4;13683:6;13679:17;13669:27;;13637:61;13744:2;13736:6;13733:14;13713:18;13710:38;13707:161;;;13790:10;13785:3;13781:20;13778:1;13771:31;13825:4;13822:1;13815:15;13853:4;13850:1;13843:15;13707:161;;13494:380;;;:::o;13879:135::-;13918:3;-1:-1:-1;;13939:17:1;;13936:43;;;13959:18;;:::i;:::-;-1:-1:-1;14006:1:1;13995:13;;13879:135::o;14019:127::-;14080:10;14075:3;14071:20;14068:1;14061:31;14111:4;14108:1;14101:15;14135:4;14132:1;14125:15;14151:127;14212:10;14207:3;14203:20;14200:1;14193:31;14243:4;14240:1;14233:15;14267:4;14264:1;14257:15;14415:131;-1:-1:-1;;;;;14490:31:1;;14480:42;;14470:70;;14536:1;14533;14526:12;14470:70;14415:131;:::o

Swarm Source

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