ETH Price: $3,673.18 (+1.05%)
 

Overview

Max Total Supply

1,000,000,000 SAFEINU

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.750194746291306387 SAFEINU

Value
$0.00
0x3e7bc634b6370cf1fea213bd55a1cf4b656f9f00
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SAFEINU

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 2023 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

Telegram :  https://t.me/safereuminu
Website  :  https://safereuminu.vip

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        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
    );
}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // 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;
    }
}

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

}

contract SAFEINU is Context, IERC20, Ownable {

    using SafeMath for uint256;

    address public developmentWallet;
    
    string private _name = "Safereum Inu";
    string private _symbol = "SAFEINU";
    uint8 private _decimals = 18; 

    uint256 private _totalSupply = 1_000_000_000 * 10**_decimals;
    
    uint256 public _maxTxAmount =  _totalSupply.mul(2).div(100);     // 2%
    uint256 public _walletMax = _totalSupply.mul(2).div(100);        // 2%

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

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

    uint256 public swapThreshold = _totalSupply.mul(1).div(100);

    bool public swapEnabled = true;
    bool public swapbylimit = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    uint public buyTax = 25;
    uint public sellTax = 35;
    uint256 feedenominator = 100;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool public tradingEnable; 
    uint256 public launchedAt;

    bool inSwap;

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    modifier onlyGuard() {
        require(msg.sender == developmentWallet,"Invalid Caller");
        _;
    }

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        developmentWallet = msg.sender;

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory())
            .createPair(address(this), _dexRouter.WETH());

        dexRouter = _dexRouter;
        
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexPair)] = ~uint256(0);
        _allowances[address(this)][address(dexRouter)] = ~uint256(0);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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 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);
    }

     //to recieve ETH from Router 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: Exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if(!tradingEnable) {
                require(isExcludedFromFee[sender] || isExcludedFromFee[recipient], "Trading Paused"); 
            }

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

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
            }

            _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 shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

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

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(buyTax).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(sellTax).div(feedenominator);
            }

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

            return amount.sub(feeAmount);
        }
        
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0)
            payable(developmentWallet).transfer(amountReceived);

    }


    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] = dexRouter.WETH();

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

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

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setBuyFee(uint _buySide, uint _sellSide) external onlyOwner {    
        buyTax = _buySide;
        sellTax = _sellSide;
    }

    function removeLimits() external onlyGuard {
        EnableTxLimit = false;
        checkWalletLimit =  false;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

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

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setDevelopmentWallet(address _newWallet) external onlyOwner {
        developmentWallet = _newWallet;
    }

    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnable, "Trade Enabled!");

        tradingEnable = true;
        launchedAt = block.timestamp;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","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":"launchedAt","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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buySide","type":"uint256"},{"internalType":"uint256","name":"_sellSide","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600c60c09081526b536166657265756d20496e7560a01b60e0526002906200002e908262000645565b5060408051808201909152600781526653414645494e5560c81b60208201526003906200005c908262000645565b506004805460ff191660129081179091556200007a90600a6200081a565b6200008a90633b9aca006200082a565b6005819055620000ab90606490620000a490600262000440565b90620004d3565b600655600554620000c690606490620000a490600262000440565b600755600554620000e190606490620000a490600162000440565b600e55600f805463ffffffff1916630101010117905560196010556023601155606460125561dead6080525f60a0523480156200011c575f80fd5b5062000128336200051c565b600180546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa1580156200018c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b2919062000844565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fe573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000224919062000844565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200026f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000295919062000844565b601480546001600160a01b03199081166001600160a01b0393841617825560138054909116848416178155305f818152600a60209081526040808320805460ff19908116600190811790925533808652838620805483168417905587548a1686528386208054831684179055808652600c8552838620805483168417905587548a168652838620805483168417905586865283862080548316841790556080518a16808752848720805484168517905560a0518b1680885285882080548516861790558a548c1688528588208054851686179055908752600d86528487208054841685179055865283862080548316841790558086528386208054831684179055868652838620805483168417905587548a168652838620805483168417905588548a168652600b855283862080549092169092179055938352600982528083209554871683529481528482205f199081905593549095168152838120929092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620008d9565b5f825f036200045157505f620004cd565b5f6200045e83856200082a565b9050826200046d85836200086c565b14620004ca5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620004ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056b60201b60201c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f81836200058e5760405162461bcd60e51b8152600401620004c191906200088c565b505f6200059c84866200086c565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005ce57607f821691505b602082108103620005ed57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000640575f81815260208120601f850160051c810160208610156200061b5750805b601f850160051c820191505b818110156200063c5782815560010162000627565b5050505b505050565b81516001600160401b03811115620006615762000661620005a5565b6200067981620006728454620005b9565b84620005f3565b602080601f831160018114620006af575f8415620006975750858301515b5f19600386901b1c1916600185901b1785556200063c565b5f85815260208120601f198616915b82811015620006df57888601518255948401946001909101908401620006be565b5085821015620006fd57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200076157815f19048211156200074557620007456200070d565b808516156200075357918102915b93841c939080029062000726565b509250929050565b5f826200077957506001620004cd565b816200078757505f620004cd565b8160018114620007a05760028114620007ab57620007cb565b6001915050620004cd565b60ff841115620007bf57620007bf6200070d565b50506001821b620004cd565b5060208310610133831016604e8410600b8410161715620007f0575081810a620004cd565b620007fc838362000721565b805f19048211156200081257620008126200070d565b029392505050565b5f620004ca60ff84168362000769565b8082028115828204841417620004cd57620004cd6200070d565b5f6020828403121562000855575f80fd5b81516001600160a01b0381168114620004ca575f80fd5b5f826200088757634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020808352835180828501525f5b81811015620008b9578581018301518582016040015282016200089b565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a051612683620008fb5f395f6103ad01525f61046201526126835ff3fe608060405260043610610311575f3560e01c80637d1db4a51161019c578063c16dd4a4116100e7578063e6b2603b11610092578063f242ab411161006d578063f242ab41146108e7578063f2fde38b14610906578063f872858a14610925578063fb0ecfa414610945575f80fd5b8063e6b2603b14610896578063e9fd3394146108aa578063ee828db3146108c8575f80fd5b8063cea9d26f116100c2578063cea9d26f14610814578063dd62ed3e14610833578063df8408fe14610877575f80fd5b8063c16dd4a4146107b2578063c867d60b146107d1578063cc1776d3146107ff575f80fd5b8063a457c2d711610147578063b94b0aef11610122578063b94b0aef1461075f578063bf56b3711461077e578063c04a541414610793575f80fd5b8063a457c2d714610702578063a9059cbb14610721578063ae85ade614610740575f80fd5b80638b42507f116101775780638b42507f146106a45780638da5cb5b146106d257806395d89b41146106ee575f80fd5b80637d1db4a514610666578063807c2d9c1461067b5780638a8c523c14610690575f80fd5b80634974d88f1161025c5780636ddd171311610207578063728d41c9116101e2578063728d41c91461061457806372ac248614610633578063751039fc14610652575f80fd5b80636ddd1713146105b357806370a08231146105cc578063715018a614610600575f80fd5b80635c85974f116102375780635c85974f146105565780635e42358c14610575578063651a898714610594575f80fd5b80634974d88f146104f25780634f7041a5146105135780635342acb414610528575f80fd5b806318160ddd116102bc578063313ce56711610297578063313ce5671461048457806339509351146104a55780633ecad271146104c4575f80fd5b806318160ddd1461041e57806323b872dd1461043257806327c8f83514610451575f80fd5b80630930907b116102ec5780630930907b1461039c578063095ea7b3146103cf5780631693e8d4146103fe575f80fd5b80630445b6671461031c57806306fdde03146103445780630758d92414610365575f80fd5b3661031857005b5f80fd5b348015610327575f80fd5b50610331600e5481565b6040519081526020015b60405180910390f35b34801561034f575f80fd5b50610358610964565b60405161033b91906122c9565b348015610370575f80fd5b50601354610384906001600160a01b031681565b6040516001600160a01b03909116815260200161033b565b3480156103a7575f80fd5b506103847f000000000000000000000000000000000000000000000000000000000000000081565b3480156103da575f80fd5b506103ee6103e936600461230f565b6109f4565b604051901515815260200161033b565b348015610409575f80fd5b506014546103ee90600160a01b900460ff1681565b348015610429575f80fd5b50600554610331565b34801561043d575f80fd5b506103ee61044c366004612339565b610a0a565b34801561045c575f80fd5b506103847f000000000000000000000000000000000000000000000000000000000000000081565b34801561048f575f80fd5b5060045460405160ff909116815260200161033b565b3480156104b0575f80fd5b506103ee6104bf36600461230f565b610ab1565b3480156104cf575f80fd5b506103ee6104de366004612377565b600b6020525f908152604090205460ff1681565b3480156104fd575f80fd5b5061051161050c3660046123a6565b610ae6565b005b34801561051e575f80fd5b5061033160105481565b348015610533575f80fd5b506103ee610542366004612377565b600a6020525f908152604090205460ff1681565b348015610561575f80fd5b506105116105703660046123bf565b610b7d565b348015610580575f80fd5b50600f546103ee9062010000900460ff1681565b34801561059f575f80fd5b506105116105ae3660046123d6565b610bdb565b3480156105be575f80fd5b50600f546103ee9060ff1681565b3480156105d7575f80fd5b506103316105e6366004612377565b6001600160a01b03165f9081526008602052604090205490565b34801561060b575f80fd5b50610511610c5e565b34801561061f575f80fd5b5061051161062e3660046123bf565b610cc2565b34801561063e575f80fd5b5061051161064d366004612377565b610d20565b34801561065d575f80fd5b50610511610db3565b348015610671575f80fd5b5061033160065481565b348015610686575f80fd5b5061033160075481565b34801561069b575f80fd5b50610511610e37565b3480156106af575f80fd5b506103ee6106be366004612377565b600d6020525f908152604090205460ff1681565b3480156106dd575f80fd5b505f546001600160a01b0316610384565b3480156106f9575f80fd5b50610358610f1e565b34801561070d575f80fd5b506103ee61071c36600461230f565b610f2d565b34801561072c575f80fd5b506103ee61073b36600461230f565b610f7a565b34801561074b575f80fd5b5061051161075a3660046123d6565b610f86565b34801561076a575f80fd5b50610511610779366004612409565b611009565b348015610789575f80fd5b5061033160155481565b34801561079e575f80fd5b50600154610384906001600160a01b031681565b3480156107bd575f80fd5b506105116107cc3660046123d6565b6110c4565b3480156107dc575f80fd5b506103ee6107eb366004612377565b600c6020525f908152604090205460ff1681565b34801561080a575f80fd5b5061033160115481565b34801561081f575f80fd5b5061051161082e366004612339565b611171565b34801561083e575f80fd5b5061033161084d366004612442565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610882575f80fd5b506105116108913660046123d6565b6112e6565b3480156108a1575f80fd5b50610511611369565b3480156108b5575f80fd5b50600f546103ee90610100900460ff1681565b3480156108d3575f80fd5b506105116108e23660046123a6565b61145b565b3480156108f2575f80fd5b50601454610384906001600160a01b031681565b348015610911575f80fd5b50610511610920366004612377565b6114ec565b348015610930575f80fd5b50600f546103ee906301000000900460ff1681565b348015610950575f80fd5b5061051161095f366004612479565b6115ca565b60606002805461097390612499565b80601f016020809104026020016040519081016040528092919081815260200182805461099f90612499565b80156109ea5780601f106109c1576101008083540402835291602001916109ea565b820191905f5260205f20905b8154815290600101906020018083116109cd57829003601f168201915b5050505050905090565b5f610a0033848461162e565b5060015b92915050565b5f610a16848484611785565b50610aa68433610aa1856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060095f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f610a813390565b6001600160a01b0316815260208101919091526040015f20549190611b95565b61162e565b5060015b9392505050565b335f8181526009602090815260408083206001600160a01b03871684529091528120549091610a00918590610aa19086611bcd565b5f546001600160a01b03163314610b445760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600f80549115156301000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff909216919091179055565b5f546001600160a01b03163314610bd65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b600655565b5f546001600160a01b03163314610c345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610cb75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b610cc05f611c2b565b565b5f546001600160a01b03163314610d1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b600755565b5f546001600160a01b03163314610d795760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610e0d5760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642043616c6c65720000000000000000000000000000000000006044820152606401610b3b565b600f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff169055565b5f546001600160a01b03163314610e905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b601454600160a01b900460ff1615610eea5760405162461bcd60e51b815260206004820152600e60248201527f547261646520456e61626c6564210000000000000000000000000000000000006044820152606401610b3b565b601480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b17905542601555565b60606003805461097390612499565b5f610a003384610aa18560405180606001604052806025815260200161262960259139335f9081526009602090815260408083206001600160a01b038d1684529091529020549190611b95565b5f610aa6338484611785565b5f546001600160a01b03163314610fdf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b03919091165f908152600d60205260409020805460ff1916911515919091179055565b6001546001600160a01b031633146110635760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642043616c6c65720000000000000000000000000000000000006044820152606401610b3b565b600f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169290921761010091151591909102179055600e55565b5f546001600160a01b0316331461111d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b0382165f908152600b60205260409020805460ff1916821580159190911790915561116d576001600160a01b0382165f908152600c60205260409020805460ff19168215151790555b5050565b6001546001600160a01b031633146111cb5760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642043616c6c65720000000000000000000000000000000000006044820152606401610b3b565b6040516001600160a01b038381166024830152604482018390525f919085169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790525161125191906124d1565b5f604051808303815f865af19150503d805f811461128a576040519150601f19603f3d011682016040523d82523d5f602084013e61128f565b606091505b50509050806112e05760405162461bcd60e51b815260206004820152601460248201527f546f6b656e207061796d656e74206661696c65640000000000000000000000006044820152606401610b3b565b50505050565b5f546001600160a01b0316331461133f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001546001600160a01b031633146113c35760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642043616c6c65720000000000000000000000000000000000006044820152606401610b3b565b6040515f90339047908381818185875af1925050503d805f8114611402576040519150601f19603f3d011682016040523d82523d5f602084013e611407565b606091505b50509050806114585760405162461bcd60e51b815260206004820152601460248201527f5472616e73616374696f6e204661696c656421210000000000000000000000006044820152606401610b3b565b50565b5f546001600160a01b031633146114b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b600f805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055565b5f546001600160a01b031633146115455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b0381166115c15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b3b565b61145881611c2b565b5f546001600160a01b031633146116235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b601091909155601155565b6001600160a01b0383166116a95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610b3b565b6001600160a01b0382166117255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610b3b565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416611798575f80fd5b6001600160a01b0383166117aa575f80fd5b5f82116117b5575f80fd5b60165460ff16156117d2576117cb848484611c92565b9050610aaa565b601454600160a01b900460ff1661186c576001600160a01b0384165f908152600a602052604090205460ff168061182057506001600160a01b0383165f908152600a602052604090205460ff165b61186c5760405162461bcd60e51b815260206004820152600e60248201527f54726164696e67205061757365640000000000000000000000000000000000006044820152606401610b3b565b305f90815260086020526040902054600e5481108015908190611892575060165460ff16155b80156118b657506001600160a01b0386165f908152600b602052604090205460ff16155b80156118c45750600f5460ff165b80156118e857506001600160a01b0386165f908152600a602052604090205460ff16155b801561190c57506001600160a01b0385165f908152600a602052604090205460ff16155b1561191a5761191a82611d7e565b6001600160a01b0386165f908152600d602052604090205460ff1615801561195a57506001600160a01b0385165f908152600d602052604090205460ff16155b801561196e5750600f5462010000900460ff165b156119c5576006548411156119c55760405162461bcd60e51b815260206004820152601360248201527f45786365656473206d61785478416d6f756e74000000000000000000000000006044820152606401610b3b565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0389165f90815260089091529190912054611a1f918690611b95565b6001600160a01b0387165f90815260086020526040812091909155611a448787611e05565b611a5857611a53878787611e9f565b611a5a565b845b600f549091506301000000900460ff168015611a8e57506001600160a01b0386165f908152600c602052604090205460ff16155b15611b0c57600754611abe82611ab8896001600160a01b03165f9081526008602052604090205490565b90611bcd565b1115611b0c5760405162461bcd60e51b815260206004820152600e60248201527f457863656564732057616c6c65740000000000000000000000000000000000006044820152606401610b3b565b6001600160a01b0386165f90815260086020526040902054611b2e9082611bcd565b6001600160a01b038088165f8181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b819085815260200190565b60405180910390a360019350505050610aaa565b5f8184841115611bb85760405162461bcd60e51b8152600401610b3b91906122c9565b505f611bc48486612500565b95945050505050565b5f80611bd98385612513565b905083811015610aaa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b3b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0386165f908152600890915291822054611ceb918490611b95565b6001600160a01b038086165f908152600860205260408082209390935590851681522054611d199083611bcd565b6001600160a01b038085165f8181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d6c9086815260200190565b60405180910390a35060019392505050565b6016805460ff19166001179055600f54610100900460ff1615611da05750600e545b47611daa82611fa9565b5f611db54783612164565b90508015611df6576001546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611df4573d5f803e3d5ffd5b505b50506016805460ff1916905550565b6001600160a01b0382165f908152600a602052604081205460ff1680611e4257506001600160a01b0382165f908152600a602052604090205460ff165b15611e4f57506001610a04565b6001600160a01b0383165f908152600b602052604090205460ff1680611e8c57506001600160a01b0382165f908152600b602052604090205460ff165b15611e9857505f610a04565b505f610a04565b6001600160a01b0383165f908152600b6020526040812054819060ff1615611ee957611ee2601254611edc601054866121a590919063ffffffff16565b9061223f565b9050611f27565b6001600160a01b0384165f908152600b602052604090205460ff1615611f2757611f24601254611edc601154866121a590919063ffffffff16565b90505b8015611f9f57305f90815260086020526040902054611f469082611bcd565b305f81815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f969085815260200190565b60405180910390a35b611bc48382612164565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611fdc57611fdc612526565b6001600160a01b03928316602091820292909201810191909152601354604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561204c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612070919061253a565b8160018151811061208357612083612526565b6001600160a01b0392831660209182029290920101526013546120a9913091168461162e565b6013546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906120fa9085905f90869030904290600401612597565b5f604051808303815f87803b158015612111575f80fd5b505af1158015612123573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516121589291906125d2565b60405180910390a15050565b5f610aaa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b95565b5f825f036121b457505f610a04565b5f6121bf83856125f2565b9050826121cc8583612609565b14610aaa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610b3b565b5f610aaa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f818361229b5760405162461bcd60e51b8152600401610b3b91906122c9565b505f611bc48486612609565b5f5b838110156122c15781810151838201526020016122a9565b50505f910152565b602081525f82518060208401526122e78160408501602087016122a7565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611458575f80fd5b5f8060408385031215612320575f80fd5b823561232b816122fb565b946020939093013593505050565b5f805f6060848603121561234b575f80fd5b8335612356816122fb565b92506020840135612366816122fb565b929592945050506040919091013590565b5f60208284031215612387575f80fd5b8135610aaa816122fb565b803580151581146123a1575f80fd5b919050565b5f602082840312156123b6575f80fd5b610aaa82612392565b5f602082840312156123cf575f80fd5b5035919050565b5f80604083850312156123e7575f80fd5b82356123f2816122fb565b915061240060208401612392565b90509250929050565b5f805f6060848603121561241b575f80fd5b8335925061242b60208501612392565b915061243960408501612392565b90509250925092565b5f8060408385031215612453575f80fd5b823561245e816122fb565b9150602083013561246e816122fb565b809150509250929050565b5f806040838503121561248a575f80fd5b50508035926020909101359150565b600181811c908216806124ad57607f821691505b6020821081036124cb57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82516124e28184602087016122a7565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a0457610a046124ec565b80820180821115610a0457610a046124ec565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561254a575f80fd5b8151610aaa816122fb565b5f8151808452602080850194508084015f5b8381101561258c5781516001600160a01b031687529582019590820190600101612567565b509495945050505050565b85815284602082015260a060408201525f6125b560a0830186612555565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6125ea6040830184612555565b949350505050565b8082028115828204841417610a0457610a046124ec565b5f8261262357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209b5d27f9139bef6d04b13b70e3d5a5607920677800958a4faf3a94f55f3f192364736f6c63430008150033

