ETH Price: $2,311.71 (+0.36%)

Token

Ordible (ORB)
 

Overview

Max Total Supply

100,000,000 ORB

Holders

143

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
202,185.605954038 ORB

Value
$0.00
0xf09e3efcf35ca8156357d4ef05e7b201037a796c
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:
Ordible

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

BRC20 Tools and Portofolio Management Service on Telegram.

Website link: https://ordible.bot
Twitter: https://x.com/ordible_bot
Medium: https://ordible.medium.com
Youtube: https://youtube.com/@ordible
Telegram: https://t.me/ordiblebot
Other Useful links: https://linktr.ee/Ordible

**/

pragma solidity 0.8.19;

/**
 * @title Context
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, but through this contract instead.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

/**
 * @title IERC20
 * @dev Interface for the ERC20 standard token.
 */
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);
}

/**
 * @title Ownable
 * @dev Contract module that provides basic authorization control functions.
 * Implements a modified version of the OpenZeppelin Ownable contract.
 */
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view 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");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

/**
 * @title IUniswapV2Factory
 * @dev Interface for the Uniswap V2 Factory contract.
 */
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

/**
 * @title IUniswapV2Router02
 * @dev Interface for the Uniswap V2 Router02 contract.
 */
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

/**
 * @title Ordible
 * @dev ERC20 token contract with additional features for tax, liquidity, and ownership.
 */
