ETH Price: $3,679.43 (+1.22%)

Token

ERC-20: OrieN (ORIEN)
 

Overview

Max Total Supply

1,000,000,000 ORIEN

Holders

2

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
ORIENToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

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

interface DexRouterV2 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract ORIENToken is ERC20, Ownable {
    DexRouterV2 public router;
    address public lpPair;

    mapping (address => bool) public excludedFromFees;

    uint256 public sellTax;
    uint256 public buyTax;
    address public taxWallet;
    bool public tradingEnabled = false;
    address private taxOwner;

    uint256 public swapTokensAtAmount;
    bool public swapWithLimit;
    bool private swapping;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event TaxWalletChanged(address taxWallet);
    event SellTaxChanged(uint256 sellTax);
    event BuyTaxChanged(uint256 buyTax);
    event SwapAndSendTax(uint256 tokensSwapped, uint256 bnbSend);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);

    constructor () ERC20("OrieN", "ORIEN") 
    {   
        transferOwnership(0x3ff12932aC28Db1c156d517C5f36D76445CcF7BE);
        address _router;
        if (block.chainid == 1) {
            _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Ethereum Uniswap Router
        } else if(block.chainid == 11155111){
            _router = 0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008;
        } else {
            revert("Chain ID not supported");
        }

        router = DexRouterV2(_router);
        lpPair = DexFactory(router.factory()).createPair(address(this), router.WETH());

        _approve(address(this), address(router), type(uint256).max);

        sellTax = 3;
        buyTax = 3;
        taxWallet = 0x6CA9dEc02FC01b06496596e48757DFa52285b911;
        taxOwner = owner();

        excludedFromFees[owner()] = true;
        excludedFromFees[address(0xdead)] = true;
        excludedFromFees[address(this)] = true;
        excludedFromFees[taxWallet] = true;

        _mint(owner(), 1e9 * (10 ** decimals()));
        swapTokensAtAmount = totalSupply() / 5000;
    }

    receive() external payable {}

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "Owner cannot claim contract's balance of its own tokens");
        if (token == address(0x0)) {
            payable(msg.sender).transfer(address(this).balance);
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner{
        require(excludedFromFees[account] != excluded,"Account is already the value of 'excluded'");
        excludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setSellTax(uint256 newTax) external onlyOwner {
        require(newTax <= 3, "Tax cannot be more than 3%");
        require(newTax != sellTax, "Tax is already set to that value");
        sellTax = newTax;
        emit SellTaxChanged(sellTax);
    }

    function setBuyTax(uint256 newTax) external onlyOwner {
        require(newTax <= 3, "Tax cannot be more than 3%");
        require(newTax != buyTax, "Tax is already set to that value");
        buyTax = newTax;
        emit BuyTaxChanged(buyTax);
    }

    function setTaxWallet(address newWallet) external onlyOwner {
        require(newWallet != taxWallet, "Wallet is already set to that address");
        require(newWallet != address(0), "Wallet cannot be the zero address");
        taxWallet = newWallet;
        emit TaxWalletChanged(taxWallet);
    }

    function setTaxesToZero() external {
        require(msg.sender == owner() || msg.sender == taxOwner, "Only owner or tax owner can call this function");
        sellTax = 0;
        buyTax = 0;
    }

    function setTaxOwner(address newOwner) external onlyOwner {
        require(msg.sender == owner() || msg.sender == taxOwner, "Only owner or tax owner can call this function");
        taxOwner = newOwner;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
    }

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tradingEnabled || excludedFromFees[from] || excludedFromFees[to], "Trading is not enabled yet");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            to == lpPair
        ) {
            swapping = true;

            if (swapWithLimit) {
                contractTokenBalance = swapTokensAtAmount;
            }
            
            swapAndSendTax(contractTokenBalance);          

            swapping = false;
        }

        uint256 _tax;
        if (!excludedFromFees[from] && !excludedFromFees[to] && !swapping && to == lpPair) {
            _tax = sellTax;
        } else if (!excludedFromFees[from] && !excludedFromFees[to] && !swapping && from == lpPair) {
            _tax = buyTax;
        }

        if (_tax > 0) {
            uint256 fees = (amount * _tax) / 100;
            amount -= fees;
            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
    }

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner{
        swapTokensAtAmount = newAmount;
        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
    }

    function setSwapWithLimit(bool _swapWithLimit) external onlyOwner {
        swapWithLimit = _swapWithLimit;
    }

    function swapAndSendTax(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);

        uint256 newBalance = address(this).balance - initialBalance;

        payable(taxWallet).transfer(newBalance);

        emit SwapAndSendTax(tokenAmount, newBalance);
    }
}

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":false,"internalType":"uint256","name":"buyTax","type":"uint256"}],"name":"BuyTaxChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"sellTax","type":"uint256"}],"name":"SellTaxChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"taxWallet","type":"address"}],"name":"TaxWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapWithLimit","type":"bool"}],"name":"setSwapWithLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setTaxOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTaxesToZero","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapWithLimit","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":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600b805460ff60a01b191690553480156200001e57600080fd5b506040518060400160405280600581526020016427b934b2a760d91b8152506040518060400160405280600581526020016427a924a2a760d91b81525081600390816200006c91906200081a565b5060046200007b82826200081a565b5050506000620000906200045260201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062002839833981519152908290a350620000ec733ff12932ac28db1c156d517c5f36d76445ccf7be62000456565b600046600103620001135750737a250d5630b4cf539739df2c5dacb4c659f2488d62000187565b4662aa36a7036200013a575073c532a74256d3db42d0bf7a0400fefdbad769400862000187565b60405162461bcd60e51b815260206004820152601660248201527f436861696e204944206e6f7420737570706f727465640000000000000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002079190620008e6565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002909190620008e6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003049190620008e6565b600780546001600160a01b0319166001600160a01b03928316179055600654620003349130911660001962000564565b60036009819055600a55600b80546001600160a01b031916736ca9dec02fc01b06496596e48757dfa52285b911179055620003776005546001600160a01b031690565b600c80546001600160a01b0319166001600160a01b03928316179055600580548216600090815260086020526040808220805460ff1990811660019081179092557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548216831790553084528284208054821683179055600b54861684529190922080549091169091179055546200042f9116620004196012600a62000a2d565b6200042990633b9aca0062000a3e565b6200068c565b6113886200043c60025490565b62000448919062000a58565b600d555062000a91565b3390565b6005546001600160a01b03163314620004b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200017e565b6001600160a01b038116620005195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200017e565b6005546040516001600160a01b038084169216906000805160206200283983398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316620005c85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200017e565b6001600160a01b0382166200062b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200017e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620006e45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200017e565b8060026000828254620006f8919062000a7b565b90915550506001600160a01b038216600090815260208190526040812080548392906200072790849062000a7b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007a157607f821691505b602082108103620007c257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200077157600081815260208120601f850160051c81016020861015620007f15750805b601f850160051c820191505b818110156200081257828155600101620007fd565b505050505050565b81516001600160401b0381111562000836576200083662000776565b6200084e816200084784546200078c565b84620007c8565b602080601f8311600181146200088657600084156200086d5750858301515b600019600386901b1c1916600185901b17855562000812565b600085815260208120601f198616915b82811015620008b75788860151825594840194600190910190840162000896565b5085821015620008d65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008f957600080fd5b81516001600160a01b03811681146200091157600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200096f57816000190482111562000953576200095362000918565b808516156200096157918102915b93841c939080029062000933565b509250929050565b600082620009885750600162000a27565b81620009975750600062000a27565b8160018114620009b05760028114620009bb57620009db565b600191505062000a27565b60ff841115620009cf57620009cf62000918565b50506001821b62000a27565b5060208310610133831016604e8410600b841016171562000a00575081810a62000a27565b62000a0c83836200092e565b806000190482111562000a235762000a2362000918565b0290505b92915050565b60006200091160ff84168362000977565b808202811582820484141762000a275762000a2762000918565b60008262000a7657634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000a275762000a2762000918565b611d988062000aa16000396000f3fe6080604052600436106101f25760003560e01c80638cd09d501161010d578063cc1776d3116100a0578063e2f456051161006f578063e2f45605146105b3578063ea414b28146105c9578063f2fde38b146105e9578063f887ea4014610609578063f9d0831a1461062957600080fd5b8063cc1776d314610507578063dbe66ca01461051d578063dc1052e21461054d578063dd62ed3e1461056d57600080fd5b8063a457c2d7116100dc578063a457c2d714610487578063a9059cbb146104a7578063afa4f3b2146104c7578063c0246668146104e757600080fd5b80638cd09d50146104145780638da5cb5b1461043457806395d89b4114610452578063988be1181461046757600080fd5b80633cafaea1116101855780634f7041a5116101545780634f7041a51461039e57806370a08231146103b4578063715018a6146103ea5780638a8c523c146103ff57600080fd5b80633cafaea114610323578063452ed4f114610343578063488eb37f146103635780634ada218b1461037d57600080fd5b80632dc0562d116101c15780632dc0562d14610298578063313ce567146102d057806339509351146102ec5780633bd08f4f1461030c57600080fd5b806306fdde03146101fe578063095ea7b31461022957806318160ddd1461025957806323b872dd1461027857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50610213610649565b604051610220919061192f565b60405180910390f35b34801561023557600080fd5b50610249610244366004611992565b6106db565b6040519015158152602001610220565b34801561026557600080fd5b506002545b604051908152602001610220565b34801561028457600080fd5b506102496102933660046119be565b6106f2565b3480156102a457600080fd5b50600b546102b8906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156102dc57600080fd5b5060405160128152602001610220565b3480156102f857600080fd5b50610249610307366004611992565b6107a8565b34801561031857600080fd5b506103216107e4565b005b34801561032f57600080fd5b5061032161033e3660046119ff565b61082f565b34801561034f57600080fd5b506007546102b8906001600160a01b031681565b34801561036f57600080fd5b50600e546102499060ff1681565b34801561038957600080fd5b50600b5461024990600160a01b900460ff1681565b3480156103aa57600080fd5b5061026a600a5481565b3480156103c057600080fd5b5061026a6103cf3660046119ff565b6001600160a01b031660009081526020819052604090205490565b3480156103f657600080fd5b506103216108ba565b34801561040b57600080fd5b5061032161092e565b34801561042057600080fd5b5061032161042f366004611a23565b6109c7565b34801561044057600080fd5b506005546001600160a01b03166102b8565b34801561045e57600080fd5b50610213610acf565b34801561047357600080fd5b50610321610482366004611a4a565b610ade565b34801561049357600080fd5b506102496104a2366004611992565b610b1b565b3480156104b357600080fd5b506102496104c2366004611992565b610bb4565b3480156104d357600080fd5b506103216104e2366004611a23565b610bc1565b3480156104f357600080fd5b50610321610502366004611a67565b610c20565b34801561051357600080fd5b5061026a60095481565b34801561052957600080fd5b506102496105383660046119ff565b60086020526000908152604090205460ff1681565b34801561055957600080fd5b50610321610568366004611a23565b610d2c565b34801561057957600080fd5b5061026a610588366004611aa0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105bf57600080fd5b5061026a600d5481565b3480156105d557600080fd5b506103216105e43660046119ff565b610e2d565b3480156105f557600080fd5b506103216106043660046119ff565b610f70565b34801561061557600080fd5b506006546102b8906001600160a01b031681565b34801561063557600080fd5b506103216106443660046119ff565b61105b565b60606003805461065890611ace565b80601f016020809104026020016040519081016040528092919081815260200182805461068490611ace565b80156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b5050505050905090565b60006106e8338484611229565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461079257828110156107855760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107928533858403611229565b61079d85858561134d565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106e89185906107df908690611b1e565b611229565b6005546001600160a01b03163314806108075750600c546001600160a01b031633145b6108235760405162461bcd60e51b815260040161077c90611b31565b60006009819055600a55565b6005546001600160a01b031633146108595760405162461bcd60e51b815260040161077c90611b7f565b6005546001600160a01b031633148061087c5750600c546001600160a01b031633145b6108985760405162461bcd60e51b815260040161077c90611b31565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146108e45760405162461bcd60e51b815260040161077c90611b7f565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146109585760405162461bcd60e51b815260040161077c90611b7f565b600b54600160a01b900460ff16156109b25760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161077c565b600b805460ff60a01b1916600160a01b179055565b6005546001600160a01b031633146109f15760405162461bcd60e51b815260040161077c90611b7f565b6003811115610a425760405162461bcd60e51b815260206004820152601a60248201527f5461782063616e6e6f74206265206d6f7265207468616e203325000000000000604482015260640161077c565b6009548103610a935760405162461bcd60e51b815260206004820181905260248201527f54617820697320616c72656164792073657420746f20746861742076616c7565604482015260640161077c565b60098190556040518181527f7b35389f1787a861bdc1e2bf41902b73d5b1b2aca5a7c0468edbd2b1885a5c6a906020015b60405180910390a150565b60606004805461065890611ace565b6005546001600160a01b03163314610b085760405162461bcd60e51b815260040161077c90611b7f565b600e805460ff1916911515919091179055565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b9d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161077c565b610baa3385858403611229565b5060019392505050565b60006106e833848461134d565b6005546001600160a01b03163314610beb5760405162461bcd60e51b815260040161077c90611b7f565b600d8190556040518181527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b14590602001610ac4565b6005546001600160a01b03163314610c4a5760405162461bcd60e51b815260040161077c90611b7f565b6001600160a01b03821660009081526008602052604090205481151560ff909116151503610ccd5760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b606482015260840161077c565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610d565760405162461bcd60e51b815260040161077c90611b7f565b6003811115610da75760405162461bcd60e51b815260206004820152601a60248201527f5461782063616e6e6f74206265206d6f7265207468616e203325000000000000604482015260640161077c565b600a548103610df85760405162461bcd60e51b815260206004820181905260248201527f54617820697320616c72656164792073657420746f20746861742076616c7565604482015260640161077c565b600a8190556040518181527f557a1cfa6604961b84aa6592bd60250d6d6e61fea12a02ada7f9a0cf1502fdb690602001610ac4565b6005546001600160a01b03163314610e575760405162461bcd60e51b815260040161077c90611b7f565b600b546001600160a01b0390811690821603610ec35760405162461bcd60e51b815260206004820152602560248201527f57616c6c657420697320616c72656164792073657420746f2074686174206164604482015264647265737360d81b606482015260840161077c565b6001600160a01b038116610f235760405162461bcd60e51b815260206004820152602160248201527f57616c6c65742063616e6e6f7420626520746865207a65726f206164647265736044820152607360f81b606482015260840161077c565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527ea263b61aab5ebdcff20c4c0c74c2589ea5ab52149abde19eca17ad5221789990602001610ac4565b6005546001600160a01b03163314610f9a5760405162461bcd60e51b815260040161077c90611b7f565b6001600160a01b038116610fff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161077c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110855760405162461bcd60e51b815260040161077c90611b7f565b306001600160a01b038216036111035760405162461bcd60e51b815260206004820152603760248201527f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160448201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000606482015260840161077c565b6001600160a01b0381166111415760405133904780156108fc02916000818181858888f1935050505015801561113d573d6000803e3d6000fd5b5050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561118a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ae9190611bb4565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156111fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112229190611bcd565b5050505b50565b6001600160a01b03831661128b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161077c565b6001600160a01b0382166112ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161077c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113735760405162461bcd60e51b815260040161077c90611bea565b6001600160a01b0382166113995760405162461bcd60e51b815260040161077c90611c2f565b600b54600160a01b900460ff16806113c957506001600160a01b03831660009081526008602052604090205460ff165b806113ec57506001600160a01b03821660009081526008602052604090205460ff165b6114385760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161077c565b806000036114515761144c83836000611611565b505050565b30600090815260208190526040902054600d548110801590819061147d5750600e54610100900460ff16155b801561149657506007546001600160a01b038581169116145b156114cf57600e805461ff001981166101001790915560ff16156114ba57600d5491505b6114c382611765565b600e805461ff00191690555b6001600160a01b03851660009081526008602052604081205460ff1615801561151157506001600160a01b03851660009081526008602052604090205460ff16155b80156115255750600e54610100900460ff16155b801561153e57506007546001600160a01b038681169116145b1561154c57506009546115c5565b6001600160a01b03861660009081526008602052604090205460ff1615801561158e57506001600160a01b03851660009081526008602052604090205460ff16155b80156115a25750600e54610100900460ff16155b80156115bb57506007546001600160a01b038781169116145b156115c55750600a545b80156115fe57600060646115d98387611c72565b6115e39190611c89565b90506115ef8186611cab565b94506115fc873083611611565b505b611609868686611611565b505050505050565b6001600160a01b0383166116375760405162461bcd60e51b815260040161077c90611bea565b6001600160a01b03821661165d5760405162461bcd60e51b815260040161077c90611c2f565b6001600160a01b038316600090815260208190526040902054818110156116d55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161077c565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061170c908490611b1e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161175891815260200190565b60405180910390a3611222565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061179e5761179e611cbe565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181b9190611cd4565b8160018151811061182e5761182e611cbe565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac94790611874908690600090869030904290600401611cf1565b600060405180830381600087803b15801561188e57600080fd5b505af11580156118a2573d6000803e3d6000fd5b50505050600082476118b49190611cab565b600b546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156118ef573d6000803e3d6000fd5b5060408051858152602081018390527f20c67c84c631769d26a34799f5602bae0c3e7f5d298a6609a3e0e7da5cbe6529910160405180910390a150505050565b600060208083528351808285015260005b8181101561195c57858101830151858201604001528201611940565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461122657600080fd5b600080604083850312156119a557600080fd5b82356119b08161197d565b946020939093013593505050565b6000806000606084860312156119d357600080fd5b83356119de8161197d565b925060208401356119ee8161197d565b929592945050506040919091013590565b600060208284031215611a1157600080fd5b8135611a1c8161197d565b9392505050565b600060208284031215611a3557600080fd5b5035919050565b801515811461122657600080fd5b600060208284031215611a5c57600080fd5b8135611a1c81611a3c565b60008060408385031215611a7a57600080fd5b8235611a858161197d565b91506020830135611a9581611a3c565b809150509250929050565b60008060408385031215611ab357600080fd5b8235611abe8161197d565b91506020830135611a958161197d565b600181811c90821680611ae257607f821691505b602082108103611b0257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106ec576106ec611b08565b6020808252602e908201527f4f6e6c79206f776e6572206f7220746178206f776e65722063616e2063616c6c60408201526d103a3434b990333ab731ba34b7b760911b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611bc657600080fd5b5051919050565b600060208284031215611bdf57600080fd5b8151611a1c81611a3c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b80820281158282048414176106ec576106ec611b08565b600082611ca657634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106ec576106ec611b08565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ce657600080fd5b8151611a1c8161197d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d415784516001600160a01b031683529383019391830191600101611d1c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a416a5ce3b3ff7472427d5683f85282accba5cc5787f0507d5c05cf7e4db010e64736f6c634300081200338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106101f25760003560e01c80638cd09d501161010d578063cc1776d3116100a0578063e2f456051161006f578063e2f45605146105b3578063ea414b28146105c9578063f2fde38b146105e9578063f887ea4014610609578063f9d0831a1461062957600080fd5b8063cc1776d314610507578063dbe66ca01461051d578063dc1052e21461054d578063dd62ed3e1461056d57600080fd5b8063a457c2d7116100dc578063a457c2d714610487578063a9059cbb146104a7578063afa4f3b2146104c7578063c0246668146104e757600080fd5b80638cd09d50146104145780638da5cb5b1461043457806395d89b4114610452578063988be1181461046757600080fd5b80633cafaea1116101855780634f7041a5116101545780634f7041a51461039e57806370a08231146103b4578063715018a6146103ea5780638a8c523c146103ff57600080fd5b80633cafaea114610323578063452ed4f114610343578063488eb37f146103635780634ada218b1461037d57600080fd5b80632dc0562d116101c15780632dc0562d14610298578063313ce567146102d057806339509351146102ec5780633bd08f4f1461030c57600080fd5b806306fdde03146101fe578063095ea7b31461022957806318160ddd1461025957806323b872dd1461027857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50610213610649565b604051610220919061192f565b60405180910390f35b34801561023557600080fd5b50610249610244366004611992565b6106db565b6040519015158152602001610220565b34801561026557600080fd5b506002545b604051908152602001610220565b34801561028457600080fd5b506102496102933660046119be565b6106f2565b3480156102a457600080fd5b50600b546102b8906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156102dc57600080fd5b5060405160128152602001610220565b3480156102f857600080fd5b50610249610307366004611992565b6107a8565b34801561031857600080fd5b506103216107e4565b005b34801561032f57600080fd5b5061032161033e3660046119ff565b61082f565b34801561034f57600080fd5b506007546102b8906001600160a01b031681565b34801561036f57600080fd5b50600e546102499060ff1681565b34801561038957600080fd5b50600b5461024990600160a01b900460ff1681565b3480156103aa57600080fd5b5061026a600a5481565b3480156103c057600080fd5b5061026a6103cf3660046119ff565b6001600160a01b031660009081526020819052604090205490565b3480156103f657600080fd5b506103216108ba565b34801561040b57600080fd5b5061032161092e565b34801561042057600080fd5b5061032161042f366004611a23565b6109c7565b34801561044057600080fd5b506005546001600160a01b03166102b8565b34801561045e57600080fd5b50610213610acf565b34801561047357600080fd5b50610321610482366004611a4a565b610ade565b34801561049357600080fd5b506102496104a2366004611992565b610b1b565b3480156104b357600080fd5b506102496104c2366004611992565b610bb4565b3480156104d357600080fd5b506103216104e2366004611a23565b610bc1565b3480156104f357600080fd5b50610321610502366004611a67565b610c20565b34801561051357600080fd5b5061026a60095481565b34801561052957600080fd5b506102496105383660046119ff565b60086020526000908152604090205460ff1681565b34801561055957600080fd5b50610321610568366004611a23565b610d2c565b34801561057957600080fd5b5061026a610588366004611aa0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105bf57600080fd5b5061026a600d5481565b3480156105d557600080fd5b506103216105e43660046119ff565b610e2d565b3480156105f557600080fd5b506103216106043660046119ff565b610f70565b34801561061557600080fd5b506006546102b8906001600160a01b031681565b34801561063557600080fd5b506103216106443660046119ff565b61105b565b60606003805461065890611ace565b80601f016020809104026020016040519081016040528092919081815260200182805461068490611ace565b80156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b5050505050905090565b60006106e8338484611229565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461079257828110156107855760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107928533858403611229565b61079d85858561134d565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106e89185906107df908690611b1e565b611229565b6005546001600160a01b03163314806108075750600c546001600160a01b031633145b6108235760405162461bcd60e51b815260040161077c90611b31565b60006009819055600a55565b6005546001600160a01b031633146108595760405162461bcd60e51b815260040161077c90611b7f565b6005546001600160a01b031633148061087c5750600c546001600160a01b031633145b6108985760405162461bcd60e51b815260040161077c90611b31565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146108e45760405162461bcd60e51b815260040161077c90611b7f565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146109585760405162461bcd60e51b815260040161077c90611b7f565b600b54600160a01b900460ff16156109b25760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161077c565b600b805460ff60a01b1916600160a01b179055565b6005546001600160a01b031633146109f15760405162461bcd60e51b815260040161077c90611b7f565b6003811115610a425760405162461bcd60e51b815260206004820152601a60248201527f5461782063616e6e6f74206265206d6f7265207468616e203325000000000000604482015260640161077c565b6009548103610a935760405162461bcd60e51b815260206004820181905260248201527f54617820697320616c72656164792073657420746f20746861742076616c7565604482015260640161077c565b60098190556040518181527f7b35389f1787a861bdc1e2bf41902b73d5b1b2aca5a7c0468edbd2b1885a5c6a906020015b60405180910390a150565b60606004805461065890611ace565b6005546001600160a01b03163314610b085760405162461bcd60e51b815260040161077c90611b7f565b600e805460ff1916911515919091179055565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b9d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161077c565b610baa3385858403611229565b5060019392505050565b60006106e833848461134d565b6005546001600160a01b03163314610beb5760405162461bcd60e51b815260040161077c90611b7f565b600d8190556040518181527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b14590602001610ac4565b6005546001600160a01b03163314610c4a5760405162461bcd60e51b815260040161077c90611b7f565b6001600160a01b03821660009081526008602052604090205481151560ff909116151503610ccd5760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b606482015260840161077c565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610d565760405162461bcd60e51b815260040161077c90611b7f565b6003811115610da75760405162461bcd60e51b815260206004820152601a60248201527f5461782063616e6e6f74206265206d6f7265207468616e203325000000000000604482015260640161077c565b600a548103610df85760405162461bcd60e51b815260206004820181905260248201527f54617820697320616c72656164792073657420746f20746861742076616c7565604482015260640161077c565b600a8190556040518181527f557a1cfa6604961b84aa6592bd60250d6d6e61fea12a02ada7f9a0cf1502fdb690602001610ac4565b6005546001600160a01b03163314610e575760405162461bcd60e51b815260040161077c90611b7f565b600b546001600160a01b0390811690821603610ec35760405162461bcd60e51b815260206004820152602560248201527f57616c6c657420697320616c72656164792073657420746f2074686174206164604482015264647265737360d81b606482015260840161077c565b6001600160a01b038116610f235760405162461bcd60e51b815260206004820152602160248201527f57616c6c65742063616e6e6f7420626520746865207a65726f206164647265736044820152607360f81b606482015260840161077c565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527ea263b61aab5ebdcff20c4c0c74c2589ea5ab52149abde19eca17ad5221789990602001610ac4565b6005546001600160a01b03163314610f9a5760405162461bcd60e51b815260040161077c90611b7f565b6001600160a01b038116610fff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161077c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110855760405162461bcd60e51b815260040161077c90611b7f565b306001600160a01b038216036111035760405162461bcd60e51b815260206004820152603760248201527f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160448201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000606482015260840161077c565b6001600160a01b0381166111415760405133904780156108fc02916000818181858888f1935050505015801561113d573d6000803e3d6000fd5b5050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561118a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ae9190611bb4565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156111fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112229190611bcd565b5050505b50565b6001600160a01b03831661128b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161077c565b6001600160a01b0382166112ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161077c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113735760405162461bcd60e51b815260040161077c90611bea565b6001600160a01b0382166113995760405162461bcd60e51b815260040161077c90611c2f565b600b54600160a01b900460ff16806113c957506001600160a01b03831660009081526008602052604090205460ff165b806113ec57506001600160a01b03821660009081526008602052604090205460ff165b6114385760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161077c565b806000036114515761144c83836000611611565b505050565b30600090815260208190526040902054600d548110801590819061147d5750600e54610100900460ff16155b801561149657506007546001600160a01b038581169116145b156114cf57600e805461ff001981166101001790915560ff16156114ba57600d5491505b6114c382611765565b600e805461ff00191690555b6001600160a01b03851660009081526008602052604081205460ff1615801561151157506001600160a01b03851660009081526008602052604090205460ff16155b80156115255750600e54610100900460ff16155b801561153e57506007546001600160a01b038681169116145b1561154c57506009546115c5565b6001600160a01b03861660009081526008602052604090205460ff1615801561158e57506001600160a01b03851660009081526008602052604090205460ff16155b80156115a25750600e54610100900460ff16155b80156115bb57506007546001600160a01b038781169116145b156115c55750600a545b80156115fe57600060646115d98387611c72565b6115e39190611c89565b90506115ef8186611cab565b94506115fc873083611611565b505b611609868686611611565b505050505050565b6001600160a01b0383166116375760405162461bcd60e51b815260040161077c90611bea565b6001600160a01b03821661165d5760405162461bcd60e51b815260040161077c90611c2f565b6001600160a01b038316600090815260208190526040902054818110156116d55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161077c565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061170c908490611b1e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161175891815260200190565b60405180910390a3611222565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061179e5761179e611cbe565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181b9190611cd4565b8160018151811061182e5761182e611cbe565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac94790611874908690600090869030904290600401611cf1565b600060405180830381600087803b15801561188e57600080fd5b505af11580156118a2573d6000803e3d6000fd5b50505050600082476118b49190611cab565b600b546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156118ef573d6000803e3d6000fd5b5060408051858152602081018390527f20c67c84c631769d26a34799f5602bae0c3e7f5d298a6609a3e0e7da5cbe6529910160405180910390a150505050565b600060208083528351808285015260005b8181101561195c57858101830151858201604001528201611940565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461122657600080fd5b600080604083850312156119a557600080fd5b82356119b08161197d565b946020939093013593505050565b6000806000606084860312156119d357600080fd5b83356119de8161197d565b925060208401356119ee8161197d565b929592945050506040919091013590565b600060208284031215611a1157600080fd5b8135611a1c8161197d565b9392505050565b600060208284031215611a3557600080fd5b5035919050565b801515811461122657600080fd5b600060208284031215611a5c57600080fd5b8135611a1c81611a3c565b60008060408385031215611a7a57600080fd5b8235611a858161197d565b91506020830135611a9581611a3c565b809150509250929050565b60008060408385031215611ab357600080fd5b8235611abe8161197d565b91506020830135611a958161197d565b600181811c90821680611ae257607f821691505b602082108103611b0257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106ec576106ec611b08565b6020808252602e908201527f4f6e6c79206f776e6572206f7220746178206f776e65722063616e2063616c6c60408201526d103a3434b990333ab731ba34b7b760911b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611bc657600080fd5b5051919050565b600060208284031215611bdf57600080fd5b8151611a1c81611a3c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b80820281158282048414176106ec576106ec611b08565b600082611ca657634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106ec576106ec611b08565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ce657600080fd5b8151611a1c8161197d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d415784516001600160a01b031683529383019391830191600101611d1c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a416a5ce3b3ff7472427d5683f85282accba5cc5787f0507d5c05cf7e4db010e64736f6c63430008120033