Deployed Bytecode

0x608060405260043610610311575f3560e01c80637d1db4a51161019c578063c16dd4a4116100e7578063e6b2603b11610092578063f242ab411161006d578063f242ab41146108e7578063f2fde38b14610906578063f872858a14610925578063fb0ecfa414610945575f80fd5b8063e6b2603b14610896578063e9fd3394146108aa578063ee828db3146108c8575f80fd5b8063cea9d26f116100c2578063cea9d26f14610814578063dd62ed3e14610833578063df8408fe14610877575f80fd5b8063c16dd4a4146107b2578063c867d60b146107d1578063cc1776d3146107ff575f80fd5b8063a457c2d711610147578063b94b0aef11610122578063b94b0aef1461075f578063bf56b3711461077e578063c04a541414610793575f80fd5b8063a457c2d714610702578063a9059cbb14610721578063ae85ade614610740575f80fd5b80638b42507f116101775780638b42507f146106a45780638da5cb5b146106d257806395d89b41146106ee575f80fd5b80637d1db4a514610666578063807c2d9c1461067b5780638a8c523c14610690575f80fd5b80634974d88f1161025c5780636ddd171311610207578063728d41c9116101e2578063728d41c91461061457806372ac248614610633578063751039fc14610652575f80fd5b80636ddd1713146105b357806370a08231146105cc578063715018a614610600575f80fd5b80635c85974f116102375780635c85974f146105565780635e42358c14610575578063651a898714610594575f80fd5b80634974d88f146104f25780634f7041a5146105135780635342acb414610528575f80fd5b806318160ddd116102bc578063313ce56711610297578063313ce5671461048457806339509351146104a55780633ecad271146104c4575f80fd5b806318160ddd1461041e57806323b872dd1461043257806327c8f83514610451575f80fd5b80630930907b116102ec5780630930907b1461039c578063095ea7b3146103cf5780631693e8d4146103fe575f80fd5b80630445b6671461031c57806306fdde03146103445780630758d92414610365575f80fd5b3661031857005b5f80fd5b348015610327575f80fd5b50610331600e5481565b6040519081526020015b60405180910390f35b34801561034f575f80fd5b50610358610964565b60405161033b91906122c9565b348015610370575f80fd5b50601354610384906001600160a01b031681565b6040516001600160a01b03909116815260200161033b565b3480156103a7575f80fd5b506103847f000000000000000000000000000000000000000000000000000000000000000081565b3480156103da575f80fd5b506103ee6103e936600461230f565b6109f4565b604051901515815260200161033b565b348015610409575f80fd5b506014546103ee90600160a01b900460ff1681565b348015610429575f80fd5b50600554610331565b34801561043d575f80fd5b506103ee61044c366004612339565b610a0a565b34801561045c575f80fd5b506103847f000000000000000000000000000000000000000000000000000000000000dead81565b34801561048f575f80fd5b5060045460405160ff909116815260200161033b565b3480156104b0575f80fd5b506103ee6104bf36600461230f565b610ab1565b3480156104cf575f80fd5b506103ee6104de366004612377565b600b6020525f908152604090205460ff1681565b3480156104fd575f80fd5b5061051161050c3660046123a6565b610ae6565b005b34801561051e575f80fd5b5061033160105481565b348015610533575f80fd5b506103ee610542366004612377565b600a6020525f908152604090205460ff1681565b348015610561575f80fd5b506105116105703660046123bf565b610b7d565b348015610580575f80fd5b50600f546103ee9062010000900460ff1681565b34801561059f575f80fd5b506105116105ae3660046123d6565b610bdb565b3480156105be575f80fd5b50600f546103ee9060ff1681565b3480156105d7575f80fd5b506103316105e6366004612377565b6001600160a01b03165f9081526008602052604090205490565b34801561060b575f80fd5b50610511610c5e565b34801561061f575f80fd5b5061051161062e3660046123bf565b610cc2565b34801561063e575f80fd5b5061051161064d366004612377565b610d20565b34801561065d575f80fd5b50610511610db3565b348015610671575f80fd5b5061033160065481565b348015610686575f80fd5b5061033160075481565b34801561069b575f80fd5b50610511610e37565b3480156106af575f80fd5b506103ee6106be366004612377565b600d6020525f908152604090205460ff1681565b3480156106dd575f80fd5b505f546001600160a01b0316610384565b3480156106f9575f80fd5b50610358610f1e565b34801561070d575f80fd5b506103ee61071c36600461230f565b610f2d565b34801561072c575f80fd5b506103ee61073b36600461230f565b610f7a565b34801561074b575f80fd5b5061051161075a3660046123d6565b610f86565b34801561076a575f80fd5b50610511610779366004612409565b611009565b348015610789575f80fd5b5061033160155481565b34801561079e575f80fd5b50600154610384906001600160a01b031681565b3480156107bd575f80fd5b506105116107cc3660046123d6565b6110c4565b3480156107dc575f80fd5b506103ee6107eb366004612377565b600c6020525f908152604090205460ff1681565b34801561080a575f80fd5b5061033160115481565b34801561081f575f80fd5b5061051161082e366004612339565b611171565b34801561083e575f80fd5b5061033161084d366004612442565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610882575f80fd5b506105116108913660046123d6565b6112e6565b3480156108a1575f80fd5b50610511611369565b3480156108b5575f80fd5b50600f546103ee90610100900460ff1681565b3480156108d3575f80fd5b506105116108e23660046123a6565b61145b565b3480156108f2575f80fd5b50601454610384906001600160a01b031681565b348015610911575f80fd5b50610511610920366004612377565b6114ec565b348015610930575f80fd5b50600f546103ee906301000000900460ff1681565b348015610950575f80fd5b5061051161095f366004612479565b6115ca565b60606002805461097390612499565b80601f016020809104026020016040519081016040528092919081815260200182805461099f90612499565b80156109ea5780601f106109c1576101008083540402835291602001916109ea565b820191905f5260205f20905b8154815290600101906020018083116109cd57829003601f168201915b5050505050905090565b5f610a0033848461162e565b5060015b92915050565b5f610a16848484611785565b50610aa68433610aa1856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060095f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f610a813390565b6001600160a01b0316815260208101919091526040015f20549190611b95565b61162e565b5060015b9392505050565b335f8181526009602090815260408083206001600160a01b03871684529091528120549091610a00918590610aa19086611bcd565b5f546001600160a01b03163314610b445760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600f80549115156301000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff909216919091179055565b5f546001600160a01b03163314610bd65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b600655565b5f546001600160a01b03163314610c345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610cb75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b610cc05f611c2b565b565b5f546001600160a01b03163314610d1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b600755565b5f546001600160a01b03163314610d795760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610e0d5760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642043616c6c65720000000000000000000000000000000000006044820152606401610b3b565b600f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff169055565b5f546001600160a01b03163314610e905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b601454600160a01b900460ff1615610eea5760405162461bcd60e51b815260206004820152600e60248201527f547261646520456e61626c6564210000000000000000000000000000000000006044820152606401610b3b565b601480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b17905542601555565b60606003805461097390612499565b5f610a003384610aa18560405180606001604052806025815260200161262960259139335f9081526009602090815260408083206001600160a01b038d1684529091529020549190611b95565b5f610aa6338484611785565b5f546001600160a01b03163314610fdf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b03919091165f908152600d60205260409020805460ff1916911515919091179055565b6001546001600160a01b031633146110635760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642043616c6c65720000000000000000000000000000000000006044820152606401610b3b565b600f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169290921761010091151591909102179055600e55565b5f546001600160a01b0316331461111d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b0382165f908152600b60205260409020805460ff1916821580159190911790915561116d576001600160a01b0382165f908152600c60205260409020805460ff19168215151790555b5050565b6001546001600160a01b031633146111cb5760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642043616c6c65720000000000000000000000000000000000006044820152606401610b3b565b6040516001600160a01b038381166024830152604482018390525f919085169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790525161125191906124d1565b5f604051808303815f865af19150503d805f811461128a576040519150601f19603f3d011682016040523d82523d5f602084013e61128f565b606091505b50509050806112e05760405162461bcd60e51b815260206004820152601460248201527f546f6b656e207061796d656e74206661696c65640000000000000000000000006044820152606401610b3b565b50505050565b5f546001600160a01b0316331461133f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001546001600160a01b031633146113c35760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642043616c6c65720000000000000000000000000000000000006044820152606401610b3b565b6040515f90339047908381818185875af1925050503d805f8114611402576040519150601f19603f3d011682016040523d82523d5f602084013e611407565b606091505b50509050806114585760405162461bcd60e51b815260206004820152601460248201527f5472616e73616374696f6e204661696c656421210000000000000000000000006044820152606401610b3b565b50565b5f546001600160a01b031633146114b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b600f805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055565b5f546001600160a01b031633146115455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b6001600160a01b0381166115c15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b3b565b61145881611c2b565b5f546001600160a01b031633146116235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3b565b601091909155601155565b6001600160a01b0383166116a95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610b3b565b6001600160a01b0382166117255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610b3b565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416611798575f80fd5b6001600160a01b0383166117aa575f80fd5b5f82116117b5575f80fd5b60165460ff16156117d2576117cb848484611c92565b9050610aaa565b601454600160a01b900460ff1661186c576001600160a01b0384165f908152600a602052604090205460ff168061182057506001600160a01b0383165f908152600a602052604090205460ff165b61186c5760405162461bcd60e51b815260206004820152600e60248201527f54726164696e67205061757365640000000000000000000000000000000000006044820152606401610b3b565b305f90815260086020526040902054600e5481108015908190611892575060165460ff16155b80156118b657506001600160a01b0386165f908152600b602052604090205460ff16155b80156118c45750600f5460ff165b80156118e857506001600160a01b0386165f908152600a602052604090205460ff16155b801561190c57506001600160a01b0385165f908152600a602052604090205460ff16155b1561191a5761191a82611d7e565b6001600160a01b0386165f908152600d602052604090205460ff1615801561195a57506001600160a01b0385165f908152600d602052604090205460ff16155b801561196e5750600f5462010000900460ff165b156119c5576006548411156119c55760405162461bcd60e51b815260206004820152601360248201527f45786365656473206d61785478416d6f756e74000000000000000000000000006044820152606401610b3b565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0389165f90815260089091529190912054611a1f918690611b95565b6001600160a01b0387165f90815260086020526040812091909155611a448787611e05565b611a5857611a53878787611e9f565b611a5a565b845b600f549091506301000000900460ff168015611a8e57506001600160a01b0386165f908152600c602052604090205460ff16155b15611b0c57600754611abe82611ab8896001600160a01b03165f9081526008602052604090205490565b90611bcd565b1115611b0c5760405162461bcd60e51b815260206004820152600e60248201527f457863656564732057616c6c65740000000000000000000000000000000000006044820152606401610b3b565b6001600160a01b0386165f90815260086020526040902054611b2e9082611bcd565b6001600160a01b038088165f8181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b819085815260200190565b60405180910390a360019350505050610aaa565b5f8184841115611bb85760405162461bcd60e51b8152600401610b3b91906122c9565b505f611bc48486612500565b95945050505050565b5f80611bd98385612513565b905083811015610aaa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b3b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0386165f908152600890915291822054611ceb918490611b95565b6001600160a01b038086165f908152600860205260408082209390935590851681522054611d199083611bcd565b6001600160a01b038085165f8181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d6c9086815260200190565b60405180910390a35060019392505050565b6016805460ff19166001179055600f54610100900460ff1615611da05750600e545b47611daa82611fa9565b5f611db54783612164565b90508015611df6576001546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611df4573d5f803e3d5ffd5b505b50506016805460ff1916905550565b6001600160a01b0382165f908152600a602052604081205460ff1680611e4257506001600160a01b0382165f908152600a602052604090205460ff165b15611e4f57506001610a04565b6001600160a01b0383165f908152600b602052604090205460ff1680611e8c57506001600160a01b0382165f908152600b602052604090205460ff165b15611e9857505f610a04565b505f610a04565b6001600160a01b0383165f908152600b6020526040812054819060ff1615611ee957611ee2601254611edc601054866121a590919063ffffffff16565b9061223f565b9050611f27565b6001600160a01b0384165f908152600b602052604090205460ff1615611f2757611f24601254611edc601154866121a590919063ffffffff16565b90505b8015611f9f57305f90815260086020526040902054611f469082611bcd565b305f81815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f969085815260200190565b60405180910390a35b611bc48382612164565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611fdc57611fdc612526565b6001600160a01b03928316602091820292909201810191909152601354604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561204c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612070919061253a565b8160018151811061208357612083612526565b6001600160a01b0392831660209182029290920101526013546120a9913091168461162e565b6013546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906120fa9085905f90869030904290600401612597565b5f604051808303815f87803b158015612111575f80fd5b505af1158015612123573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516121589291906125d2565b60405180910390a15050565b5f610aaa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b95565b5f825f036121b457505f610a04565b5f6121bf83856125f2565b9050826121cc8583612609565b14610aaa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610b3b565b5f610aaa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f818361229b5760405162461bcd60e51b8152600401610b3b91906122c9565b505f611bc48486612609565b5f5b838110156122c15781810151838201526020016122a9565b50505f910152565b602081525f82518060208401526122e78160408501602087016122a7565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611458575f80fd5b5f8060408385031215612320575f80fd5b823561232b816122fb565b946020939093013593505050565b5f805f6060848603121561234b575f80fd5b8335612356816122fb565b92506020840135612366816122fb565b929592945050506040919091013590565b5f60208284031215612387575f80fd5b8135610aaa816122fb565b803580151581146123a1575f80fd5b919050565b5f602082840312156123b6575f80fd5b610aaa82612392565b5f602082840312156123cf575f80fd5b5035919050565b5f80604083850312156123e7575f80fd5b82356123f2816122fb565b915061240060208401612392565b90509250929050565b5f805f6060848603121561241b575f80fd5b8335925061242b60208501612392565b915061243960408501612392565b90509250925092565b5f8060408385031215612453575f80fd5b823561245e816122fb565b9150602083013561246e816122fb565b809150509250929050565b5f806040838503121561248a575f80fd5b50508035926020909101359150565b600181811c908216806124ad57607f821691505b6020821081036124cb57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82516124e28184602087016122a7565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a0457610a046124ec565b80820180821115610a0457610a046124ec565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561254a575f80fd5b8151610aaa816122fb565b5f8151808452602080850194508084015f5b8381101561258c5781516001600160a01b031687529582019590820190600101612567565b509495945050505050565b85815284602082015260a060408201525f6125b560a0830186612555565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6125ea6040830184612555565b949350505050565b8082028115828204841417610a0457610a046124ec565b5f8261262357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209b5d27f9139bef6d04b13b70e3d5a5607920677800958a4faf3a94f55f3f192364736f6c63430008150033