contract Ordible is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    address payable private _taxWallet;
    address private constant deadAddress = address(0xdead);
    address private constant uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    uint256 private initialBuyTaxRate  = 20;
    uint256 private initialSellTaxRate = 25;
    uint256 private finalBuyTaxRate  = 4;
    uint256 private finalSellTaxRate = 4;
    uint256 private buyTaxReductionThreshold  = 30;
    uint256 private sellTaxReductionThreshold = 45;
    uint256 private buyCountSwapThreshold = 40;
    uint256 private totalBuysCount = 0;

    string private constant _name = "Ordible";
    string private constant _symbol = "ORB";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 100000000 * 10**_decimals;

    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 100000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

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

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

    constructor(address payable taxWalletAddress) {
        _taxWallet = taxWalletAddress;
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[deadAddress] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public pure returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     */
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    /**
     * @dev Returns the total token supply.
     */
    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Returns the balance of the specified address.
     * @param account The address to query the balance of.
     */
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev Transfers `amount` tokens to `recipient`.
     * @param recipient The address to transfer to.
     * @param amount The amount to be transferred.
     */
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through `transferFrom`. This is
     * zero by default.
     * @param owner The address which owns the funds.
     * @param spender The address which will spend the funds.
     */
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     * @param spender The address which will spend the funds.
     * @param amount The amount of tokens to allow.
     */
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     * @param sender The address which owns the funds.
     * @param recipient The address which will receive the funds.
     * @param amount The amount to be transferred.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        require(_allowances[sender][_msgSender()] >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`'s tokens.
     * @param owner The address which owns the funds.
     * @param spender The address which will spend the funds.
     * @param amount The amount of tokens to allow.
     */
    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);
    }

    /**
     * @dev Moves tokens `amount` from `from` to `to`.
     * @param from The address which owns the funds.
     * @param to The address which will receive the funds.
     * @param amount The amount to be transferred.
     */
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 taxAmount = 0;
        
        if (from != owner() && to != owner()) {

            if (!tradingOpen) {
                require( 
                  _isExcludedFromFee[from] || _isExcludedFromFee[to],
                  "Trading is not yet open"
                );
            }

        if (from == uniswapV2Pair) {
            // This is a buy transaction
            if (limitEffect && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            } 
            taxAmount = calculateTax(amount, true, totalBuysCount > buyTaxReductionThreshold);
            totalBuysCount++;
        } else if (to == uniswapV2Pair) {
            // This is a sell transaction
            taxAmount = calculateTax(amount, false, totalBuysCount > sellTaxReductionThreshold);
        }
            if (taxAmount > 0) {
                _balances[address(this)] += taxAmount;
                emit Transfer(from, address(this), taxAmount);
            }
        }

        _balances[from] -= amount;
        _balances[to] += amount - taxAmount;
        emit Transfer(from, to, amount - taxAmount);

        if (contractTokenBalance > _taxSwapThreshold && to == uniswapV2Pair && !inSwap && swapEnabled && totalBuysCount > buyCountSwapThreshold) {
            swapAndSendToFee();
        }
    }

    /**
     * @dev Calculates the tax amount based on the given amount and tax rate.
     * @param amount The amount to calculate the tax for.
     * @param reduced Whether the tax rate should be reduced or not.
     * @return The calculated tax amount.
     */
    function calculateTax(uint256 amount, bool isBuy, bool reduced) private view returns (uint256) {
        uint256 taxRate;
        if (isBuy) {
            taxRate = reduced ? finalBuyTaxRate : initialBuyTaxRate;
        } else {
            taxRate = reduced ? finalSellTaxRate : initialSellTaxRate;
        }
        return (amount * taxRate) / 100;
    }


    /**
     * @dev Swaps tokens for ETH and sends the ETH to the tax wallet.
     */
    function swapAndSendToFee() private lockTheSwap {
        uint256 contractTokenBalance = _balances[address(this)];
        uint256 amountToSwap = min(contractTokenBalance, _maxTaxSwap);
        swapTokensForEth(amountToSwap);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            _taxWallet.transfer(contractETHBalance);
        }
    }

    /**
     * @dev Returns the minimum of two numbers.
     * @param a The first number.
     * @param b The second number.
     * @return The minimum of the two numbers.
     */
    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    /**
     * @dev Swaps tokens for ETH using the Uniswap V2 Router.
     * @param tokenAmount The amount of tokens to swap.
     */
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    /**
     * @dev Initializes the contract by creating a Uniswap V2 pair and adding liquidity.
     * Can only be called by the owner.
     */
    function initialize() external onlyOwner() {
        require(!tradingOpen, "initialize is already added");

        // Adjusted to use native Solidity arithmetic
        uint256 tokenAmount = balanceOf(address(this)) - (_totalSupply * initialBuyTaxRate / 100);

        uniswapV2Router = IUniswapV2Router02(uniswapV2RouterAddress);
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this), 
            uniswapV2Router.WETH()
        );

        uniswapV2Router.addLiquidityETH{value: address(this).balance} (
            address(this),
            tokenAmount,
            0,  // min amount of token
            0,  // min amount of ETH
            owner(),
            block.timestamp
        );

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    /**
     * @dev Removes the limits on transaction amount and wallet size.
     * Can only be called by the owner.
     * @return A boolean indicating whether the limits were successfully removed.
     */
    function removeLimits() external onlyOwner returns (bool) {
        limitEffect = false;
        return true;
    }
    
    /**
     * @dev Reduces the tax rate for buying and selling.
     * Can only be called by the owner.
     * @param _value The new tax rate value.
     * @return A boolean indicating whether the tax rate was successfully reduced.
     */
    function reduceTax(uint256 _value) external onlyOwner returns (bool) {
        finalBuyTaxRate = _value;
        finalSellTaxRate = _value;
        require(_value <= 50);
        return true;
    }

    /**
     * @dev Opens trading by enabling swaps.
     * Can only be called by the owner.
     * @return A boolean indicating whether trading was successfully opened.
     */
    function openTrading() external onlyOwner returns (bool) {
        require(!tradingOpen, "trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        return true;
    }

    /**
     * @dev Clears any stuck ETH in the contract by transferring it to the tax wallet.
     * @return A boolean indicating whether the stuck ETH was successfully cleared.
     */
    function clearstuckETH() external returns (bool) {
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            _taxWallet.transfer(ethBalance);
        }
        return true;
    }
    
    /**
     * @dev Clears any stuck tokens in the contract by transferring them to the tax wallet.
     * @param tokenAddress The address of the token to clear.
     * @return A boolean indicating whether the stuck tokens were successfully cleared.
     */
    function clearstuckToken(address tokenAddress) external returns (bool) {
        uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));
        if (tokenBalance > 0) {
            IERC20(tokenAddress).transfer(_taxWallet, tokenBalance);
        }
        return true;
    }

    /**
     * @dev Fallback function to receive ETH.
     */
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"taxWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":"clearstuckETH","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"clearstuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"reduceTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526014600555601960065560046007556004600855601e600955602d600a556028600b556000600c556009600a6200003c919062000397565b6200004b90620f4240620003af565b600d556200005c6009600a62000397565b6200006b90620f4240620003af565b600e556200007c6009600a62000397565b6200008b90620186a0620003af565b600f556200009c6009600a62000397565b620000ab90620f4240620003af565b6010556012805462ffffff60a81b1916600160a81b179055348015620000d057600080fd5b5060405162001cd538038062001cd5833981016040819052620000f391620003c9565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b0319166001600160a01b0383161790556200015d6009600a62000397565b6200016d906305f5e100620003af565b336000908152600160208190526040822092909255600390620001986000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560039093527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054851660019081179091553084528284208054861682179055600454909116835291208054909216179055620002203390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200025a6009600a62000397565b6200026a906305f5e100620003af565b60405190815260200160405180910390a350620003f4565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002d9578160001904821115620002bd57620002bd62000282565b80851615620002cb57918102915b93841c93908002906200029d565b509250929050565b600082620002f25750600162000391565b81620003015750600062000391565b81600181146200031a5760028114620003255762000345565b600191505062000391565b60ff84111562000339576200033962000282565b50506001821b62000391565b5060208310610133831016604e8410600b84101617156200036a575081810a62000391565b62000376838362000298565b80600019048211156200038d576200038d62000282565b0290505b92915050565b6000620003a860ff841683620002e1565b9392505050565b808202811582820484141762000391576200039162000282565b600060208284031215620003dc57600080fd5b81516001600160a01b0381168114620003a857600080fd5b6118d180620004046000396000f3fe60806040526004361061012e5760003560e01c80637d1db4a5116100ab578063a9059cbb1161006f578063a9059cbb14610338578063a92d4a9214610358578063bf474bed1461036d578063c9567bf914610383578063dd62ed3e14610398578063ef985894146103de57600080fd5b80637d1db4a5146102a35780638129fc1c146102b95780638da5cb5b146102ce5780638f9a55c0146102f657806395d89b411461030c57600080fd5b80632750e9ed116100f25780632750e9ed14610205578063313ce5671461022557806370a0823114610241578063715018a614610277578063751039fc1461028e57600080fd5b806306fdde031461013a578063095ea7b31461017c5780630faee56f146101ac57806318160ddd146101d057806323b872dd146101e557600080fd5b3661013557005b600080fd5b34801561014657600080fd5b506040805180820190915260078152664f726469626c6560c81b60208201525b6040516101739190611496565b60405180910390f35b34801561018857600080fd5b5061019c6101973660046114fc565b6103fe565b6040519015158152602001610173565b3480156101b857600080fd5b506101c260105481565b604051908152602001610173565b3480156101dc57600080fd5b506101c2610415565b3480156101f157600080fd5b5061019c610200366004611528565b610436565b34801561021157600080fd5b5061019c610220366004611569565b61050f565b34801561023157600080fd5b5060405160098152602001610173565b34801561024d57600080fd5b506101c261025c366004611569565b6001600160a01b031660009081526001602052604090205490565b34801561028357600080fd5b5061028c610607565b005b34801561029a57600080fd5b5061019c61067b565b3480156102af57600080fd5b506101c2600d5481565b3480156102c557600080fd5b5061028c6106b9565b3480156102da57600080fd5b506000546040516001600160a01b039091168152602001610173565b34801561030257600080fd5b506101c2600e5481565b34801561031857600080fd5b5060408051808201909152600381526227a92160e91b6020820152610166565b34801561034457600080fd5b5061019c6103533660046114fc565b610a95565b34801561036457600080fd5b5061019c610aa2565b34801561037957600080fd5b506101c2600f5481565b34801561038f57600080fd5b5061019c610aef565b3480156103a457600080fd5b506101c26103b3366004611586565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103ea57600080fd5b5061019c6103f93660046115bf565b610b93565b600061040b338484610bde565b5060015b92915050565b60006104236009600a6116d2565b610431906305f5e1006116e1565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156104bf5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104ca848484610d02565b6001600160a01b0384166000908152600260209081526040808320338085529252909120546105059186916105009086906116f8565b610bde565b5060019392505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038416906370a0823190602401602060405180830381865afa158015610558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057c919061170b565b9050801561040b576004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905284169063a9059cbb906044016020604051808303816000875af11580156105d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fd9190611724565b5050600192915050565b6000546001600160a01b031633146106315760405162461bcd60e51b81526004016104b690611746565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b031633146106a65760405162461bcd60e51b81526004016104b690611746565b506012805460ff60a81b19169055600190565b6000546001600160a01b031633146106e35760405162461bcd60e51b81526004016104b690611746565b601254600160a01b900460ff161561073d5760405162461bcd60e51b815260206004820152601b60248201527f696e697469616c697a6520697320616c7265616479206164646564000000000060448201526064016104b6565b600060646005546009600a61075291906116d2565b610760906305f5e1006116e1565b61076a91906116e1565b610774919061177b565b3060009081526001602052604090205461078e91906116f8565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506107da9030906107cc6009600a6116d2565b610500906305f5e1006116e1565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610851919061179d565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d7919061179d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610924573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610948919061179d565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730846000806109876000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109ef573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a1491906117ba565b505060125460115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190611724565b5050565b600061040b338484610d02565b6000478015610ae7576004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ae5573d6000803e3d6000fd5b505b600191505090565b600080546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016104b690611746565b601254600160a01b900460ff1615610b745760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b6565b506012805463ff0000ff60a01b1916630100000160a01b179055600190565b600080546001600160a01b03163314610bbe5760405162461bcd60e51b81526004016104b690611746565b600782905560088290556032821115610bd657600080fd5b506001919050565b6001600160a01b038316610c405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b6565b6001600160a01b038216610ca15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b6565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d665760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b6565b6001600160a01b038216610dc85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b6565b60008111610e2a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b6565b3060009081526001602052604081205481549091906001600160a01b03868116911614801590610e6857506000546001600160a01b03858116911614155b1561110157601254600160a01b900460ff16610f09576001600160a01b03851660009081526003602052604090205460ff1680610ebd57506001600160a01b03841660009081526003602052604090205460ff165b610f095760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206973206e6f7420796574206f70656e00000000000000000060448201526064016104b6565b6012546001600160a01b039081169086160361106b57601254600160a81b900460ff168015610f4657506011546001600160a01b03858116911614155b8015610f6b57506001600160a01b03841660009081526003602052604090205460ff16155b1561103d57600d54831115610fc25760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104b6565b600e5483610fe5866001600160a01b031660009081526001602052604090205490565b610fef91906117e8565b111561103d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b6565b61104f836001600954600c541161121c565b600c80549192506000611061836117fb565b9190505550611096565b6012546001600160a01b039081169085160361109657611093836000600a54600c541161121c565b90505b80156111015730600090815260016020526040812080548392906110bb9084906117e8565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6001600160a01b038516600090815260016020526040812080548592906111299084906116f8565b90915550611139905081846116f8565b6001600160a01b038516600090815260016020526040812080549091906111619084906117e8565b90915550506001600160a01b038085169086167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61119f84876116f8565b60405190815260200160405180910390a3600f54821180156111ce57506012546001600160a01b038581169116145b80156111e45750601254600160b01b900460ff16155b80156111f95750601254600160b81b900460ff165b80156112085750600b54600c54115b1561121557611215611270565b5050505050565b600080831561123d578261123257600554611236565b6007545b9050611251565b8261124a5760065461124e565b6008545b90505b606461125d82876116e1565b611267919061177b565b95945050505050565b6012805460ff60b01b1916600160b01b179055306000908152600160205260408120546010549091906112a4908390611304565b90506112af8161131c565b4780156112f2576004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156112f0573d6000803e3d6000fd5b505b50506012805460ff60b01b1916905550565b60008183116113135782611315565b815b9392505050565b6012805460ff60b01b1916600160b01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136457611364611814565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e1919061179d565b816001815181106113f4576113f4611814565b6001600160a01b03928316602091820292909201015260115461141a9130911684610bde565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061145390859060009086903090429060040161182a565b600060405180830381600087803b15801561146d57600080fd5b505af1158015611481573d6000803e3d6000fd5b50506012805460ff60b01b1916905550505050565b600060208083528351808285015260005b818110156114c3578581018301518582016040015282016114a7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114f957600080fd5b50565b6000806040838503121561150f57600080fd5b823561151a816114e4565b946020939093013593505050565b60008060006060848603121561153d57600080fd5b8335611548816114e4565b92506020840135611558816114e4565b929592945050506040919091013590565b60006020828403121561157b57600080fd5b8135611315816114e4565b6000806040838503121561159957600080fd5b82356115a4816114e4565b915060208301356115b4816114e4565b809150509250929050565b6000602082840312156115d157600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561162957816000190482111561160f5761160f6115d8565b8085161561161c57918102915b93841c93908002906115f3565b509250929050565b6000826116405750600161040f565b8161164d5750600061040f565b8160018114611663576002811461166d57611689565b600191505061040f565b60ff84111561167e5761167e6115d8565b50506001821b61040f565b5060208310610133831016604e8410600b84101617156116ac575081810a61040f565b6116b683836115ee565b80600019048211156116ca576116ca6115d8565b029392505050565b600061131560ff841683611631565b808202811582820484141761040f5761040f6115d8565b8181038181111561040f5761040f6115d8565b60006020828403121561171d57600080fd5b5051919050565b60006020828403121561173657600080fd5b8151801515811461131557600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261179857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156117af57600080fd5b8151611315816114e4565b6000806000606084860312156117cf57600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561040f5761040f6115d8565b60006001820161180d5761180d6115d8565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561187a5784516001600160a01b031683529383019391830191600101611855565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122018417c42a6dc69f191bbc8db86aa6b8f4fba22d3abcaadb2a9ccdfa8e590d1c664736f6c634300081300330000000000000000000000008f7f777f3cadb61f2474c6cb6d835c83ab31918e

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80637d1db4a5116100ab578063a9059cbb1161006f578063a9059cbb14610338578063a92d4a9214610358578063bf474bed1461036d578063c9567bf914610383578063dd62ed3e14610398578063ef985894146103de57600080fd5b80637d1db4a5146102a35780638129fc1c146102b95780638da5cb5b146102ce5780638f9a55c0146102f657806395d89b411461030c57600080fd5b80632750e9ed116100f25780632750e9ed14610205578063313ce5671461022557806370a0823114610241578063715018a614610277578063751039fc1461028e57600080fd5b806306fdde031461013a578063095ea7b31461017c5780630faee56f146101ac57806318160ddd146101d057806323b872dd146101e557600080fd5b3661013557005b600080fd5b34801561014657600080fd5b506040805180820190915260078152664f726469626c6560c81b60208201525b6040516101739190611496565b60405180910390f35b34801561018857600080fd5b5061019c6101973660046114fc565b6103fe565b6040519015158152602001610173565b3480156101b857600080fd5b506101c260105481565b604051908152602001610173565b3480156101dc57600080fd5b506101c2610415565b3480156101f157600080fd5b5061019c610200366004611528565b610436565b34801561021157600080fd5b5061019c610220366004611569565b61050f565b34801561023157600080fd5b5060405160098152602001610173565b34801561024d57600080fd5b506101c261025c366004611569565b6001600160a01b031660009081526001602052604090205490565b34801561028357600080fd5b5061028c610607565b005b34801561029a57600080fd5b5061019c61067b565b3480156102af57600080fd5b506101c2600d5481565b3480156102c557600080fd5b5061028c6106b9565b3480156102da57600080fd5b506000546040516001600160a01b039091168152602001610173565b34801561030257600080fd5b506101c2600e5481565b34801561031857600080fd5b5060408051808201909152600381526227a92160e91b6020820152610166565b34801561034457600080fd5b5061019c6103533660046114fc565b610a95565b34801561036457600080fd5b5061019c610aa2565b34801561037957600080fd5b506101c2600f5481565b34801561038f57600080fd5b5061019c610aef565b3480156103a457600080fd5b506101c26103b3366004611586565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103ea57600080fd5b5061019c6103f93660046115bf565b610b93565b600061040b338484610bde565b5060015b92915050565b60006104236009600a6116d2565b610431906305f5e1006116e1565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156104bf5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104ca848484610d02565b6001600160a01b0384166000908152600260209081526040808320338085529252909120546105059186916105009086906116f8565b610bde565b5060019392505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038416906370a0823190602401602060405180830381865afa158015610558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057c919061170b565b9050801561040b576004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905284169063a9059cbb906044016020604051808303816000875af11580156105d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fd9190611724565b5050600192915050565b6000546001600160a01b031633146106315760405162461bcd60e51b81526004016104b690611746565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b031633146106a65760405162461bcd60e51b81526004016104b690611746565b506012805460ff60a81b19169055600190565b6000546001600160a01b031633146106e35760405162461bcd60e51b81526004016104b690611746565b601254600160a01b900460ff161561073d5760405162461bcd60e51b815260206004820152601b60248201527f696e697469616c697a6520697320616c7265616479206164646564000000000060448201526064016104b6565b600060646005546009600a61075291906116d2565b610760906305f5e1006116e1565b61076a91906116e1565b610774919061177b565b3060009081526001602052604090205461078e91906116f8565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506107da9030906107cc6009600a6116d2565b610500906305f5e1006116e1565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610851919061179d565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d7919061179d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610924573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610948919061179d565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730846000806109876000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109ef573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a1491906117ba565b505060125460115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190611724565b5050565b600061040b338484610d02565b6000478015610ae7576004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ae5573d6000803e3d6000fd5b505b600191505090565b600080546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016104b690611746565b601254600160a01b900460ff1615610b745760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b6565b506012805463ff0000ff60a01b1916630100000160a01b179055600190565b600080546001600160a01b03163314610bbe5760405162461bcd60e51b81526004016104b690611746565b600782905560088290556032821115610bd657600080fd5b506001919050565b6001600160a01b038316610c405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b6565b6001600160a01b038216610ca15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b6565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d665760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b6565b6001600160a01b038216610dc85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b6565b60008111610e2a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b6565b3060009081526001602052604081205481549091906001600160a01b03868116911614801590610e6857506000546001600160a01b03858116911614155b1561110157601254600160a01b900460ff16610f09576001600160a01b03851660009081526003602052604090205460ff1680610ebd57506001600160a01b03841660009081526003602052604090205460ff165b610f095760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206973206e6f7420796574206f70656e00000000000000000060448201526064016104b6565b6012546001600160a01b039081169086160361106b57601254600160a81b900460ff168015610f4657506011546001600160a01b03858116911614155b8015610f6b57506001600160a01b03841660009081526003602052604090205460ff16155b1561103d57600d54831115610fc25760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104b6565b600e5483610fe5866001600160a01b031660009081526001602052604090205490565b610fef91906117e8565b111561103d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b6565b61104f836001600954600c541161121c565b600c80549192506000611061836117fb565b9190505550611096565b6012546001600160a01b039081169085160361109657611093836000600a54600c541161121c565b90505b80156111015730600090815260016020526040812080548392906110bb9084906117e8565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6001600160a01b038516600090815260016020526040812080548592906111299084906116f8565b90915550611139905081846116f8565b6001600160a01b038516600090815260016020526040812080549091906111619084906117e8565b90915550506001600160a01b038085169086167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61119f84876116f8565b60405190815260200160405180910390a3600f54821180156111ce57506012546001600160a01b038581169116145b80156111e45750601254600160b01b900460ff16155b80156111f95750601254600160b81b900460ff165b80156112085750600b54600c54115b1561121557611215611270565b5050505050565b600080831561123d578261123257600554611236565b6007545b9050611251565b8261124a5760065461124e565b6008545b90505b606461125d82876116e1565b611267919061177b565b95945050505050565b6012805460ff60b01b1916600160b01b179055306000908152600160205260408120546010549091906112a4908390611304565b90506112af8161131c565b4780156112f2576004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156112f0573d6000803e3d6000fd5b505b50506012805460ff60b01b1916905550565b60008183116113135782611315565b815b9392505050565b6012805460ff60b01b1916600160b01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136457611364611814565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e1919061179d565b816001815181106113f4576113f4611814565b6001600160a01b03928316602091820292909201015260115461141a9130911684610bde565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061145390859060009086903090429060040161182a565b600060405180830381600087803b15801561146d57600080fd5b505af1158015611481573d6000803e3d6000fd5b50506012805460ff60b01b1916905550505050565b600060208083528351808285015260005b818110156114c3578581018301518582016040015282016114a7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114f957600080fd5b50565b6000806040838503121561150f57600080fd5b823561151a816114e4565b946020939093013593505050565b60008060006060848603121561153d57600080fd5b8335611548816114e4565b92506020840135611558816114e4565b929592945050506040919091013590565b60006020828403121561157b57600080fd5b8135611315816114e4565b6000806040838503121561159957600080fd5b82356115a4816114e4565b915060208301356115b4816114e4565b809150509250929050565b6000602082840312156115d157600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561162957816000190482111561160f5761160f6115d8565b8085161561161c57918102915b93841c93908002906115f3565b509250929050565b6000826116405750600161040f565b8161164d5750600061040f565b8160018114611663576002811461166d57611689565b600191505061040f565b60ff84111561167e5761167e6115d8565b50506001821b61040f565b5060208310610133831016604e8410600b84101617156116ac575081810a61040f565b6116b683836115ee565b80600019048211156116ca576116ca6115d8565b029392505050565b600061131560ff841683611631565b808202811582820484141761040f5761040f6115d8565b8181038181111561040f5761040f6115d8565b60006020828403121561171d57600080fd5b5051919050565b60006020828403121561173657600080fd5b8151801515811461131557600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261179857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156117af57600080fd5b8151611315816114e4565b6000806000606084860312156117cf57600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561040f5761040f6115d8565b60006001820161180d5761180d6115d8565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561187a5784516001600160a01b031683529383019391830191600101611855565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122018417c42a6dc69f191bbc8db86aa6b8f4fba22d3abcaadb2a9ccdfa8e590d1c664736f6c63430008130033

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

0000000000000000000000008f7f777f3cadb61f2474c6cb6d835c83ab31918e

-----Decoded View---------------
Arg [0] : taxWalletAddress (address): 0x8F7f777f3cADb61f2474C6Cb6d835c83AB31918e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008f7f777f3cadb61f2474c6cb6d835c83ab31918e


Deployed Bytecode Sourcemap

4019:13089:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6106:83;;;;;;;;;;-1:-1:-1;6176:5:0;;;;;;;;;;;;-1:-1:-1;;;6176:5:0;;;;6106:83;;;;;;;:::i;:::-;;;;;;;;8016:161;;;;;;;;;;-1:-1:-1;8016:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8016:161:0;1023:187:1;5246:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5246:52:0;1215:177:1;6609:100:0;;;;;;;;;;;;;:::i;8544:373::-;;;;;;;;;;-1:-1:-1;8544:373:0;;;;;:::i;:::-;;:::i;16709:294::-;;;;;;;;;;-1:-1:-1;16709:294:0;;;;;:::i;:::-;;:::i;6455:83::-;;;;;;;;;;-1:-1:-1;6455:83:0;;4978:1;2252:36:1;;2240:2;2225:18;6455:83:0;2110:184:1;6854:119:0;;;;;;;;;;-1:-1:-1;6854:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6947:18:0;6920:7;6947:18;;;:9;:18;;;;;;;6854:119;2791:148;;;;;;;;;;;;;:::i;:::-;;15041:118;;;;;;;;;;;;;:::i;5060:53::-;;;;;;;;;;;;;;;;13889:931;;;;;;;;;;;;;:::i;2149:79::-;;;;;;;;;;-1:-1:-1;2187:7:0;2214:6;2149:79;;-1:-1:-1;;;;;2214:6:0;;;2445:51:1;;2433:2;2418:18;2149:79:0;2299:203:1;5120:55:0;;;;;;;;;;;;;;;;6261:87;;;;;;;;;;-1:-1:-1;6333:7:0;;;;;;;;;;;;-1:-1:-1;;;6333:7:0;;;;6261:87;;7159:167;;;;;;;;;;-1:-1:-1;7159:167:0;;;;;:::i;:::-;;:::i;16214:220::-;;;;;;;;;;;;;:::i;5182:57::-;;;;;;;;;;;;;;;;15811:204;;;;;;;;;;;;;:::i;7648:143::-;;;;;;;;;;-1:-1:-1;7648:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7756:18:0;;;7729:7;7756:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7648:143;15418:202;;;;;;;;;;-1:-1:-1;15418:202:0;;;;;:::i;:::-;;:::i;8016:161::-;8091:4;8108:39;800:10;8131:7;8140:6;8108:8;:39::i;:::-;-1:-1:-1;8165:4:0;8016:161;;;;;:::o;6609:100::-;6662:7;5038:13;4978:1;5038:2;:13;:::i;:::-;5026:25;;:9;:25;:::i;:::-;6682:19;;6609:100;:::o;8544:373::-;-1:-1:-1;;;;;8667:19:0;;8642:4;8667:19;;;:11;:19;;;;;;;;800:10;8667:33;;;;;;;;:43;-1:-1:-1;8667:43:0;8659:96;;;;-1:-1:-1;;;8659:96:0;;4975:2:1;8659:96:0;;;4957:21:1;5014:2;4994:18;;;4987:30;5053:34;5033:18;;;5026:62;-1:-1:-1;;;5104:18:1;;;5097:38;5152:19;;8659:96:0;;;;;;;;;8766:36;8776:6;8784:9;8795:6;8766:9;:36::i;:::-;-1:-1:-1;;;;;8844:19:0;;;;;;:11;:19;;;;;;;;800:10;8844:33;;;;;;;;;8813:74;;8822:6;;8844:42;;8880:6;;8844:42;:::i;:::-;8813:8;:74::i;:::-;-1:-1:-1;8905:4:0;8544:373;;;;;:::o;16709:294::-;16814:45;;-1:-1:-1;;;16814:45:0;;16853:4;16814:45;;;2445:51:1;16774:4:0;;;;-1:-1:-1;;;;;16814:30:0;;;;;2418:18:1;;16814:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16791:68;-1:-1:-1;16874:16:0;;16870:104;;16937:10;;;16907:55;;-1:-1:-1;;;16907:55:0;;-1:-1:-1;;;;;16937:10:0;;;16907:55;;;5686:51:1;;;;5753:18;;;5746:34;;;16907:29:0;;;;;5659:18:1;;16907:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;16991:4:0;;16709:294;-1:-1:-1;;16709:294:0:o;2791:148::-;2361:6;;-1:-1:-1;;;;;2361:6:0;800:10;2361:22;2353:67;;;;-1:-1:-1;;;2353:67:0;;;;;;;:::i;:::-;2898:1:::1;2882:6:::0;;2861:40:::1;::::0;-1:-1:-1;;;;;2882:6:0;;::::1;::::0;2861:40:::1;::::0;2898:1;;2861:40:::1;2929:1;2912:19:::0;;-1:-1:-1;;;;;;2912:19:0::1;::::0;;2791:148::o;15041:118::-;15093:4;2361:6;;-1:-1:-1;;;;;2361:6:0;800:10;2361:22;2353:67;;;;-1:-1:-1;;;2353:67:0;;;;;;;:::i;:::-;-1:-1:-1;15110:11:0::1;:19:::0;;-1:-1:-1;;;;15110:19:0::1;::::0;;;15041:118;:::o;13889:931::-;2361:6;;-1:-1:-1;;;;;2361:6:0;800:10;2361:22;2353:67;;;;-1:-1:-1;;;2353:67:0;;;;;;;:::i;:::-;13952:11:::1;::::0;-1:-1:-1;;;13952:11:0;::::1;;;13951:12;13943:52;;;::::0;-1:-1:-1;;;13943:52:0;;6636:2:1;13943:52:0::1;::::0;::::1;6618:21:1::0;6675:2;6655:18;;;6648:30;6714:29;6694:18;;;6687:57;6761:18;;13943:52:0::1;6434:351:1::0;13943:52:0::1;14063:19;14148:3;14128:17;;4978:1;5038:2;:13;;;;:::i;:::-;5026:25;::::0;:9:::1;:25;:::i;:::-;14113:32;;;;:::i;:::-;:38;;;;:::i;:::-;14103:4;6920:7:::0;6947:18;;;:9;:18;;;;;;14085:67:::1;;;;:::i;:::-;14165:15;:60:::0;;-1:-1:-1;;;;;;14165:60:0::1;4421:42;14165:60:::0;;::::1;::::0;;;14063:89;;-1:-1:-1;14236:63:0::1;::::0;14253:4:::1;::::0;5038:13:::1;4978:1;5038:2;:13;:::i;:::-;5026:25;::::0;:9:::1;:25;:::i;14236:63::-;14344:15;;;;;;;;;-1:-1:-1::0;;;;;14344:15:0::1;-1:-1:-1::0;;;;;14344:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14326:55:0::1;;14404:4;14425:15;;;;;;;;;-1:-1:-1::0;;;;;14425:15:0::1;-1:-1:-1::0;;;;;14425:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14326:132;::::0;-1:-1:-1;;;;;;14326:132:0::1;::::0;;;;;;-1:-1:-1;;;;;7498:15:1;;;14326:132:0::1;::::0;::::1;7480:34:1::0;7550:15;;7530:18;;;7523:43;7415:18;;14326:132:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14310:13;:148:::0;;-1:-1:-1;;;;;14310:148:0;;::::1;-1:-1:-1::0;;;;;;14310:148:0;;::::1;;::::0;;14471:15:::1;::::0;::::1;:31;14510:21;14556:4;14576:11:::0;14310:13:::1;::::0;14680:7:::1;2187::::0;2214:6;-1:-1:-1;;;;;2214:6:0;;2149:79;14680:7:::1;14471:257;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14471:257:0;;;-1:-1:-1;;;;;7936:15:1;;;14471:257:0::1;::::0;::::1;7918:34:1::0;7968:18;;;7961:34;;;;8011:18;;;8004:34;;;;8054:18;;;8047:34;8118:15;;;8097:19;;;8090:44;14702:15:0::1;8150:19:1::0;;;8143:35;7852:19;;14471:257:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14748:13:0::1;::::0;14779:15:::1;::::0;14741:71:::1;::::0;-1:-1:-1;;;14741:71:0;;-1:-1:-1;;;;;14779:15:0;;::::1;14741:71;::::0;::::1;5686:51:1::0;-1:-1:-1;;5753:18:1;;;5746:34;14748:13:0;::::1;::::0;-1:-1:-1;14741:29:0::1;::::0;5659:18:1;;14741:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13932:888;13889:931::o:0;7159:167::-;7237:4;7254:42;800:10;7278:9;7289:6;7254:9;:42::i;16214:220::-;16257:4;16295:21;16331:14;;16327:78;;16362:10;;:31;;-1:-1:-1;;;;;16362:10:0;;;;:31;;;;;16382:10;;16362;:31;:10;:31;16382:10;16362;:31;;;;;;;;;;;;;;;;;;;;;16327:78;16422:4;16415:11;;;16214:220;:::o;15811:204::-;15862:4;2361:6;;-1:-1:-1;;;;;2361:6:0;800:10;2361:22;2353:67;;;;-1:-1:-1;;;2353:67:0;;;;;;;:::i;:::-;15888:11:::1;::::0;-1:-1:-1;;;15888:11:0;::::1;;;15887:12;15879:48;;;::::0;-1:-1:-1;;;15879:48:0;;8981:2:1;15879:48:0::1;::::0;::::1;8963:21:1::0;9020:2;9000:18;;;8993:30;9059:25;9039:18;;;9032:53;9102:18;;15879:48:0::1;8779:347:1::0;15879:48:0::1;-1:-1:-1::0;15938:11:0::1;:18:::0;;-1:-1:-1;;;;15967:18:0;-1:-1:-1;;;15967:18:0;;;-1:-1:-1;;15811:204:0:o;15418:202::-;15481:4;2361:6;;-1:-1:-1;;;;;2361:6:0;800:10;2361:22;2353:67;;;;-1:-1:-1;;;2353:67:0;;;;;;;:::i;:::-;15498:15:::1;:24:::0;;;15533:16:::1;:25:::0;;;15587:2:::1;15577:12:::0;::::1;;15569:21;;;::::0;::::1;;-1:-1:-1::0;15608:4:0::1;15418:202:::0;;;:::o;9198:335::-;-1:-1:-1;;;;;9291:19:0;;9283:68;;;;-1:-1:-1;;;9283:68:0;;9333:2:1;9283:68:0;;;9315:21:1;9372:2;9352:18;;;9345:30;9411:34;9391:18;;;9384:62;-1:-1:-1;;;9462:18:1;;;9455:34;9506:19;;9283:68:0;9131:400:1;9283:68:0;-1:-1:-1;;;;;9370:21:0;;9362:68;;;;-1:-1:-1;;;9362:68:0;;9738:2:1;9362:68:0;;;9720:21:1;9777:2;9757:18;;;9750:30;9816:34;9796:18;;;9789:62;-1:-1:-1;;;9867:18:1;;;9860:32;9909:19;;9362:68:0;9536:398:1;9362:68:0;-1:-1:-1;;;;;9441:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9493:32;;1361:25:1;;;9493:32:0;;1334:18:1;9493:32:0;;;;;;;9198:335;;;:::o;9781:1881::-;-1:-1:-1;;;;;9869:18:0;;9861:68;;;;-1:-1:-1;;;9861:68:0;;10141:2:1;9861:68:0;;;10123:21:1;10180:2;10160:18;;;10153:30;10219:34;10199:18;;;10192:62;-1:-1:-1;;;10270:18:1;;;10263:35;10315:19;;9861:68:0;9939:401:1;9861:68:0;-1:-1:-1;;;;;9948:16:0;;9940:64;;;;-1:-1:-1;;;9940:64:0;;10547:2:1;9940:64:0;;;10529:21:1;10586:2;10566:18;;;10559:30;10625:34;10605:18;;;10598:62;-1:-1:-1;;;10676:18:1;;;10669:33;10719:19;;9940:64:0;10345:399:1;9940:64:0;10032:1;10023:6;:10;10015:64;;;;-1:-1:-1;;;10015:64:0;;10951:2:1;10015:64:0;;;10933:21:1;10990:2;10970:18;;;10963:30;11029:34;11009:18;;;11002:62;-1:-1:-1;;;11080:18:1;;;11073:39;11129:19;;10015:64:0;10749:405:1;10015:64:0;10141:4;10092:28;6947:18;;;:9;:18;;;;;;2214:6;;6947:18;;10092:28;-1:-1:-1;;;;;10204:15:0;;;2214:6;;10204:15;;;;:32;;-1:-1:-1;2187:7:0;2214:6;-1:-1:-1;;;;;10223:13:0;;;2214:6;;10223:13;;10204:32;10200:1123;;;10260:11;;-1:-1:-1;;;10260:11:0;;;;10255:197;;-1:-1:-1;;;;;10321:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;10349:22:0;;;;;;:18;:22;;;;;;;;10321:50;10292:144;;;;-1:-1:-1;;;10292:144:0;;11361:2:1;10292:144:0;;;11343:21:1;11400:2;11380:18;;;11373:30;11439:25;11419:18;;;11412:53;11482:18;;10292:144:0;11159:347:1;10292:144:0;10476:13;;-1:-1:-1;;;;;10476:13:0;;;10468:21;;;;10464:679;;10552:11;;-1:-1:-1;;;10552:11:0;;;;:45;;;;-1:-1:-1;10581:15:0;;-1:-1:-1;;;;;10567:30:0;;;10581:15;;10567:30;;10552:45;:73;;;;-1:-1:-1;;;;;;10603:22:0;;;;;;:18;:22;;;;;;;;10601:24;10552:73;10548:272;;;10664:12;;10654:6;:22;;10646:60;;;;-1:-1:-1;;;10646:60:0;;11713:2:1;10646:60:0;;;11695:21:1;11752:2;11732:18;;;11725:30;11791:27;11771:18;;;11764:55;11836:18;;10646:60:0;11511:349:1;10646:60:0;10759:14;;10749:6;10733:13;10743:2;-1:-1:-1;;;;;6947:18:0;6920:7;6947:18;;;:9;:18;;;;;;;6854:119;10733:13;:22;;;;:::i;:::-;:40;;10725:79;;;;-1:-1:-1;;;10725:79:0;;12197:2:1;10725:79:0;;;12179:21:1;12236:2;12216:18;;;12209:30;12275:28;12255:18;;;12248:56;12321:18;;10725:79:0;11995:350:1;10725:79:0;10847:69;10860:6;10868:4;10891:24;;10874:14;;:41;10847:12;:69::i;:::-;10931:14;:16;;10835:81;;-1:-1:-1;10931:14:0;:16;;;:::i;:::-;;;;;;10464:679;;;10975:13;;-1:-1:-1;;;;;10975:13:0;;;10969:19;;;;10965:178;;11060:71;11073:6;11081:5;11105:25;;11088:14;;:42;11060:12;:71::i;:::-;11048:83;;10965:178;11161:13;;11157:155;;11213:4;11195:24;;;;:9;:24;;;;;:37;;11223:9;;11195:24;:37;;11223:9;;11195:37;:::i;:::-;;;;-1:-1:-1;;11256:40:0;;1361:25:1;;;11279:4:0;;-1:-1:-1;;;;;11256:40:0;;;;;1349:2:1;1334:18;11256:40:0;;;;;;;11157:155;-1:-1:-1;;;;;11335:15:0;;;;;;:9;:15;;;;;:25;;11354:6;;11335:15;:25;;11354:6;;11335:25;:::i;:::-;;;;-1:-1:-1;11388:18:0;;-1:-1:-1;11397:9:0;11388:6;:18;:::i;:::-;-1:-1:-1;;;;;11371:13:0;;;;;;:9;:13;;;;;:35;;:13;;;:35;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;11422:38:0;;;;;;;11441:18;11450:9;11441:6;:18;:::i;:::-;11422:38;;1361:25:1;;;1349:2;1334:18;11422:38:0;;;;;;;11500:17;;11477:20;:40;:63;;;;-1:-1:-1;11527:13:0;;-1:-1:-1;;;;;11521:19:0;;;11527:13;;11521:19;11477:63;:74;;;;-1:-1:-1;11545:6:0;;-1:-1:-1;;;11545:6:0;;;;11544:7;11477:74;:89;;;;-1:-1:-1;11555:11:0;;-1:-1:-1;;;11555:11:0;;;;11477:89;:131;;;;;11587:21;;11570:14;;:38;11477:131;11473:182;;;11625:18;:16;:18::i;:::-;9850:1812;;9781:1881;;;:::o;11939:364::-;12025:7;12045:15;12075:5;12071:183;;;12107:7;:45;;12135:17;;12107:45;;;12117:15;;12107:45;12097:55;;12071:183;;;12195:7;:47;;12224:18;;12195:47;;;12205:16;;12195:47;12185:57;;12071:183;12292:3;12272:16;12281:7;12272:6;:16;:::i;:::-;12271:24;;;;:::i;:::-;12264:31;11939:364;-1:-1:-1;;;;;11939:364:0:o;12402:400::-;5570:6;:13;;-1:-1:-1;;;;5570:13:0;-1:-1:-1;;;5570:13:0;;;12510:4:::1;5570:13:::0;12492:24;;;5579:4;12492:24:::1;::::0;;;;;12576:11:::1;::::0;12492:24;;5570:13;12550:38:::1;::::0;12492:24;;12550:3:::1;:38::i;:::-;12527:61;;12599:30;12616:12;12599:16;:30::i;:::-;12669:21;12705:22:::0;;12701:94:::1;;12744:10;::::0;:39:::1;::::0;-1:-1:-1;;;;;12744:10:0;;::::1;::::0;:39;::::1;;;::::0;12764:18;;12744:10:::1;:39:::0;:10;:39;12764:18;12744:10;:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12701:94;-1:-1:-1::0;;5606:6:0;:14;;-1:-1:-1;;;;5606:14:0;;;-1:-1:-1;12402:400:0:o;12996:107::-;13053:7;13085:1;13081;:5;13080:15;;13094:1;13080:15;;;13090:1;13080:15;13073:22;12996:107;-1:-1:-1;;;12996:107:0:o;13249:483::-;5570:6;:13;;-1:-1:-1;;;;5570:13:0;-1:-1:-1;;;5570:13:0;;;13351:16:::1;::::0;;13365:1:::1;13351:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13351:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13351:16:0::1;13327:40;;13396:4;13378;13383:1;13378:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13378:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13422:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13422:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13378:7;;13422:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13412:4;13417:1;13412:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13412:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13487:15:::1;::::0;13455:62:::1;::::0;13472:4:::1;::::0;13487:15:::1;13505:11:::0;13455:8:::1;:62::i;:::-;13528:15;::::0;:196:::1;::::0;-1:-1:-1;;;13528:196:0;;-1:-1:-1;;;;;13528:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13609:11;;13528:15:::1;::::0;13651:4;;13678::::1;::::0;13698:15:::1;::::0;13528:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5606:6:0;:14;;-1:-1:-1;;;;5606:14:0;;;-1:-1:-1;;;;13249:483:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:127::-;3146:10;3141:3;3137:20;3134:1;3127:31;3177:4;3174:1;3167:15;3201:4;3198:1;3191:15;3217:422;3306:1;3349:5;3306:1;3363:270;3384:7;3374:8;3371:21;3363:270;;;3443:4;3439:1;3435:6;3431:17;3425:4;3422:27;3419:53;;;3452:18;;:::i;:::-;3502:7;3492:8;3488:22;3485:55;;;3522:16;;;;3485:55;3601:22;;;;3561:15;;;;3363:270;;;3367:3;3217:422;;;;;:::o;3644:806::-;3693:5;3723:8;3713:80;;-1:-1:-1;3764:1:1;3778:5;;3713:80;3812:4;3802:76;;-1:-1:-1;3849:1:1;3863:5;;3802:76;3894:4;3912:1;3907:59;;;;3980:1;3975:130;;;;3887:218;;3907:59;3937:1;3928:10;;3951:5;;;3975:130;4012:3;4002:8;3999:17;3996:43;;;4019:18;;:::i;:::-;-1:-1:-1;;4075:1:1;4061:16;;4090:5;;3887:218;;4189:2;4179:8;4176:16;4170:3;4164:4;4161:13;4157:36;4151:2;4141:8;4138:16;4133:2;4127:4;4124:12;4120:35;4117:77;4114:159;;;-1:-1:-1;4226:19:1;;;4258:5;;4114:159;4305:34;4330:8;4324:4;4305:34;:::i;:::-;4375:6;4371:1;4367:6;4363:19;4354:7;4351:32;4348:58;;;4386:18;;:::i;:::-;4424:20;;3644:806;-1:-1:-1;;;3644:806:1:o;4455:140::-;4513:5;4542:47;4583:4;4573:8;4569:19;4563:4;4542:47;:::i;4600:168::-;4673:9;;;4704;;4721:15;;;4715:22;;4701:37;4691:71;;4742:18;;:::i;5182:128::-;5249:9;;;5270:11;;;5267:37;;;5284:18;;:::i;5315:184::-;5385:6;5438:2;5426:9;5417:7;5413:23;5409:32;5406:52;;;5454:1;5451;5444:12;5406:52;-1:-1:-1;5477:16:1;;5315:184;-1:-1:-1;5315:184:1:o;5791:277::-;5858:6;5911:2;5899:9;5890:7;5886:23;5882:32;5879:52;;;5927:1;5924;5917:12;5879:52;5959:9;5953:16;6012:5;6005:13;5998:21;5991:5;5988:32;5978:60;;6034:1;6031;6024:12;6073:356;6275:2;6257:21;;;6294:18;;;6287:30;6353:34;6348:2;6333:18;;6326:62;6420:2;6405:18;;6073:356::o;6790:217::-;6830:1;6856;6846:132;;6900:10;6895:3;6891:20;6888:1;6881:31;6935:4;6932:1;6925:15;6963:4;6960:1;6953:15;6846:132;-1:-1:-1;6992:9:1;;6790:217::o;7012:251::-;7082:6;7135:2;7123:9;7114:7;7110:23;7106:32;7103:52;;;7151:1;7148;7141:12;7103:52;7183:9;7177:16;7202:31;7227:5;7202:31;:::i;8189:306::-;8277:6;8285;8293;8346:2;8334:9;8325:7;8321:23;8317:32;8314:52;;;8362:1;8359;8352:12;8314:52;8391:9;8385:16;8375:26;;8441:2;8430:9;8426:18;8420:25;8410:35;;8485:2;8474:9;8470:18;8464:25;8454:35;;8189:306;;;;;:::o;11865:125::-;11930:9;;;11951:10;;;11948:36;;;11964:18;;:::i;12350:135::-;12389:3;12410:17;;;12407:43;;12430:18;;:::i;:::-;-1:-1:-1;12477:1:1;12466:13;;12350:135::o;12622:127::-;12683:10;12678:3;12674:20;12671:1;12664:31;12714:4;12711:1;12704:15;12738:4;12735:1;12728:15;12754:980;13016:4;13064:3;13053:9;13049:19;13095:6;13084:9;13077:25;13121:2;13159:6;13154:2;13143:9;13139:18;13132:34;13202:3;13197:2;13186:9;13182:18;13175:31;13226:6;13261;13255:13;13292:6;13284;13277:22;13330:3;13319:9;13315:19;13308:26;;13369:2;13361:6;13357:15;13343:29;;13390:1;13400:195;13414:6;13411:1;13408:13;13400:195;;;13479:13;;-1:-1:-1;;;;;13475:39:1;13463:52;;13570:15;;;;13535:12;;;;13511:1;13429:9;13400:195;;;-1:-1:-1;;;;;;;13651:32:1;;;;13646:2;13631:18;;13624:60;-1:-1:-1;;;13715:3:1;13700:19;13693:35;13612:3;12754:980;-1:-1:-1;;;12754:980:1:o

Swarm Source

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