Deployed Bytecode Sourcemap

7924:6515:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3209:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4123:169;;;;;;;;;;-1:-1:-1;4123:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4123:169:0;1023:187:1;3530:108:0;;;;;;;;;;-1:-1:-1;3618:12:0;;3530:108;;;1361:25:1;;;1349:2;1334:18;3530:108:0;1215:177:1;4300:573:0;;;;;;;;;;-1:-1:-1;4300:573:0;;;;;:::i;:::-;;:::i;8146:24::-;;;;;;;;;;-1:-1:-1;8146:24:0;;;;-1:-1:-1;;;;;8146:24:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;8146:24:0;1858:203:1;3429:93:0;;;;;;;;;;-1:-1:-1;3429:93:0;;3512:2;2208:36:1;;2196:2;2181:18;3429:93:0;2066:184:1;4881:215:0;;;;;;;;;;-1:-1:-1;4881:215:0;;;;;:::i;:::-;;:::i;11460:203::-;;;;;;;;;;;;;:::i;:::-;;11671:213;;;;;;;;;;-1:-1:-1;11671:213:0;;;;;:::i;:::-;;:::i;8001:21::-;;;;;;;;;;-1:-1:-1;8001:21:0;;;;-1:-1:-1;;;;;8001:21:0;;;8291:25;;;;;;;;;;-1:-1:-1;8291:25:0;;;;;;;;8177:34;;;;;;;;;;-1:-1:-1;8177:34:0;;;;-1:-1:-1;;;8177:34:0;;;;;;8118:21;;;;;;;;;;;;;;;;3646:127;;;;;;;;;;-1:-1:-1;3646:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3747:18:0;3720:7;3747:18;;;;;;;;;;;;3646:127;2396:148;;;;;;;;;;;;;:::i;11892:149::-;;;;;;;;;;;;;:::i;10609:263::-;;;;;;;;;;-1:-1:-1;10609:263:0;;;;;:::i;:::-;;:::i;2182:79::-;;;;;;;;;;-1:-1:-1;2247:6:0;;-1:-1:-1;;;;;2247:6:0;2182:79;;3317:104;;;;;;;;;;;;;:::i;13703:115::-;;;;;;;;;;-1:-1:-1;13703:115:0;;;;;:::i;:::-;;:::i;5104:413::-;;;;;;;;;;-1:-1:-1;5104:413:0;;;;;:::i;:::-;;:::i;3781:175::-;;;;;;;;;;-1:-1:-1;3781:175:0;;;;;:::i;:::-;;:::i;13517:178::-;;;;;;;;;;-1:-1:-1;13517:178:0;;;;;:::i;:::-;;:::i;10319:282::-;;;;;;;;;;-1:-1:-1;10319:282:0;;;;;:::i;:::-;;:::i;8089:22::-;;;;;;;;;;;;;;;;8031:49;;;;;;;;;;-1:-1:-1;8031:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10880:258;;;;;;;;;;-1:-1:-1;10880:258:0;;;;;:::i;:::-;;:::i;3964:151::-;;;;;;;;;;-1:-1:-1;3964:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4080:18:0;;;4053:7;4080:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3964:151;8251:33;;;;;;;;;;;;;;;;11146:306;;;;;;;;;;-1:-1:-1;11146:306:0;;;;;:::i;:::-;;:::i;2552:244::-;;;;;;;;;;-1:-1:-1;2552:244:0;;;;;:::i;:::-;;:::i;7969:25::-;;;;;;;;;;-1:-1:-1;7969:25:0;;;;-1:-1:-1;;;;;7969:25:0;;;9847:464;;;;;;;;;;-1:-1:-1;9847:464:0;;;;;:::i;:::-;;:::i;3209:100::-;3263:13;3296:5;3289:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3209:100;:::o;4123:169::-;4206:4;4223:39;1585:10;4246:7;4255:6;4223:8;:39::i;:::-;-1:-1:-1;4280:4:0;4123:169;;;;;:::o;4300:573::-;-1:-1:-1;;;;;4484:19:0;;4440:4;4484:19;;;:11;:19;;;;;;;;1585:10;4484:33;;;;;;;;-1:-1:-1;;4532:37:0;;4528:265;;4614:6;4594:16;:26;;4586:79;;;;-1:-1:-1;;;4586:79:0;;4654:2:1;4586:79:0;;;4636:21:1;4693:2;4673:18;;;4666:30;4732:34;4712:18;;;4705:62;-1:-1:-1;;;4783:18:1;;;4776:38;4831:19;;4586:79:0;;;;;;;;;4709:57;4718:6;1585:10;4759:6;4740:16;:25;4709:8;:57::i;:::-;4805:36;4815:6;4823:9;4834:6;4805:9;:36::i;:::-;-1:-1:-1;4861:4:0;;4300:573;-1:-1:-1;;;;4300:573:0:o;4881:215::-;1585:10;4969:4;5018:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5018:34:0;;;;;;;;;;4969:4;;4986:80;;5009:7;;5018:47;;5055:10;;5018:47;:::i;:::-;4986:8;:80::i;11460:203::-;2247:6;;-1:-1:-1;;;;;2247:6:0;11514:10;:21;;:47;;-1:-1:-1;11553:8:0;;-1:-1:-1;;;;;11553:8:0;11539:10;:22;11514:47;11506:106;;;;-1:-1:-1;;;11506:106:0;;;;;;;:::i;:::-;11633:1;11623:7;:11;;;11645:6;:10;11460:203::o;11671:213::-;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;2247:6;;-1:-1:-1;;;;;2247:6:0;11748:10:::1;:21;::::0;:47:::1;;-1:-1:-1::0;11787:8:0::1;::::0;-1:-1:-1;;;;;11787:8:0::1;11773:10;:22;11748:47;11740:106;;;;-1:-1:-1::0;;;11740:106:0::1;;;;;;;:::i;:::-;11857:8;:19:::0;;-1:-1:-1;;;;;;11857:19:0::1;-1:-1:-1::0;;;;;11857:19:0;;;::::1;::::0;;;::::1;::::0;;11671:213::o;2396:148::-;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;2487:6:::1;::::0;2466:40:::1;::::0;2503:1:::1;::::0;-1:-1:-1;;;;;2487:6:0::1;::::0;2466:40:::1;::::0;2503:1;;2466:40:::1;2517:6;:19:::0;;-1:-1:-1;;;;;;2517:19:0::1;::::0;;2396:148::o;11892:149::-;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;11956:14:::1;::::0;-1:-1:-1;;;11956:14:0;::::1;;;11955:15;11947:54;;;::::0;-1:-1:-1;;;11947:54:0;;6101:2:1;11947:54:0::1;::::0;::::1;6083:21:1::0;6140:2;6120:18;;;6113:30;6179:28;6159:18;;;6152:56;6225:18;;11947:54:0::1;5899:350:1::0;11947:54:0::1;12012:14;:21:::0;;-1:-1:-1;;;;12012:21:0::1;-1:-1:-1::0;;;12012:21:0::1;::::0;;11892:149::o;10609:263::-;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;10693:1:::1;10683:6;:11;;10675:50;;;::::0;-1:-1:-1;;;10675:50:0;;6456:2:1;10675:50:0::1;::::0;::::1;6438:21:1::0;6495:2;6475:18;;;6468:30;6534:28;6514:18;;;6507:56;6580:18;;10675:50:0::1;6254:350:1::0;10675:50:0::1;10754:7;;10744:6;:17:::0;10736:62:::1;;;::::0;-1:-1:-1;;;10736:62:0;;6811:2:1;10736:62:0::1;::::0;::::1;6793:21:1::0;;;6830:18;;;6823:30;6889:34;6869:18;;;6862:62;6941:18;;10736:62:0::1;6609:356:1::0;10736:62:0::1;10809:7;:16:::0;;;10841:23:::1;::::0;1361:25:1;;;10841:23:0::1;::::0;1349:2:1;1334:18;10841:23:0::1;;;;;;;;10609:263:::0;:::o;3317:104::-;3373:13;3406:7;3399:14;;;;;:::i;13703:115::-;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;13780:13:::1;:30:::0;;-1:-1:-1;;13780:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13703:115::o;5104:413::-;1585:10;5197:4;5241:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5241:34:0;;;;;;;;;;5294:35;;;;5286:85;;;;-1:-1:-1;;;5286:85:0;;7172:2:1;5286:85:0;;;7154:21:1;7211:2;7191:18;;;7184:30;7250:34;7230:18;;;7223:62;-1:-1:-1;;;7301:18:1;;;7294:35;7346:19;;5286:85:0;6970:401:1;5286:85:0;5407:67;1585:10;5430:7;5458:15;5439:16;:34;5407:8;:67::i;:::-;-1:-1:-1;5505:4:0;;5104:413;-1:-1:-1;;;5104:413:0:o;3781:175::-;3867:4;3884:42;1585:10;3908:9;3919:6;3884:9;:42::i;13517:178::-;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;13596:18:::1;:30:::0;;;13642:45:::1;::::0;1361:25:1;;;13642:45:0::1;::::0;1349:2:1;1334:18;13642:45:0::1;1215:177:1::0;10319:282:0;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10413:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;:37;::::1;;:25;::::0;;::::1;:37;;::::0;10405:91:::1;;;::::0;-1:-1:-1;;;10405:91:0;;7578:2:1;10405:91:0::1;::::0;::::1;7560:21:1::0;7617:2;7597:18;;;7590:30;7656:34;7636:18;;;7629:62;-1:-1:-1;;;7707:18:1;;;7700:40;7757:19;;10405:91:0::1;7376:406:1::0;10405:91:0::1;-1:-1:-1::0;;;;;10507:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:36;;-1:-1:-1;;10507:36:0::1;::::0;::::1;;::::0;;::::1;::::0;;;10559:34;;1163:41:1;;;10559:34:0::1;::::0;1136:18:1;10559:34:0::1;;;;;;;10319:282:::0;;:::o;10880:258::-;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;10963:1:::1;10953:6;:11;;10945:50;;;::::0;-1:-1:-1;;;10945:50:0;;6456:2:1;10945:50:0::1;::::0;::::1;6438:21:1::0;6495:2;6475:18;;;6468:30;6534:28;6514:18;;;6507:56;6580:18;;10945:50:0::1;6254:350:1::0;10945:50:0::1;11024:6;;11014;:16:::0;11006:61:::1;;;::::0;-1:-1:-1;;;11006:61:0;;6811:2:1;11006:61:0::1;::::0;::::1;6793:21:1::0;;;6830:18;;;6823:30;6889:34;6869:18;;;6862:62;6941:18;;11006:61:0::1;6609:356:1::0;11006:61:0::1;11078:6;:15:::0;;;11109:21:::1;::::0;1361:25:1;;;11109:21:0::1;::::0;1349:2:1;1334:18;11109:21:0::1;1215:177:1::0;11146:306:0;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;11238:9:::1;::::0;-1:-1:-1;;;;;11238:9:0;;::::1;11225:22:::0;;::::1;::::0;11217:72:::1;;;::::0;-1:-1:-1;;;11217:72:0;;7989:2:1;11217:72:0::1;::::0;::::1;7971:21:1::0;8028:2;8008:18;;;8001:30;8067:34;8047:18;;;8040:62;-1:-1:-1;;;8118:18:1;;;8111:35;8163:19;;11217:72:0::1;7787:401:1::0;11217:72:0::1;-1:-1:-1::0;;;;;11308:23:0;::::1;11300:69;;;::::0;-1:-1:-1;;;11300:69:0;;8395:2:1;11300:69:0::1;::::0;::::1;8377:21:1::0;8434:2;8414:18;;;8407:30;8473:34;8453:18;;;8446:62;-1:-1:-1;;;8524:18:1;;;8517:31;8565:19;;11300:69:0::1;8193:397:1::0;11300:69:0::1;11380:9;:21:::0;;-1:-1:-1;;;;;;11380:21:0::1;-1:-1:-1::0;;;;;11380:21:0;::::1;::::0;;::::1;::::0;;;11417:27:::1;::::0;2004:51:1;;;11417:27:0::1;::::0;1992:2:1;1977:18;11417:27:0::1;1858:203:1::0;2552:244:0;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2641:22:0;::::1;2633:73;;;::::0;-1:-1:-1;;;2633:73:0;;8797:2:1;2633:73:0::1;::::0;::::1;8779:21:1::0;8836:2;8816:18;;;8809:30;8875:34;8855:18;;;8848:62;-1:-1:-1;;;8926:18:1;;;8919:36;8972:19;;2633:73:0::1;8595:402:1::0;2633:73:0::1;2743:6;::::0;2722:38:::1;::::0;-1:-1:-1;;;;;2722:38:0;;::::1;::::0;2743:6:::1;::::0;2722:38:::1;::::0;2743:6:::1;::::0;2722:38:::1;2771:6;:17:::0;;-1:-1:-1;;;;;;2771:17:0::1;-1:-1:-1::0;;;;;2771:17:0;;;::::1;::::0;;;::::1;::::0;;2552:244::o;9847:464::-;2309:6;;-1:-1:-1;;;;;2309:6:0;1585:10;2309:22;2301:67;;;;-1:-1:-1;;;2301:67:0;;;;;;;:::i;:::-;9943:4:::1;-1:-1:-1::0;;;;;9926:22:0;::::1;::::0;9918:90:::1;;;::::0;-1:-1:-1;;;9918:90:0;;9204:2:1;9918:90:0::1;::::0;::::1;9186:21:1::0;9243:2;9223:18;;;9216:30;9282:34;9262:18;;;9255:62;9353:25;9333:18;;;9326:53;9396:19;;9918:90:0::1;9002:419:1::0;9918:90:0::1;-1:-1:-1::0;;;;;10023:21:0;::::1;10019:126;;10061:51;::::0;10069:10:::1;::::0;10090:21:::1;10061:51:::0;::::1;;;::::0;::::1;::::0;;;10090:21;10069:10;10061:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9847:464:::0;:::o;10019:126::-:1;10217:35;::::0;-1:-1:-1;;;10217:35:0;;10246:4:::1;10217:35;::::0;::::1;2004:51:1::0;10182:5:0;;10155:17:::1;::::0;-1:-1:-1;;;;;10217:20:0;::::1;::::0;::::1;::::0;1977:18:1;;10217:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10263:40;::::0;-1:-1:-1;;;10263:40:0;;10283:10:::1;10263:40;::::0;::::1;9789:51:1::0;9856:18;;;9849:34;;;10199:53:0;;-1:-1:-1;;;;;;10263:19:0;::::1;::::0;::::1;::::0;9762:18:1;;10263:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9907:404;;2379:1;9847:464:::0;:::o;7272:380::-;-1:-1:-1;;;;;7408:19:0;;7400:68;;;;-1:-1:-1;;;7400:68:0;;10346:2:1;7400:68:0;;;10328:21:1;10385:2;10365:18;;;10358:30;10424:34;10404:18;;;10397:62;-1:-1:-1;;;10475:18:1;;;10468:34;10519:19;;7400:68:0;10144:400:1;7400:68:0;-1:-1:-1;;;;;7487:21:0;;7479:68;;;;-1:-1:-1;;;7479:68:0;;10751:2:1;7479:68:0;;;10733:21:1;10790:2;10770:18;;;10763:30;10829:34;10809:18;;;10802:62;-1:-1:-1;;;10880:18:1;;;10873:32;10922:19;;7479:68:0;10549:398:1;7479:68:0;-1:-1:-1;;;;;7560:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7612:32;;1361:25:1;;;7612:32:0;;1334:18:1;7612:32:0;;;;;;;7272:380;;;:::o;12049:1460::-;-1:-1:-1;;;;;12146:18:0;;12138:68;;;;-1:-1:-1;;;12138:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12225:16:0;;12217:64;;;;-1:-1:-1;;;12217:64:0;;;;;;;:::i;:::-;12300:14;;-1:-1:-1;;;12300:14:0;;;;;:40;;-1:-1:-1;;;;;;12318:22:0;;;;;;:16;:22;;;;;;;;12300:40;:64;;;-1:-1:-1;;;;;;12344:20:0;;;;;;:16;:20;;;;;;;;12300:64;12292:103;;;;-1:-1:-1;;;12292:103:0;;11964:2:1;12292:103:0;;;11946:21:1;12003:2;11983:18;;;11976:30;12042:28;12022:18;;;12015:56;12088:18;;12292:103:0;11762:350:1;12292:103:0;12419:6;12429:1;12419:11;12415:93;;12447:28;12463:4;12469:2;12473:1;12447:15;:28::i;:::-;12049:1460;;;:::o;12415:93::-;12563:4;12514:28;3747:18;;;;;;;;;;;12621;;12597:42;;;;;;;12656:33;;-1:-1:-1;12681:8:0;;;;;;;12680:9;12656:33;:62;;;;-1:-1:-1;12712:6:0;;-1:-1:-1;;;;;12706:12:0;;;12712:6;;12706:12;12656:62;12652:339;;;12745:8;:15;;-1:-1:-1;;12745:15:0;;;;;;;;12781:13;12777:95;;;12838:18;;12815:41;;12777:95;12900:36;12915:20;12900:14;:36::i;:::-;12963:8;:16;;-1:-1:-1;;12963:16:0;;;12652:339;-1:-1:-1;;;;;13031:22:0;;13003:12;13031:22;;;:16;:22;;;;;;;;13030:23;:48;;;;-1:-1:-1;;;;;;13058:20:0;;;;;;:16;:20;;;;;;;;13057:21;13030:48;:61;;;;-1:-1:-1;13083:8:0;;;;;;;13082:9;13030:61;:77;;;;-1:-1:-1;13101:6:0;;-1:-1:-1;;;;;13095:12:0;;;13101:6;;13095:12;13030:77;13026:255;;;-1:-1:-1;13131:7:0;;13026:255;;;-1:-1:-1;;;;;13161:22:0;;;;;;:16;:22;;;;;;;;13160:23;:48;;;;-1:-1:-1;;;;;;13188:20:0;;;;;;:16;:20;;;;;;;;13187:21;13160:48;:61;;;;-1:-1:-1;13213:8:0;;;;;;;13212:9;13160:61;:79;;;;-1:-1:-1;13233:6:0;;-1:-1:-1;;;;;13225:14:0;;;13233:6;;13225:14;13160:79;13156:125;;;-1:-1:-1;13263:6:0;;13156:125;13297:8;;13293:163;;13322:12;13355:3;13338:13;13347:4;13338:6;:13;:::i;:::-;13337:21;;;;:::i;:::-;13322:36;-1:-1:-1;13373:14:0;13322:36;13373:14;;:::i;:::-;;;13402:42;13418:4;13432;13439;13402:15;:42::i;:::-;13307:149;13293:163;13468:33;13484:4;13490:2;13494:6;13468:15;:33::i;:::-;12127:1382;;;12049:1460;;;:::o;5525:733::-;-1:-1:-1;;;;;5665:20:0;;5657:70;;;;-1:-1:-1;;;5657:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5746:23:0;;5738:71;;;;-1:-1:-1;;;5738:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5906:17:0;;5882:21;5906:17;;;;;;;;;;;5942:23;;;;5934:74;;;;-1:-1:-1;;;5934:74:0;;12847:2:1;5934:74:0;;;12829:21:1;12886:2;12866:18;;;12859:30;12925:34;12905:18;;;12898:62;-1:-1:-1;;;12976:18:1;;;12969:36;13022:19;;5934:74:0;12645:402:1;5934:74:0;-1:-1:-1;;;;;6044:17:0;;;:9;:17;;;;;;;;;;;6064:22;;;6044:42;;6108:20;;;;;;;;:30;;6080:6;;6044:9;6108:30;;6080:6;;6108:30;:::i;:::-;;;;;;;;6173:9;-1:-1:-1;;;;;6156:35:0;6165:6;-1:-1:-1;;;;;6156:35:0;;6184:6;6156:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;6156:35:0;;;;;;;;6204:46;12049:1460;13826:610;13973:16;;;13987:1;13973:16;;;;;;;;13915:21;;13890:22;;13973:16;13987:1;13973:16;;;;;;;;;;-1:-1:-1;13973:16:0;13949:40;;14018:4;14000;14005:1;14000:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14000:23:0;;;:7;;;;;;;;;;:23;;;;14044:6;;:13;;;-1:-1:-1;;;14044:13:0;;;;:6;;;;;:11;;:13;;;;;14000:7;;14044:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14034:4;14039:1;14034:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14034:23:0;;;:7;;;;;;;;;:23;14070:6;;:177;;-1:-1:-1;;;14070:177:0;;:6;;;:57;;:177;;14142:11;;14070:6;;14184:4;;14211;;14231:15;;14070:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14260:18;14305:14;14281:21;:38;;;;:::i;:::-;14340:9;;14332:39;;14260:59;;-1:-1:-1;;;;;;14340:9:0;;14332:39;;;;;14260:59;;14340:9;14332:39;14340:9;14332:39;14260:59;14340:9;14332:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14389:39:0;;;14731:25:1;;;14787:2;14772:18;;14765:34;;;14389:39:0;;14704:18:1;14389:39:0;;;;;;;13879:557;;;13826:610;:::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;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;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;:::-;2491:5;2255:247;-1:-1:-1;;;2255:247:1:o;2507:180::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;-1:-1:-1;2658:23:1;;2507:180;-1:-1:-1;2507:180:1:o;2692:118::-;2778:5;2771:13;2764:21;2757:5;2754:32;2744:60;;2800:1;2797;2790:12;2815:241;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;2979:9;2966:23;2998:28;3020:5;2998:28;:::i;3061:382::-;3126:6;3134;3187:2;3175:9;3166:7;3162:23;3158:32;3155:52;;;3203:1;3200;3193:12;3155:52;3242:9;3229:23;3261:31;3286:5;3261:31;:::i;:::-;3311:5;-1:-1:-1;3368:2:1;3353:18;;3340:32;3381:30;3340:32;3381:30;:::i;:::-;3430:7;3420:17;;;3061:382;;;;;:::o;3448:388::-;3516:6;3524;3577:2;3565:9;3556:7;3552:23;3548:32;3545:52;;;3593:1;3590;3583:12;3545:52;3632:9;3619:23;3651:31;3676:5;3651:31;:::i;:::-;3701:5;-1:-1:-1;3758:2:1;3743:18;;3730:32;3771:33;3730:32;3771:33;:::i;4067:380::-;4146:1;4142:12;;;;4189;;;4210:61;;4264:4;4256:6;4252:17;4242:27;;4210:61;4317:2;4309:6;4306:14;4286:18;4283:38;4280:161;;4363:10;4358:3;4354:20;4351:1;4344:31;4398:4;4395:1;4388:15;4426:4;4423:1;4416:15;4280:161;;4067:380;;;:::o;4861:127::-;4922:10;4917:3;4913:20;4910:1;4903:31;4953:4;4950:1;4943:15;4977:4;4974:1;4967:15;4993:125;5058:9;;;5079:10;;;5076:36;;;5092:18;;:::i;5123:410::-;5325:2;5307:21;;;5364:2;5344:18;;;5337:30;5403:34;5398:2;5383:18;;5376:62;-1:-1:-1;;;5469:2:1;5454:18;;5447:44;5523:3;5508:19;;5123:410::o;5538:356::-;5740:2;5722:21;;;5759:18;;;5752:30;5818:34;5813:2;5798:18;;5791:62;5885:2;5870:18;;5538:356::o;9426:184::-;9496:6;9549:2;9537:9;9528:7;9524:23;9520:32;9517:52;;;9565:1;9562;9555:12;9517:52;-1:-1:-1;9588:16:1;;9426:184;-1:-1:-1;9426:184:1:o;9894:245::-;9961:6;10014:2;10002:9;9993:7;9989:23;9985:32;9982:52;;;10030:1;10027;10020:12;9982:52;10062:9;10056:16;10081:28;10103:5;10081:28;:::i;10952:401::-;11154:2;11136:21;;;11193:2;11173:18;;;11166:30;11232:34;11227:2;11212:18;;11205:62;-1:-1:-1;;;11298:2:1;11283:18;;11276:35;11343:3;11328:19;;10952:401::o;11358:399::-;11560:2;11542:21;;;11599:2;11579:18;;;11572:30;11638:34;11633:2;11618:18;;11611:62;-1:-1:-1;;;11704:2:1;11689:18;;11682:33;11747:3;11732:19;;11358:399::o;12117:168::-;12190:9;;;12221;;12238:15;;;12232:22;;12218:37;12208:71;;12259:18;;:::i;12290:217::-;12330:1;12356;12346:132;;12400:10;12395:3;12391:20;12388:1;12381:31;12435:4;12432:1;12425:15;12463:4;12460:1;12453:15;12346:132;-1:-1:-1;12492:9:1;;12290:217::o;12512:128::-;12579:9;;;12600:11;;;12597:37;;;12614:18;;:::i;13184:127::-;13245:10;13240:3;13236:20;13233:1;13226:31;13276:4;13273:1;13266:15;13300:4;13297:1;13290:15;13316:251;13386:6;13439:2;13427:9;13418:7;13414:23;13410:32;13407:52;;;13455:1;13452;13445:12;13407:52;13487:9;13481:16;13506:31;13531:5;13506:31;:::i;13572:980::-;13834:4;13882:3;13871:9;13867:19;13913:6;13902:9;13895:25;13939:2;13977:6;13972:2;13961:9;13957:18;13950:34;14020:3;14015:2;14004:9;14000:18;13993:31;14044:6;14079;14073:13;14110:6;14102;14095:22;14148:3;14137:9;14133:19;14126:26;;14187:2;14179:6;14175:15;14161:29;;14208:1;14218:195;14232:6;14229:1;14226:13;14218:195;;;14297:13;;-1:-1:-1;;;;;14293:39:1;14281:52;;14388:15;;;;14353:12;;;;14329:1;14247:9;14218:195;;;-1:-1:-1;;;;;;;14469:32:1;;;;14464:2;14449:18;;14442:60;-1:-1:-1;;;14533:3:1;14518:19;14511:35;14430:3;13572:980;-1:-1:-1;;;13572:980:1:o

Swarm Source

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