Deployed Bytecode Sourcemap

7259:12022:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8091:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8091:59:0;;;;;;;;10434:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8414:31::-;;;;;;;;;;-1:-1:-1;8414:31:0;;;;-1:-1:-1;;;;;8414:31:0;;;;;;-1:-1:-1;;;;;1097:55:1;;;1079:74;;1067:2;1052:18;8414:31:0;911:248:1;8658:81:0;;;;;;;;;;;;;;;11604:161;;;;;;;;;;-1:-1:-1;11604:161:0;;;;;:::i;:::-;;:::i;:::-;;;2039:14:1;;2032:22;2014:41;;2002:2;1987:18;11604:161:0;1874:187:1;8483:25:0;;;;;;;;;;-1:-1:-1;8483:25:0;;;;-1:-1:-1;;;8483:25:0;;;;;;10711:100;;;;;;;;;;-1:-1:-1;10791:12:0;;10711:100;;12378:297;;;;;;;;;;-1:-1:-1;12378:297:0;;;;;:::i;:::-;;:::i;8570:81::-;;;;;;;;;;;;;;;10620:83;;;;;;;;;;-1:-1:-1;10686:9:0;;10620:83;;10686:9;;;;2669:36:1;;2657:2;2642:18;10620:83:0;2527:184:1;11101:218:0;;;;;;;;;;-1:-1:-1;11101:218:0;;;;;:::i;:::-;;:::i;7923:45::-;;;;;;;;;;-1:-1:-1;7923:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17791:105;;;;;;;;;;-1:-1:-1;17791:105:0;;;;;:::i;:::-;;:::i;:::-;;8316:23;;;;;;;;;;;;;;;;7866:50;;;;;;;;;;-1:-1:-1;7866:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18412:101;;;;;;;;;;-1:-1:-1;18412:101:0;;;;;:::i;:::-;;:::i;8233:32::-;;;;;;;;;;-1:-1:-1;8233:32:0;;;;;;;;;;;18034:128;;;;;;;;;;-1:-1:-1;18034:128:0;;;;;:::i;:::-;;:::i;8159:30::-;;;;;;;;;;-1:-1:-1;8159:30:0;;;;;;;;10819:123;;;;;;;;;;-1:-1:-1;10819:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10911:18:0;10885:7;10911:18;;;:9;:18;;;;;;;10819:123;1927:94;;;;;;;;;;;;;:::i;18298:106::-;;;;;;;;;;-1:-1:-1;18298:106:0;;;;;:::i;:::-;;:::i;18525:118::-;;;;;;;;;;-1:-1:-1;18525:118:0;;;;;:::i;:::-;;:::i;17558:119::-;;;;;;;;;;;;;:::i;7589:59::-;;;;;;;;;;;;;;;;7665:56;;;;;;;;;;;;;;;;18888:176;;;;;;;;;;;;;:::i;8034:48::-;;;;;;;;;;-1:-1:-1;8034:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1618:87;;;;;;;;;;-1:-1:-1;1664:7:0;1691:6;-1:-1:-1;;;;;1691:6:0;1618:87;;10525;;;;;;;;;;;;;:::i;11327:269::-;;;;;;;;;;-1:-1:-1;11327:269:0;;;;;:::i;:::-;;:::i;12203:167::-;;;;;;;;;;-1:-1:-1;12203:167:0;;;;;:::i;:::-;;:::i;18170:120::-;;;;;;;;;;-1:-1:-1;18170:120:0;;;;;:::i;:::-;;:::i;18651:229::-;;;;;;;;;;-1:-1:-1;18651:229:0;;;;;:::i;:::-;;:::i;8516:25::-;;;;;;;;;;;;;;;;7348:32;;;;;;;;;;-1:-1:-1;7348:32:0;;;;-1:-1:-1;;;;;7348:32:0;;;19072:204;;;;;;;;;;-1:-1:-1;19072:204:0;;;;;:::i;:::-;;:::i;7975:52::-;;;;;;;;;;-1:-1:-1;7975:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8346:24;;;;;;;;;;;;;;;;17131:272;;;;;;;;;;-1:-1:-1;17131:272:0;;;;;:::i;:::-;;:::i;10950:143::-;;;;;;;;;;-1:-1:-1;10950:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11058:18:0;;;11031:7;11058:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10950:143;17904:122;;;;;;;;;;-1:-1:-1;17904:122:0;;;;;:::i;:::-;;:::i;16945:178::-;;;;;;;;;;;;;:::i;8196:30::-;;;;;;;;;;-1:-1:-1;8196:30:0;;;;;;;;;;;17685:98;;;;;;;;;;-1:-1:-1;17685:98:0;;;;;:::i;:::-;;:::i;8452:22::-;;;;;;;;;;-1:-1:-1;8452:22:0;;;;-1:-1:-1;;;;;8452:22:0;;;2029:229;;;;;;;;;;-1:-1:-1;2029:229:0;;;;;:::i;:::-;;:::i;8272:35::-;;;;;;;;;;-1:-1:-1;8272:35:0;;;;;;;;;;;17411:139;;;;;;;;;;-1:-1:-1;17411:139:0;;;;;:::i;:::-;;:::i;10434:83::-;10471:13;10504:5;10497:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10434:83;:::o;11604:161::-;11679:4;11696:39;265:10;11719:7;11728:6;11696:8;:39::i;:::-;-1:-1:-1;11753:4:0;11604:161;;;;;:::o;12378:297::-;12476:4;12493:36;12503:6;12511:9;12522:6;12493:9;:36::i;:::-;-1:-1:-1;12540:105:0;12549:6;265:10;12571:73;12609:6;12571:73;;;;;;;;;;;;;;;;;:11;:19;12583:6;-1:-1:-1;;;;;12571:19:0;-1:-1:-1;;;;;12571:19:0;;;;;;;;;;;;:33;12591:12;265:10;;185:98;12591:12;-1:-1:-1;;;;;12571:33:0;;;;;;;;;;;;-1:-1:-1;12571:33:0;;;:73;:37;:73::i;:::-;12540:8;:105::i;:::-;-1:-1:-1;12663:4:0;12378:297;;;;;;:::o;11101:218::-;265:10;11189:4;11238:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11238:34:0;;;;;;;;;;11189:4;;11206:83;;11229:7;;11238:50;;11277:10;11238:38;:50::i;17791:105::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;;;;;;;;;17862:16:::1;:26:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;17791:105::o;18412:101::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;18482:12:::1;:23:::0;18412:101::o;18034:128::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;-1:-1:-1;;;;;18119:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;18119:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18034:128::o;1927:94::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;1992:21:::1;2010:1;1992:9;:21::i;:::-;1927:94::o:0;18298:106::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;18375:10:::1;:21:::0;18298:106::o;18525:118::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;18605:17:::1;:30:::0;;;::::1;-1:-1:-1::0;;;;;18605:30:0;;;::::1;::::0;;;::::1;::::0;;18525:118::o;17558:119::-;8802:17;;-1:-1:-1;;;;;8802:17:0;8788:10;:31;8780:57;;;;-1:-1:-1;;;8780:57:0;;5795:2:1;8780:57:0;;;5777:21:1;5834:2;5814:18;;;5807:30;5873:16;5853:18;;;5846:44;5907:18;;8780:57:0;5593:338:1;8780:57:0;17612:13:::1;:21:::0;;17644:25;;;;17558:119::o;18888:176::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;18952:13:::1;::::0;-1:-1:-1;;;18952:13:0;::::1;;;18951:14;18943:41;;;::::0;-1:-1:-1;;;18943:41:0;;6138:2:1;18943:41:0::1;::::0;::::1;6120:21:1::0;6177:2;6157:18;;;6150:30;6216:16;6196:18;;;6189:44;6250:18;;18943:41:0::1;5936:338:1::0;18943:41:0::1;18997:13;:20:::0;;;::::1;-1:-1:-1::0;;;18997:20:0::1;::::0;;19041:15:::1;19028:10;:28:::0;18888:176::o;10525:87::-;10564:13;10597:7;10590:14;;;;;:::i;11327:269::-;11420:4;11437:129;265:10;11460:7;11469:96;11508:15;11469:96;;;;;;;;;;;;;;;;;265:10;11469:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11469:34:0;;;;;;;;;;;;:38;:96::i;12203:167::-;12281:4;12298:42;265:10;12322:9;12333:6;12298:9;:42::i;18170:120::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;-1:-1:-1;;;;;18251:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;18251:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18170:120::o;18651:229::-;8802:17;;-1:-1:-1;;;;;8802:17:0;8788:10;:31;8780:57;;;;-1:-1:-1;;;8780:57:0;;5795:2:1;8780:57:0;;;5777:21:1;5834:2;5814:18;;;5807:30;5873:16;5853:18;;;5846:44;5907:18;;8780:57:0;5593:338:1;8780:57:0;18780:11:::1;:22:::0;;18813;;18780;::::1;;18813::::0;;;;;;18780::::1;18813::::0;::::1;;::::0;;;::::1;;::::0;;18846:13:::1;:26:::0;18651:229::o;19072:204::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;-1:-1:-1;;;;;19154:19:0;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;19154:29:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;19194:75:::1;;-1:-1:-1::0;;;;;19221:26:0;::::1;;::::0;;;:19:::1;:26;::::0;;;;:36;;-1:-1:-1;;19221:36:0::1;::::0;::::1;;;::::0;;19194:75:::1;19072:204:::0;;:::o;17131:272::-;8802:17;;-1:-1:-1;;;;;8802:17:0;8788:10;:31;8780:57;;;;-1:-1:-1;;;8780:57:0;;5795:2:1;8780:57:0;;;5777:21:1;5834:2;5814:18;;;5807:30;5873:16;5853:18;;;5846:44;5907:18;;8780:57:0;5593:338:1;8780:57:0;17270:73:::1;::::0;-1:-1:-1;;;;;6471:55:1;;;17270:73:0::1;::::0;::::1;6453:74:1::0;6543:18;;;6536:34;;;17231:12:0::1;::::0;17249:20;;::::1;::::0;6426:18:1;;17270:73:0::1;::::0;;-1:-1:-1;;17270:73:0;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;;;::::0;;17249:95;::::1;::::0;17270:73;17249:95:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17230:114;;;17363:7;17355:40;;;::::0;-1:-1:-1;;;17355:40:0;;7075:2:1;17355:40:0::1;::::0;::::1;7057:21:1::0;7114:2;7094:18;;;7087:30;7153:22;7133:18;;;7126:50;7193:18;;17355:40:0::1;6873:344:1::0;17355:40:0::1;17219:184;17131:272:::0;;;:::o;17904:122::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;-1:-1:-1;;;;;17985:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;17985:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17904:122::o;16945:178::-;8802:17;;-1:-1:-1;;;;;8802:17:0;8788:10;:31;8780:57;;;;-1:-1:-1;;;8780:57:0;;5795:2:1;8780:57:0;;;5777:21:1;5834:2;5814:18;;;5807:30;5873:16;5853:18;;;5846:44;5907:18;;8780:57:0;5593:338:1;8780:57:0;17012:58:::1;::::0;17000:7:::1;::::0;17020:10:::1;::::0;17044:21:::1;::::0;17000:7;17012:58;17000:7;17012:58;17044:21;17020:10;17012:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16999:71;;;17089:2;17081:34;;;::::0;-1:-1:-1;;;17081:34:0;;7634:2:1;17081:34:0::1;::::0;::::1;7616:21:1::0;7673:2;7653:18;;;7646:30;7712:22;7692:18;;;7685:50;7752:18;;17081:34:0::1;7432:344:1::0;17081:34:0::1;16987:136;16945:178::o:0;17685:98::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;17752:13:::1;:23:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;17685:98::o;2029:229::-;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;-1:-1:-1;;;;;2132:22:0;::::1;2110:110;;;::::0;-1:-1:-1;;;2110:110:0;;7983:2:1;2110:110:0::1;::::0;::::1;7965:21:1::0;8022:2;8002:18;;;7995:30;8061:34;8041:18;;;8034:62;8132:8;8112:18;;;8105:36;8158:19;;2110:110:0::1;7781:402:1::0;2110:110:0::1;2231:19;2241:8;2231:9;:19::i;17411:139::-:0;1664:7;1691:6;-1:-1:-1;;;;;1691:6:0;265:10;1839:23;1831:68;;;;-1:-1:-1;;;1831:68:0;;5434:2:1;1831:68:0;;;5416:21:1;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1831:68:0;5232:356:1;1831:68:0;17495:6:::1;:17:::0;;;;17523:7:::1;:19:::0;17411:139::o;11773:337::-;-1:-1:-1;;;;;11866:19:0;;11858:68;;;;-1:-1:-1;;;11858:68:0;;8390:2:1;11858:68:0;;;8372:21:1;8429:2;8409:18;;;8402:30;8468:34;8448:18;;;8441:62;8539:6;8519:18;;;8512:34;8563:19;;11858:68:0;8188:400:1;11858:68:0;-1:-1:-1;;;;;11945:21:0;;11937:68;;;;-1:-1:-1;;;11937:68:0;;8795:2:1;11937:68:0;;;8777:21:1;8834:2;8814:18;;;8807:30;8873:34;8853:18;;;8846:62;8944:4;8924:18;;;8917:32;8966:19;;11937:68:0;8593:398:1;11937:68:0;-1:-1:-1;;;;;12018:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12070:32;;160:25:1;;;12070:32:0;;133:18:1;12070:32:0;;;;;;;11773:337;;;:::o;12683:1761::-;12770:4;-1:-1:-1;;;;;12797:20:0;;12789:29;;;;;;-1:-1:-1;;;;;12837:23:0;;12829:32;;;;;;12889:1;12880:6;:10;12872:19;;;;;;12912:6;;;;12908:1527;;;12942:41;12957:6;12965:9;12976:6;12942:14;:41::i;:::-;12935:48;;;;12908:1527;13031:13;;-1:-1:-1;;;13031:13:0;;;;13027:139;;-1:-1:-1;;;;;13073:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;13102:28:0;;;;;;:17;:28;;;;;;;;13073:57;13065:84;;;;-1:-1:-1;;;13065:84:0;;9198:2:1;13065:84:0;;;9180:21:1;9237:2;9217:18;;;9210:30;9276:16;9256:18;;;9249:44;9310:18;;13065:84:0;8996:338:1;13065:84:0;13231:4;13182:28;10911:18;;;:9;:18;;;;;;13307:13;;13283:37;;;;;;;13359:52;;-1:-1:-1;13405:6:0;;;;13404:7;13359:52;:95;;;;-1:-1:-1;;;;;;13434:20:0;;;;;;:12;:20;;;;;;;;13433:21;13359:95;:128;;;;-1:-1:-1;13476:11:0;;;;13359:128;:175;;;;-1:-1:-1;;;;;;13509:25:0;;;;;;:17;:25;;;;;;;;13508:26;13359:175;:225;;;;-1:-1:-1;;;;;;13556:28:0;;;;;;:17;:28;;;;;;;;13555:29;13359:225;13337:332;;;13623:30;13632:20;13623:8;:30::i;:::-;-1:-1:-1;;;;;13689:23:0;;;;;;:15;:23;;;;;;;;13688:24;:55;;;;-1:-1:-1;;;;;;13717:26:0;;;;;;:15;:26;;;;;;;;13716:27;13688:55;:72;;;;-1:-1:-1;13747:13:0;;;;;;;13688:72;13685:166;;;13799:12;;13789:6;:22;;13781:54;;;;-1:-1:-1;;;13781:54:0;;9541:2:1;13781:54:0;;;9523:21:1;9580:2;9560:18;;;9553:30;9619:21;9599:18;;;9592:49;9658:18;;13781:54:0;9339:343:1;13781:54:0;13900:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13900:17:0;;-1:-1:-1;13900:17:0;;;:9;:17;;;;;;;;:53;;13922:6;;13900:21;:53::i;:::-;-1:-1:-1;;;;;13880:17:0;;;;;;:9;:17;;;;;:73;;;;13992:34;13890:6;14016:9;13992:16;:34::i;:::-;:80;;14038:34;14046:6;14054:9;14065:6;14038:7;:34::i;:::-;13992:80;;;14029:6;13992:80;14092:16;;13970:102;;-1:-1:-1;14092:16:0;;;;;:51;;;;-1:-1:-1;;;;;;14113:30:0;;;;;;:19;:30;;;;;;;;14112:31;14092:51;14089:168;;;14213:10;;14172:37;14197:11;14172:20;14182:9;-1:-1:-1;;;;;10911:18:0;10885:7;10911:18;;;:9;:18;;;;;;;10819:123;14172:20;:24;;:37::i;:::-;:51;;14164:77;;;;-1:-1:-1;;;14164:77:0;;9889:2:1;14164:77:0;;;9871:21:1;9928:2;9908:18;;;9901:30;9967:16;9947:18;;;9940:44;10001:18;;14164:77:0;9687:338:1;14164:77:0;-1:-1:-1;;;;;14296:20:0;;;;;;:9;:20;;;;;;:37;;14321:11;14296:24;:37::i;:::-;-1:-1:-1;;;;;14273:20:0;;;;;;;:9;:20;;;;;;;:60;;;;14355:40;;;;;;;;;;14383:11;160:25:1;;148:2;133:18;;14:177;14355:40:0;;;;;;;;14417:4;14410:11;;;;;;;2805:192;2891:7;2927:12;2919:6;;;;2911:29;;;;-1:-1:-1;;;2911:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2951:9:0;2963:5;2967:1;2963;:5;:::i;:::-;2951:17;2805:192;-1:-1:-1;;;;;2805:192:0:o;2472:181::-;2530:7;;2562:5;2566:1;2562;:5;:::i;:::-;2550:17;;2591:1;2586;:6;;2578:46;;;;-1:-1:-1;;;2578:46:0;;10684:2:1;2578:46:0;;;10666:21:1;10723:2;10703:18;;;10696:30;10762:29;10742:18;;;10735:57;10809:18;;2578:46:0;10482:351:1;2266:173:0;2322:16;2341:6;;-1:-1:-1;;;;;2358:17:0;;;;;;;;;;2391:40;;2341:6;;;;;;;2391:40;;2322:16;2391:40;2311:128;2266:173;:::o;14452:330::-;14582:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14582:17:0;;14545:4;14582:17;;;:9;:17;;;;;;;:53;;14604:6;;14582:21;:53::i;:::-;-1:-1:-1;;;;;14562:17:0;;;;;;;:9;:17;;;;;;:73;;;;14669:20;;;;;;;:32;;14694:6;14669:24;:32::i;:::-;-1:-1:-1;;;;;14646:20:0;;;;;;;:9;:20;;;;;;;:55;;;;14717:35;;;;;;;;;;14745:6;160:25:1;;148:2;133:18;;14:177;14717:35:0;;;;;;;;-1:-1:-1;14770:4:0;14452:330;;;;;:::o;15871:408::-;8896:6;:13;;-1:-1:-1;;8896:13:0;8905:4;8896:13;;;15945:11:::1;::::0;8896:13;15945:11;::::1;8896:13:::0;15945:11:::1;15942:47;;;-1:-1:-1::0;15976:13:0::1;::::0;15942:47:::1;16027:21;16059:33;16076:15:::0;16059:16:::1;:33::i;:::-;16103:22;16128:41;:21;16154:14:::0;16128:25:::1;:41::i;:::-;16103:66:::0;-1:-1:-1;16185:18:0;;16182:87:::1;;16226:17;::::0;16218:51:::1;::::0;-1:-1:-1;;;;;16226:17:0;;::::1;::::0;16218:51;::::1;;;::::0;16254:14;;16226:17:::1;16218:51:::0;16226:17;16218:51;16254:14;16226:17;16218:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16182:87;-1:-1:-1::0;;8932:6:0;:14;;-1:-1:-1;;8932:14:0;;;-1:-1:-1;15871:408:0:o;14794:369::-;-1:-1:-1;;;;;14898:25:0;;14878:4;14898:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;14927:28:0;;;;;;:17;:28;;;;;;;;14898:57;14895:261;;;-1:-1:-1;14979:4:0;14972:11;;14895:261;-1:-1:-1;;;;;15014:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;15038:23:0;;;;;;:12;:23;;;;;;;;15014:47;15010:146;;;-1:-1:-1;15085:5:0;15078:12;;15010:146;-1:-1:-1;15139:5:0;15132:12;;15171:690;-1:-1:-1;;;;;15344:20:0;;15257:7;15344:20;;;:12;:20;;;;;;15257:7;;15344:20;;15341:246;;;15398:38;15421:14;;15398:18;15409:6;;15398;:10;;:18;;;;:::i;:::-;:22;;:38::i;:::-;15386:50;;15341:246;;;-1:-1:-1;;;;;15475:23:0;;;;;;:12;:23;;;;;;;;15472:115;;;15532:39;15556:14;;15532:19;15543:7;;15532:6;:10;;:19;;;;:::i;:39::-;15520:51;;15472:115;15606:13;;15603:185;;15685:4;15667:24;;;;:9;:24;;;;;;:39;;15696:9;15667:28;:39::i;:::-;15658:4;15640:24;;;;:9;:24;;;;;;;:66;;;;15730:42;;-1:-1:-1;;;;;15730:42:0;;;;;;;15762:9;160:25:1;;148:2;133:18;;14:177;15730:42:0;;;;;;;;15603:185;15811:21;:6;15822:9;15811:10;:21::i;16289:648::-;16439:16;;;16453:1;16439:16;;;;;;;;16415:21;;16439:16;;;;;;;;;;-1:-1:-1;16439:16:0;16415:40;;16484:4;16466;16471:1;16466:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16466:23:0;;;:7;;;;;;;;;;:23;;;;16510:9;;:16;;;;;;;;:9;;;;;:14;;:16;;;;;16466:7;;16510:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16500:4;16505:1;16500:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16500:26:0;;;:7;;;;;;;;;:26;16571:9;;16539:56;;16556:4;;16571:9;16583:11;16539:8;:56::i;:::-;16634:9;;:234;;;;;-1:-1:-1;;;;;16634:9:0;;;;:60;;:234;;16709:11;;16634:9;;16779:4;;16806;;16842:15;;16634:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16894:35;16911:11;16924:4;16894:35;;;;;;;:::i;:::-;;;;;;;;16344:593;16289:648;:::o;2661:136::-;2719:7;2746:43;2750:1;2753;2746:43;;;;;;;;;;;;;;;;;:3;:43::i;3005:250::-;3063:7;3087:1;3092;3087:6;3083:47;;-1:-1:-1;3117:1:0;3110:8;;3083:47;3142:9;3154:5;3158:1;3154;:5;:::i;:::-;3142:17;-1:-1:-1;3187:1:0;3178:5;3182:1;3142:17;3178:5;:::i;:::-;:10;3170:56;;;;-1:-1:-1;;;3170:56:0;;13562:2:1;3170:56:0;;;13544:21:1;13601:2;13581:18;;;13574:30;13640:34;13620:18;;;13613:62;13711:3;13691:18;;;13684:31;13732:19;;3170:56:0;13360:397:1;3263:132:0;3321:7;3348:39;3352:1;3355;3348:39;;;;;;;;;;;;;;;;;3489:7;3524:12;3517:5;3509:28;;;;-1:-1:-1;;;3509:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3548:9:0;3560:5;3564:1;3560;:5;:::i;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:455::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;822:2;810:15;-1:-1:-1;;806:88:1;791:104;;;;897:2;787:113;;451:455;-1:-1:-1;;451:455:1:o;1395:154::-;-1:-1:-1;;;;;1474:5:1;1470:54;1463:5;1460:65;1450:93;;1539:1;1536;1529:12;1554:315;1622:6;1630;1683:2;1671:9;1662:7;1658:23;1654:32;1651:52;;;1699:1;1696;1689:12;1651:52;1738:9;1725:23;1757:31;1782:5;1757:31;:::i;:::-;1807:5;1859:2;1844:18;;;;1831:32;;-1:-1:-1;;;1554:315:1:o;2066:456::-;2143:6;2151;2159;2212:2;2200:9;2191:7;2187:23;2183:32;2180:52;;;2228:1;2225;2218:12;2180:52;2267:9;2254:23;2286:31;2311:5;2286:31;:::i;:::-;2336:5;-1:-1:-1;2393:2:1;2378:18;;2365:32;2406:33;2365:32;2406:33;:::i;:::-;2066:456;;2458:7;;-1:-1:-1;;;2512:2:1;2497:18;;;;2484:32;;2066:456::o;2716:247::-;2775:6;2828:2;2816:9;2807:7;2803:23;2799:32;2796:52;;;2844:1;2841;2834:12;2796:52;2883:9;2870:23;2902:31;2927:5;2902:31;:::i;2968:160::-;3033:20;;3089:13;;3082:21;3072:32;;3062:60;;3118:1;3115;3108:12;3062:60;2968:160;;;:::o;3133:180::-;3189:6;3242:2;3230:9;3221:7;3217:23;3213:32;3210:52;;;3258:1;3255;3248:12;3210:52;3281:26;3297:9;3281:26;:::i;3318:180::-;3377:6;3430:2;3418:9;3409:7;3405:23;3401:32;3398:52;;;3446:1;3443;3436:12;3398:52;-1:-1:-1;3469:23:1;;3318:180;-1:-1:-1;3318:180:1:o;3503:315::-;3568:6;3576;3629:2;3617:9;3608:7;3604:23;3600:32;3597:52;;;3645:1;3642;3635:12;3597:52;3684:9;3671:23;3703:31;3728:5;3703:31;:::i;:::-;3753:5;-1:-1:-1;3777:35:1;3808:2;3793:18;;3777:35;:::i;:::-;3767:45;;3503:315;;;;;:::o;3823:316::-;3894:6;3902;3910;3963:2;3951:9;3942:7;3938:23;3934:32;3931:52;;;3979:1;3976;3969:12;3931:52;4015:9;4002:23;3992:33;;4044:35;4075:2;4064:9;4060:18;4044:35;:::i;:::-;4034:45;;4098:35;4129:2;4118:9;4114:18;4098:35;:::i;:::-;4088:45;;3823:316;;;;;:::o;4144:388::-;4212:6;4220;4273:2;4261:9;4252:7;4248:23;4244:32;4241:52;;;4289:1;4286;4279:12;4241:52;4328:9;4315:23;4347:31;4372:5;4347:31;:::i;:::-;4397:5;-1:-1:-1;4454:2:1;4439:18;;4426:32;4467:33;4426:32;4467:33;:::i;:::-;4519:7;4509:17;;;4144:388;;;;;:::o;4537:248::-;4605:6;4613;4666:2;4654:9;4645:7;4641:23;4637:32;4634:52;;;4682:1;4679;4672:12;4634:52;-1:-1:-1;;4705:23:1;;;4775:2;4760:18;;;4747:32;;-1:-1:-1;4537:248:1:o;4790:437::-;4869:1;4865:12;;;;4912;;;4933:61;;4987:4;4979:6;4975:17;4965:27;;4933:61;5040:2;5032:6;5029:14;5009:18;5006:38;5003:218;;-1:-1:-1;;;5074:1:1;5067:88;5178:4;5175:1;5168:15;5206:4;5203:1;5196:15;5003:218;;4790:437;;;:::o;6581:287::-;6710:3;6748:6;6742:13;6764:66;6823:6;6818:3;6811:4;6803:6;6799:17;6764:66;:::i;:::-;6846:16;;;;;6581:287;-1:-1:-1;;6581:287:1:o;10030:184::-;-1:-1:-1;;;10079:1:1;10072:88;10179:4;10176:1;10169:15;10203:4;10200:1;10193:15;10219:128;10286:9;;;10307:11;;;10304:37;;;10321:18;;:::i;10352:125::-;10417:9;;;10438:10;;;10435:36;;;10451:18;;:::i;11027:184::-;-1:-1:-1;;;11076:1:1;11069:88;11176:4;11173:1;11166:15;11200:4;11197:1;11190:15;11216:251;11286:6;11339:2;11327:9;11318:7;11314:23;11310:32;11307:52;;;11355:1;11352;11345:12;11307:52;11387:9;11381:16;11406:31;11431:5;11406:31;:::i;11472:484::-;11525:3;11563:5;11557:12;11590:6;11585:3;11578:19;11616:4;11645:2;11640:3;11636:12;11629:19;;11682:2;11675:5;11671:14;11703:1;11713:218;11727:6;11724:1;11721:13;11713:218;;;11792:13;;-1:-1:-1;;;;;11788:62:1;11776:75;;11871:12;;;;11906:15;;;;11749:1;11742:9;11713:218;;;-1:-1:-1;11947:3:1;;11472:484;-1:-1:-1;;;;;11472:484:1:o;11961:605::-;12260:6;12249:9;12242:25;12303:6;12298:2;12287:9;12283:18;12276:34;12346:3;12341:2;12330:9;12326:18;12319:31;12223:4;12367:57;12419:3;12408:9;12404:19;12396:6;12367:57;:::i;:::-;-1:-1:-1;;;;;12460:55:1;;;;12455:2;12440:18;;12433:83;-1:-1:-1;12547:3:1;12532:19;12525:35;12359:65;11961:605;-1:-1:-1;;;11961:605:1:o;12571:332::-;12778:6;12767:9;12760:25;12821:2;12816;12805:9;12801:18;12794:30;12741:4;12841:56;12893:2;12882:9;12878:18;12870:6;12841:56;:::i;:::-;12833:64;12571:332;-1:-1:-1;;;;12571:332:1:o;12908:168::-;12981:9;;;13012;;13029:15;;;13023:22;;13009:37;12999:71;;13050:18;;:::i;13081:274::-;13121:1;13147;13137:189;;-1:-1:-1;;;13179:1:1;13172:88;13283:4;13280:1;13273:15;13311:4;13308:1;13301:15;13137:189;-1:-1:-1;13340:9:1;;13081:274::o

Swarm Source

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